Files
mermaid-live-editor/_app/immutable/chunks/B8CkSL7Z.js
T
2025-02-14 08:18:07 +00:00

219 lines
410 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
function Ue(t){"@babel/helpers - typeof";return Ue=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},Ue(t)}function or(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function gl(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 ur(t,e,r){return e&&gl(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function co(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Je(t,e){return yl(t)||bl(t,e)||bi(t,e)||xl()}function ho(t){return pl(t)||ml(t)||bi(t)||wl()}function pl(t){if(Array.isArray(t))return ri(t)}function yl(t){if(Array.isArray(t))return t}function ml(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function bl(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(l){i=!0,o=l}finally{try{!n&&r.return!=null&&r.return()}finally{if(i)throw o}}return a}}function bi(t,e){if(t){if(typeof t=="string")return ri(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 ri(t,e)}}function ri(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 wl(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xl(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wt(t,e){var r=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=bi(t))||e){r&&(t=r);var a=0,n=function(){};return{s:n,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,o;return{s:function(){r=r.call(t)},n:function(){var l=r.next();return i=l.done,l},e:function(l){s=!0,o=l},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw o}}}}var We=typeof window>"u"?null:window,Yi=We?We.navigator:null;We&&We.document;var El=Ue(""),go=Ue({}),Tl=Ue(function(){}),Cl=typeof HTMLElement>"u"?"undefined":Ue(HTMLElement),Pa=function(e){return e&&e.instanceString&&$e(e.instanceString)?e.instanceString():null},fe=function(e){return e!=null&&Ue(e)==El},$e=function(e){return e!=null&&Ue(e)===Tl},Ie=function(e){return!xt(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},ke=function(e){return e!=null&&Ue(e)===go&&!Ie(e)&&e.constructor===Object},Sl=function(e){return e!=null&&Ue(e)===go},re=function(e){return e!=null&&Ue(e)===Ue(1)&&!isNaN(e)},Dl=function(e){return re(e)&&Math.floor(e)===e},vn=function(e){if(Cl!=="undefined")return e!=null&&e instanceof HTMLElement},xt=function(e){return Ba(e)||po(e)},Ba=function(e){return Pa(e)==="collection"&&e._private.single},po=function(e){return Pa(e)==="collection"&&!e._private.single},wi=function(e){return Pa(e)==="core"},yo=function(e){return Pa(e)==="stylesheet"},kl=function(e){return Pa(e)==="event"},tr=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},Pl=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},Bl=function(e){return ke(e)&&re(e.x1)&&re(e.x2)&&re(e.y1)&&re(e.y2)},Al=function(e){return Sl(e)&&$e(e.then)},Rl=function(){return Yi&&Yi.userAgent.match(/msie|trident|edge/i)},ya=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,l=r.apply(i,s),u=n.cache;return(o=u[l])||(o=u[l]=e.apply(i,s)),o};return a.cache={},a},xi=ya(function(t){return t.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),En=ya(function(t){return t.replace(/(-\w)/g,function(e){return e[1].toUpperCase()})}),mo=ya(function(t,e){return t+e[0].toUpperCase()+e.substring(1)},function(t,e){return t+"$"+e}),_i=function(e){return tr(e)?e:e.charAt(0).toUpperCase()+e.substring(1)},He="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",Ll="rgb[a]?\\(("+He+"[%]?)\\s*,\\s*("+He+"[%]?)\\s*,\\s*("+He+"[%]?)(?:\\s*,\\s*("+He+"))?\\)",Ml="rgb[a]?\\((?:"+He+"[%]?)\\s*,\\s*(?:"+He+"[%]?)\\s*,\\s*(?:"+He+"[%]?)(?:\\s*,\\s*(?:"+He+"))?\\)",Il="hsl[a]?\\(("+He+")\\s*,\\s*("+He+"[%])\\s*,\\s*("+He+"[%])(?:\\s*,\\s*("+He+"))?\\)",Ol="hsl[a]?\\((?:"+He+")\\s*,\\s*(?:"+He+"[%])\\s*,\\s*(?:"+He+"[%])(?:\\s*,\\s*(?:"+He+"))?\\)",Nl="\\#[0-9a-fA-F]{3}",zl="\\#[0-9a-fA-F]{6}",bo=function(e,r){return e<r?-1:e>r?1:0},Fl=function(e,r){return-1*bo(e,r)},de=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},Vl=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,l,u;function v(d,y,p){return p<0&&(p+=1),p>1&&(p-=1),p<1/6?d+(y-d)*6*p:p<1/2?y:p<2/3?d+(y-d)*(2/3-p)*6:d}var f=new RegExp("^"+Il+"$").exec(e);if(f){if(a=parseInt(f[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(f[2]),n<0||n>100||(n=n/100,i=parseFloat(f[3]),i<0||i>100)||(i=i/100,s=f[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=l=u=Math.round(i*255);else{var c=i<.5?i*(1+n):i+n-i*n,h=2*i-c;o=Math.round(255*v(h,c,a+1/3)),l=Math.round(255*v(h,c,a)),u=Math.round(255*v(h,c,a-1/3))}r=[o,l,u,s]}return r},$l=function(e){var r,a=new RegExp("^"+Ll+"$").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],l=n[1]&&n[2]&&n[3];if(o&&!l)return;var u=a[4];if(u!==void 0){if(u=parseFloat(u),u<0||u>1)return;r.push(u)}}return r},Kl=function(e){return Gl[e.toLowerCase()]},wo=function(e){return(Ie(e)?e:null)||Kl(e)||Vl(e)||$l(e)||ql(e)},Gl={transparent:[0,0,0,0],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]},xo=function(e){for(var r=e.map,a=e.keys,n=a.length,i=0;i<n;i++){var s=a[i];if(ke(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}},Eo=function(e){for(var r=e.map,a=e.keys,n=a.length,i=0;i<n;i++){var s=a[i];if(ke(s))throw Error("Tried to get map with object key");if(r=r[s],r==null)return r}return r};function Wl(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var yr=Wl,ua=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Hl(t,e){return e={exports:{}},t(e,e.exports),e.exports}var Ul=typeof ua=="object"&&ua&&ua.Object===Object&&ua,Xl=Ul,Yl=typeof self=="object"&&self&&self.Object===Object&&self,_l=Xl||Yl||Function("return this")(),Tn=_l,Zl=function(){return Tn.Date.now()},$n=Zl,Ql=/\s/;function Jl(t){for(var e=t.length;e--&&Ql.test(t.charAt(e)););return e}var jl=Jl,ev=/^\s+/;function tv(t){return t&&t.slice(0,jl(t)+1).replace(ev,"")}var rv=tv,av=Tn.Symbol,Fr=av,To=Object.prototype,nv=To.hasOwnProperty,iv=To.toString,ta=Fr?Fr.toStringTag:void 0;function sv(t){var e=nv.call(t,ta),r=t[ta];try{t[ta]=void 0;var a=!0}catch{}var n=iv.call(t);return a&&(e?t[ta]=r:delete t[ta]),n}var ov=sv,uv=Object.prototype,lv=uv.toString;function vv(t){return lv.call(t)}var fv=vv,cv="[object Null]",dv="[object Undefined]",Zi=Fr?Fr.toStringTag:void 0;function hv(t){return t==null?t===void 0?dv:cv:Zi&&Zi in Object(t)?ov(t):fv(t)}var Co=hv;function gv(t){return t!=null&&typeof t=="object"}var pv=gv,yv="[object Symbol]";function mv(t){return typeof t=="symbol"||pv(t)&&Co(t)==yv}var Aa=mv,Qi=NaN,bv=/^[-+]0x[0-9a-f]+$/i,wv=/^0b[01]+$/i,xv=/^0o[0-7]+$/i,Ev=parseInt;function Tv(t){if(typeof t=="number")return t;if(Aa(t))return Qi;if(yr(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=yr(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=rv(t);var r=wv.test(t);return r||xv.test(t)?Ev(t.slice(2),r?2:8):bv.test(t)?Qi:+t}var Ji=Tv,Cv="Expected a function",Sv=Math.max,Dv=Math.min;function kv(t,e,r){var a,n,i,s,o,l,u=0,v=!1,f=!1,c=!0;if(typeof t!="function")throw new TypeError(Cv);e=Ji(e)||0,yr(r)&&(v=!!r.leading,f="maxWait"in r,i=f?Sv(Ji(r.maxWait)||0,e):i,c="trailing"in r?!!r.trailing:c);function h(E){var x=a,S=n;return a=n=void 0,u=E,s=t.apply(S,x),s}function d(E){return u=E,o=setTimeout(g,e),v?h(E):s}function y(E){var x=E-l,S=E-u,C=e-x;return f?Dv(C,i-S):C}function p(E){var x=E-l,S=E-u;return l===void 0||x>=e||x<0||f&&S>=i}function g(){var E=$n();if(p(E))return m(E);o=setTimeout(g,y(E))}function m(E){return o=void 0,c&&a?h(E):(a=n=void 0,s)}function b(){o!==void 0&&clearTimeout(o),u=0,a=l=n=o=void 0}function w(){return o===void 0?s:m($n())}function T(){var E=$n(),x=p(E);if(a=arguments,n=this,l=E,x){if(o===void 0)return d(l);if(f)return clearTimeout(o),o=setTimeout(g,e),h(l)}return o===void 0&&(o=setTimeout(g,e)),s}return T.cancel=b,T.flush=w,T}var Ra=kv,Kn=We?We.performance:null,So=Kn&&Kn.now?function(){return Kn.now()}:function(){return Date.now()},Pv=function(){if(We){if(We.requestAnimationFrame)return function(t){We.requestAnimationFrame(t)};if(We.mozRequestAnimationFrame)return function(t){We.mozRequestAnimationFrame(t)};if(We.webkitRequestAnimationFrame)return function(t){We.webkitRequestAnimationFrame(t)};if(We.msRequestAnimationFrame)return function(t){We.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(So())},1e3/60)}}(),fn=function(e){return Pv(e)},Wt=So,Rr=9261,Do=65599,la=5381,ko=function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Rr,a=r,n;n=e.next(),!n.done;)a=a*Do+n.value|0;return a},ma=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Rr;return r*Do+e|0},ba=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:la;return(r<<5)+r+e|0},Bv=function(e,r){return e*2097152+r},_t=function(e){return e[0]*2097152+e[1]},qa=function(e,r){return[ma(e[0],r[0]),ba(e[1],r[1])]},Av=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 ko(s,r)},rr=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 ko(s,r)},Po=function(){return Rv(arguments)},Rv=function(e){for(var r,a=0;a<e.length;a++){var n=e[a];a===0?r=rr(n):r=rr(n,r)}return r},ji=!0,Lv=console.warn!=null,Mv=console.trace!=null,Ei=Number.MAX_SAFE_INTEGER||9007199254740991,Bo=function(){return!0},cn=function(){return!1},es=function(){return 0},Ti=function(){},qe=function(e){throw new Error(e)},Ao=function(e){if(e!==void 0)ji=!!e;else return ji},Ae=function(e){Ao()&&(Lv?console.warn(e):(console.log(e),Mv&&console.trace()))},Iv=function(e){return de({},e)},Nt=function(e){return e==null?e:Ie(e)?e.slice():ke(e)?Iv(e):e},Ov=function(e){return e.slice()},Ro=function(e,r){for(r=e="";e++<36;r+=e*51&52?(e^15?8^Math.random()*(e^20?16:4):4).toString(16):"-");return r},Nv={},Lo=function(){return Nv},je=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}},ar=function(e,r,a){for(var n=e.length-1;n>=0;n--)e[n]===r&&e.splice(n,1)},Ci=function(e){e.splice(0,e.length)},zv=function(e,r){for(var a=0;a<r.length;a++){var n=r[a];e.push(n)}},Bt=function(e,r,a){return a&&(r=mo(a,r)),e[r]},Qt=function(e,r,a,n){a&&(r=mo(a,r)),e[r]=n},Fv=function(){function t(){or(this,t),this._obj={}}return ur(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}(),zt=typeof Map<"u"?Map:Fv,Vv="undefined",qv=function(){function t(e){if(or(this,t),this._obj=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 ur(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=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}(),Gr=(typeof Set>"u"?"undefined":Ue(Set))!==Vv?Set:qv,Cn=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!wi(e)){qe("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"){qe("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,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?n==="edges":!!r.pannable,active:!1,classes:new Gr,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{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(),l=e.zoom();i.position={x:(s.x-o.x)/l,y:(s.y-o.y)/l}}var u=[];Ie(r.classes)?u=r.classes:fe(r.classes)&&(u=r.classes.split(/\s+/));for(var v=0,f=u.length;v<f;v++){var c=u[v];!c||c===""||i.classes.add(c)}this.createEmitter();var h=r.style||r.css;h&&(Ae("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(h)),(a===void 0||a)&&this.restore()},ts=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(a,n,i){var s;ke(a)&&!xt(a)&&(s=a,a=s.roots||s.root,n=s.visit,i=s.directed),i=arguments.length===2&&!$e(n)?n:i,n=$e(n)?n:function(){};for(var o=this._private.cy,l=a=fe(a)?this.filter(a):a,u=[],v=[],f={},c={},h={},d=0,y,p=this.byGroup(),g=p.nodes,m=p.edges,b=0;b<l.length;b++){var w=l[b],T=w.id();w.isNode()&&(u.unshift(w),e.bfs&&(h[T]=!0,v.push(w)),c[T]=0)}for(var E=function(){var R=e.bfs?u.shift():u.pop(),A=R.id();if(e.dfs){if(h[A])return"continue";h[A]=!0,v.push(R)}var I=c[A],L=f[A],M=L!=null?L.source():null,O=L!=null?L.target():null,q=L==null?void 0:R.same(M)?O[0]:M[0],W=void 0;if(W=n(R,L,q,d++,I),W===!0)return y=R,"break";if(W===!1)return"break";for(var V=R.connectedEdges().filter(function(Z){return(!i||Z.source().same(R))&&m.has(Z)}),$=0;$<V.length;$++){var X=V[$],_=X.connectedNodes().filter(function(Z){return!Z.same(R)&&g.has(Z)}),Q=_.id();_.length!==0&&!h[Q]&&(_=_[0],u.push(_),e.bfs&&(h[Q]=!0,v.push(_)),f[Q]=X,c[Q]=c[A]+1)}};u.length!==0;){var x=E();if(x!=="continue"&&x==="break")break}for(var S=o.collection(),C=0;C<v.length;C++){var P=v[C],B=f[P.id()];B!=null&&S.push(B),S.push(P)}return{path:o.collection(S),found:o.collection(y)}}},wa={breadthFirstSearch:ts({bfs:!0}),depthFirstSearch:ts({dfs:!0})};wa.bfs=wa.breadthFirstSearch;wa.dfs=wa.depthFirstSearch;var $v=Hl(function(t,e){(function(){var r,a,n,i,s,o,l,u,v,f,c,h,d,y,p;n=Math.floor,f=Math.min,a=function(g,m){return g<m?-1:g>m?1:0},v=function(g,m,b,w,T){var E;if(b==null&&(b=0),T==null&&(T=a),b<0)throw new Error("lo must be non-negative");for(w==null&&(w=g.length);b<w;)E=n((b+w)/2),T(m,g[E])<0?w=E:b=E+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,w;return m==null&&(m=a),b=g.pop(),g.length?(w=g[0],g[0]=b,p(g,0,m)):w=b,w},u=function(g,m,b){var w;return b==null&&(b=a),w=g[0],g[0]=m,p(g,0,b),w},l=function(g,m,b){var w;return b==null&&(b=a),g.length&&b(g[0],m)<0&&(w=[g[0],m],m=w[0],g[0]=w[1],p(g,0,b)),m},i=function(g,m){var b,w,T,E,x,S;for(m==null&&(m=a),E=(function(){S=[];for(var C=0,P=n(g.length/2);0<=P?C<P:C>P;0<=P?C++:C--)S.push(C);return S}).apply(this).reverse(),x=[],w=0,T=E.length;w<T;w++)b=E[w],x.push(p(g,b,m));return x},d=function(g,m,b){var w;if(b==null&&(b=a),w=g.indexOf(m),w!==-1)return y(g,0,w,b),p(g,w,b)},c=function(g,m,b){var w,T,E,x,S;if(b==null&&(b=a),T=g.slice(0,m),!T.length)return T;for(i(T,b),S=g.slice(m),E=0,x=S.length;E<x;E++)w=S[E],l(T,w,b);return T.sort(b).reverse()},h=function(g,m,b){var w,T,E,x,S,C,P,B,k;if(b==null&&(b=a),m*10<=g.length){if(E=g.slice(0,m).sort(b),!E.length)return E;for(T=E[E.length-1],P=g.slice(m),x=0,C=P.length;x<C;x++)w=P[x],b(w,T)<0&&(v(E,w,0,null,b),E.pop(),T=E[E.length-1]);return E}for(i(g,b),k=[],S=0,B=f(m,g.length);0<=B?S<B:S>B;0<=B?++S:--S)k.push(s(g,b));return k},y=function(g,m,b,w){var T,E,x;for(w==null&&(w=a),T=g[b];b>m;){if(x=b-1>>1,E=g[x],w(T,E)<0){g[b]=E,b=x;continue}break}return g[b]=T},p=function(g,m,b){var w,T,E,x,S;for(b==null&&(b=a),T=g.length,S=m,E=g[m],w=2*m+1;w<T;)x=w+1,x<T&&!(b(g[w],g[x])<0)&&(w=x),g[m]=g[w],m=w,w=2*m+1;return g[m]=E,y(g,S,m,b)},r=function(){g.push=o,g.pop=s,g.replace=u,g.pushpop=l,g.heapify=i,g.updateItem=d,g.nlargest=c,g.nsmallest=h;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 u(this.nodes,m,this.cmp)},g.prototype.pushpop=function(m){return l(this.nodes,m,this.cmp)},g.prototype.heapify=function(){return i(this.nodes,this.cmp)},g.prototype.updateItem=function(m){return d(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(ua)}),La=$v,Kv=je({root:null,weight:function(e){return 1},directed:!1}),Gv={dijkstra:function(e){if(!ke(e)){var r=arguments;e={root:r[0],weight:r[1],directed:r[2]}}var a=Kv(e),n=a.root,i=a.weight,s=a.directed,o=this,l=i,u=fe(n)?this.filter(n)[0]:n[0],v={},f={},c={},h=this.byGroup(),d=h.nodes,y=h.edges;y.unmergeBy(function(I){return I.isLoop()});for(var p=function(L){return v[L.id()]},g=function(L,M){v[L.id()]=M,m.updateItem(L)},m=new La(function(I,L){return p(I)-p(L)}),b=0;b<d.length;b++){var w=d[b];v[w.id()]=w.same(u)?0:1/0,m.push(w)}for(var T=function(L,M){for(var O=(s?L.edgesTo(M):L.edgesWith(M)).intersect(y),q=1/0,W,V=0;V<O.length;V++){var $=O[V],X=l($);(X<q||!W)&&(q=X,W=$)}return{edge:W,dist:q}};m.size()>0;){var E=m.pop(),x=p(E),S=E.id();if(c[S]=x,x!==1/0)for(var C=E.neighborhood().intersect(d),P=0;P<C.length;P++){var B=C[P],k=B.id(),R=T(E,B),A=x+R.dist;A<p(B)&&(g(B,A),f[k]={node:E,edge:R.edge})}}return{distanceTo:function(L){var M=fe(L)?d.filter(L)[0]:L[0];return c[M.id()]},pathTo:function(L){var M=fe(L)?d.filter(L)[0]:L[0],O=[],q=M,W=q.id();if(M.length>0)for(O.unshift(M);f[W];){var V=f[W];O.unshift(V.edge),O.unshift(V.node),q=V.node,W=q.id()}return o.spawn(O)}}}},Wv={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,l=function(w){for(var T=0;T<s.length;T++){var E=s[T];if(E.has(w))return T}},u=0;u<i;u++)s[u]=this.spawn(a[u]);for(var v=n.sort(function(b,w){return e(b)-e(w)}),f=0;f<v.length;f++){var c=v[f],h=c.source()[0],d=c.target()[0],y=l(h),p=l(d),g=s[y],m=s[p];y!==p&&(o.merge(c),g.merge(m),s.splice(p,1))}return o}},Hv=je({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),Uv={aStar:function(e){var r=this.cy(),a=Hv(e),n=a.root,i=a.goal,s=a.heuristic,o=a.directed,l=a.weight;n=r.collection(n)[0],i=r.collection(i)[0];var u=n.id(),v=i.id(),f={},c={},h={},d=new La(function(W,V){return c[W.id()]-c[V.id()]}),y=new Gr,p={},g={},m=function(V,$){d.push(V),y.add($)},b,w,T=function(){b=d.pop(),w=b.id(),y.delete(w)},E=function(V){return y.has(V)};m(n,u),f[u]=0,c[u]=s(n);for(var x=0;d.size()>0;){if(T(),x++,w===v){for(var S=[],C=i,P=v,B=g[P];S.unshift(C),B!=null&&S.unshift(B),C=p[P],C!=null;)P=C.id(),B=g[P];return{found:!0,distance:f[w],path:this.spawn(S),steps:x}}h[w]=!0;for(var k=b._private.edges,R=0;R<k.length;R++){var A=k[R];if(this.hasElementWithId(A.id())&&!(o&&A.data("source")!==w)){var I=A.source(),L=A.target(),M=I.id()!==w?I:L,O=M.id();if(this.hasElementWithId(O)&&!h[O]){var q=f[w]+l(A);if(!E(O)){f[O]=q,c[O]=q+s(M),m(M,O),p[O]=b,g[O]=A;continue}q<f[O]&&(f[O]=q,c[O]=q+s(M),p[O]=b,g[O]=A)}}}}return{found:!1,distance:void 0,path:void 0,steps:x}}},Xv=je({weight:function(e){return 1},directed:!1}),Yv={floydWarshall:function(e){for(var r=this.cy(),a=Xv(e),n=a.weight,i=a.directed,s=n,o=this.byGroup(),l=o.nodes,u=o.edges,v=l.length,f=v*v,c=function(X){return l.indexOf(X)},h=function(X){return l[X]},d=new Array(f),y=0;y<f;y++){var p=y%v,g=(y-p)/v;g===p?d[y]=0:d[y]=1/0}for(var m=new Array(f),b=new Array(f),w=0;w<u.length;w++){var T=u[w],E=T.source()[0],x=T.target()[0];if(E!==x){var S=c(E),C=c(x),P=S*v+C,B=s(T);if(d[P]>B&&(d[P]=B,m[P]=C,b[P]=T),!i){var k=C*v+S;!i&&d[k]>B&&(d[k]=B,m[k]=S,b[k]=T)}}}for(var R=0;R<v;R++)for(var A=0;A<v;A++)for(var I=A*v+R,L=0;L<v;L++){var M=A*v+L,O=R*v+L;d[I]+d[O]<d[M]&&(d[M]=d[I]+d[O],m[M]=m[I])}var q=function(X){return(fe(X)?r.filter(X):X)[0]},W=function(X){return c(q(X))},V={distance:function(X,_){var Q=W(X),Z=W(_);return d[Q*v+Z]},path:function(X,_){var Q=W(X),Z=W(_),j=h(Q);if(Q===Z)return j.collection();if(m[Q*v+Z]==null)return r.collection();var te=r.collection(),G=Q,N;for(te.merge(j);Q!==Z;)G=Q,Q=m[Q*v+Z],N=b[G*v+Q],te.merge(N),te.merge(h(Q));return te}};return V}},_v=je({weight:function(e){return 1},directed:!1,root:null}),Zv={bellmanFord:function(e){var r=this,a=_v(e),n=a.weight,i=a.directed,s=a.root,o=n,l=this,u=this.cy(),v=this.byGroup(),f=v.edges,c=v.nodes,h=c.length,d=new zt,y=!1,p=[];s=u.collection(s)[0],f.unmergeBy(function(Le){return Le.isLoop()});for(var g=f.length,m=function(le){var oe=d.get(le.id());return oe||(oe={},d.set(le.id(),oe)),oe},b=function(le){return(fe(le)?u.$(le):le)[0]},w=function(le){return m(b(le)).dist},T=function(le){for(var oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s,pe=b(le),ye=[],he=pe;;){if(he==null)return r.spawn();var me=m(he),Ee=me.edge,Se=me.pred;if(ye.unshift(he[0]),he.same(oe)&&ye.length>0)break;Ee!=null&&ye.unshift(Ee),he=Se}return l.spawn(ye)},E=0;E<h;E++){var x=c[E],S=m(x);x.same(s)?S.dist=0:S.dist=1/0,S.pred=null,S.edge=null}for(var C=!1,P=function(le,oe,pe,ye,he,me){var Ee=ye.dist+me;Ee<he.dist&&!pe.same(ye.edge)&&(he.dist=Ee,he.pred=le,he.edge=pe,C=!0)},B=1;B<h;B++){C=!1;for(var k=0;k<g;k++){var R=f[k],A=R.source(),I=R.target(),L=o(R),M=m(A),O=m(I);P(A,I,R,M,O,L),i||P(I,A,R,O,M,L)}if(!C)break}if(C)for(var q=[],W=0;W<g;W++){var V=f[W],$=V.source(),X=V.target(),_=o(V),Q=m($).dist,Z=m(X).dist;if(Q+_<Z||!i&&Z+_<Q)if(y||(Ae("Graph contains a negative weight cycle for Bellman-Ford"),y=!0),e.findNegativeWeightCycles!==!1){var j=[];Q+_<Z&&j.push($),!i&&Z+_<Q&&j.push(X);for(var te=j.length,G=0;G<te;G++){var N=j[G],H=[N];H.push(m(N).edge);for(var ee=m(N).pred;H.indexOf(ee)===-1;)H.push(ee),H.push(m(ee).edge),ee=m(ee).pred;H=H.slice(H.indexOf(ee));for(var ie=H[0].id(),ue=0,Ce=2;Ce<H.length;Ce+=2)H[Ce].id()<ie&&(ie=H[Ce].id(),ue=Ce);H=H.slice(ue).concat(H.slice(0,ue)),H.push(H[0]);var Re=H.map(function(Le){return Le.id()}).join(",");q.indexOf(Re)===-1&&(p.push(l.spawn(H)),q.push(Re))}}else break}return{distanceTo:w,pathTo:T,hasNegativeWeightCycle:y,negativeWeightCycles:p}}},Qv=Math.sqrt(2),Jv=function(e,r,a){a.length===0&&qe("Karger-Stein must be run on a connected (sub)graph");for(var n=a[e],i=n[1],s=n[2],o=r[i],l=r[s],u=a,v=u.length-1;v>=0;v--){var f=u[v],c=f[1],h=f[2];(r[c]===o&&r[h]===l||r[c]===l&&r[h]===o)&&u.splice(v,1)}for(var d=0;d<u.length;d++){var y=u[d];y[1]===l?(u[d]=y.slice(),u[d][1]=o):y[2]===l&&(u[d]=y.slice(),u[d][2]=o)}for(var p=0;p<r.length;p++)r[p]===l&&(r[p]=o);return u},Gn=function(e,r,a,n){for(;a>n;){var i=Math.floor(Math.random()*r.length);r=Jv(i,e,r),a--}return r},jv={kargerStein:function(){var e=this,r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy(function(O){return O.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),l=Math.floor(i/Qv);if(i<2){qe("At least 2 nodes are required for Karger-Stein algorithm");return}for(var u=[],v=0;v<s;v++){var f=n[v];u.push([v,a.indexOf(f.source()),a.indexOf(f.target())])}for(var c=1/0,h=[],d=new Array(i),y=new Array(i),p=new Array(i),g=function(q,W){for(var V=0;V<i;V++)W[V]=q[V]},m=0;m<=o;m++){for(var b=0;b<i;b++)y[b]=b;var w=Gn(y,u.slice(),i,l),T=w.slice();g(y,p);var E=Gn(y,w,l,2),x=Gn(p,T,l,2);E.length<=x.length&&E.length<c?(c=E.length,h=E,g(y,d)):x.length<=E.length&&x.length<c&&(c=x.length,h=x,g(p,d))}for(var S=this.spawn(h.map(function(O){return n[O[0]]})),C=this.spawn(),P=this.spawn(),B=d[0],k=0;k<d.length;k++){var R=d[k],A=a[k];R===B?C.merge(A):P.merge(A)}var I=function(q){var W=e.spawn();return q.forEach(function(V){W.merge(V),V.connectedEdges().forEach(function($){e.contains($)&&!S.contains($)&&W.merge($)})}),W},L=[I(C),I(P)],M={cut:S,components:L,partition1:C,partition2:P};return M}},ef=function(e){return{x:e.x,y:e.y}},Sn=function(e,r,a){return{x:e.x*r+a.x,y:e.y*r+a.y}},Mo=function(e,r,a){return{x:(e.x-a.x)/r,y:(e.y-a.y)/r}},Lr=function(e){return{x:e[0],y:e[1]}},tf=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},rf=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},af=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},nf=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,l=e.length-1;l>=0;l--){var u=e[l];s?isFinite(u)||(e[l]=-1/0,o++):e.splice(l,1)}i&&e.sort(function(c,h){return c-h});var v=e.length,f=Math.floor(v/2);return v%2!==0?e[f+1+o]:(e[f-1+o]+e[f+o])/2},sf=function(e){return Math.PI*e/180},$a=function(e,r){return Math.atan2(r,e)-Math.PI/2},Si=Math.log2||function(t){return Math.log(t)/Math.log(2)},Io=function(e){return e>0?1:e<0?-1:0},mr=function(e,r){return Math.sqrt(cr(e,r))},cr=function(e,r){var a=r.x-e.x,n=r.y-e.y;return a*a+n*n},of=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},Qe=function(e,r,a,n){return(1-n)*(1-n)*e+2*(1-n)*n*r+n*n*a},Ir=function(e,r,a,n){return{x:Qe(e.x,r.x,a.x,n),y:Qe(e.y,r.y,a.y,n)}},uf=function(e,r,a,n){var i={x:r.x-e.x,y:r.y-e.y},s=mr(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}},xa=function(e,r,a){return Math.max(e,Math.min(a,r))},pt=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}}},lf=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},vf=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},ff=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}},Oo=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},en=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},tn=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=Je(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},rs=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},Di=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)},Vr=function(e,r,a){return e.x1<=r&&r<=e.x2&&e.y1<=a&&a<=e.y2},df=function(e,r){return Vr(e,r.x,r.y)},No=function(e,r){return Vr(e,r.x1,r.y1)&&Vr(e,r.x2,r.y2)},zo=function(e,r,a,n,i,s,o){var l=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",u=l==="auto"?br(i,s):l,v=i/2,f=s/2;u=Math.min(u,v,f);var c=u!==v,h=u!==f,d;if(c){var y=a-v+u-o,p=n-f-o,g=a+v-u+o,m=p;if(d=Jt(e,r,a,n,y,p,g,m,!1),d.length>0)return d}if(h){var b=a+v+o,w=n-f+u-o,T=b,E=n+f-u+o;if(d=Jt(e,r,a,n,b,w,T,E,!1),d.length>0)return d}if(c){var x=a-v+u-o,S=n+f+o,C=a+v-u+o,P=S;if(d=Jt(e,r,a,n,x,S,C,P,!1),d.length>0)return d}if(h){var B=a-v-o,k=n-f+u-o,R=B,A=n+f-u+o;if(d=Jt(e,r,a,n,B,k,R,A,!1),d.length>0)return d}var I;{var L=a-v+u,M=n-f+u;if(I=va(e,r,a,n,L,M,u+o),I.length>0&&I[0]<=L&&I[1]<=M)return[I[0],I[1]]}{var O=a+v-u,q=n-f+u;if(I=va(e,r,a,n,O,q,u+o),I.length>0&&I[0]>=O&&I[1]<=q)return[I[0],I[1]]}{var W=a+v-u,V=n+f-u;if(I=va(e,r,a,n,W,V,u+o),I.length>0&&I[0]>=W&&I[1]>=V)return[I[0],I[1]]}{var $=a-v+u,X=n+f-u;if(I=va(e,r,a,n,$,X,u+o),I.length>0&&I[0]<=$&&I[1]>=X)return[I[0],I[1]]}return[]},hf=function(e,r,a,n,i,s,o){var l=o,u=Math.min(a,i),v=Math.max(a,i),f=Math.min(n,s),c=Math.max(n,s);return u-l<=e&&e<=v+l&&f-l<=r&&r<=c+l},gf=function(e,r,a,n,i,s,o,l,u){var v={x1:Math.min(a,o,i)-u,x2:Math.max(a,o,i)+u,y1:Math.min(n,l,s)-u,y2:Math.max(n,l,s)+u};return!(e<v.x1||e>v.x2||r<v.y1||r>v.y2)},pf=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,l=(-r+s)/o,u=(-r-s)/o;return[l,u]},yf=function(e,r,a,n,i){var s=1e-5;e===0&&(e=s),r/=e,a/=e,n/=e;var o,l,u,v,f,c,h,d;if(l=(3*a-r*r)/9,u=-(27*n)+r*(9*a-2*(r*r)),u/=54,o=l*l*l+u*u,i[1]=0,h=r/3,o>0){f=u+Math.sqrt(o),f=f<0?-Math.pow(-f,1/3):Math.pow(f,1/3),c=u-Math.sqrt(o),c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+f+c,h+=(f+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+f)/2,i[3]=h,i[5]=-h;return}if(i[5]=i[3]=0,o===0){d=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-h+2*d,i[4]=i[2]=-(d+h);return}l=-l,v=l*l*l,v=Math.acos(u/Math.sqrt(v)),d=2*Math.sqrt(l),i[0]=-h+d*Math.cos(v/3),i[2]=-h+d*Math.cos((v+2*Math.PI)/3),i[4]=-h+d*Math.cos((v+4*Math.PI)/3)},mf=function(e,r,a,n,i,s,o,l){var u=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*l+4*s*s-4*s*l+l*l,v=1*9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*l-6*s*s+3*s*l,f=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*l-n*r+2*s*s+2*s*r-l*r,c=1*a*i-a*a+a*e-i*e+n*s-n*n+n*r-s*r,h=[];yf(u,v,f,c,h);for(var d=1e-7,y=[],p=0;p<6;p+=2)Math.abs(h[p+1])<d&&h[p]>=0&&h[p]<=1&&y.push(h[p]);y.push(1),y.push(0);for(var g=-1,m,b,w,T=0;T<y.length;T++)m=Math.pow(1-y[T],2)*a+2*(1-y[T])*y[T]*i+y[T]*y[T]*o,b=Math.pow(1-y[T],2)*n+2*(1-y[T])*y[T]*s+y[T]*y[T]*l,w=Math.pow(m-e,2)+Math.pow(b-r,2),g>=0?w<g&&(g=w):g=w;return g},bf=function(e,r,a,n,i,s){var o=[e-a,r-n],l=[i-a,s-n],u=l[0]*l[0]+l[1]*l[1],v=o[0]*o[0]+o[1]*o[1],f=o[0]*l[0]+o[1]*l[1],c=f*f/u;return f<0?v:c>u?(e-i)*(e-i)+(r-s)*(r-s):v-c},gt=function(e,r,a){for(var n,i,s,o,l,u=0,v=0;v<a.length/2;v++)if(n=a[v*2],i=a[v*2+1],v+1<a.length/2?(s=a[(v+1)*2],o=a[(v+1)*2+1]):(s=a[(v+1-a.length/2)*2],o=a[(v+1-a.length/2)*2+1]),!(n==e&&s==e))if(n>=e&&e>=s||n<=e&&e<=s)l=(e-n)/(s-n)*(o-i)+i,l>r&&u++;else continue;return u%2!==0},Ht=function(e,r,a,n,i,s,o,l,u){var v=new Array(a.length),f;l[0]!=null?(f=Math.atan(l[1]/l[0]),l[0]<0?f=f+Math.PI/2:f=-f-Math.PI/2):f=l;for(var c=Math.cos(-f),h=Math.sin(-f),d=0;d<v.length/2;d++)v[d*2]=s/2*(a[d*2]*c-a[d*2+1]*h),v[d*2+1]=o/2*(a[d*2+1]*c+a[d*2]*h),v[d*2]+=n,v[d*2+1]+=i;var y;if(u>0){var p=hn(v,-u);y=dn(p)}else y=v;return gt(e,r,y)},wf=function(e,r,a,n,i,s,o,l){for(var u=new Array(a.length*2),v=0;v<l.length;v++){var f=l[v];u[v*4+0]=f.startX,u[v*4+1]=f.startY,u[v*4+2]=f.stopX,u[v*4+3]=f.stopY;var c=Math.pow(f.cx-e,2)+Math.pow(f.cy-r,2);if(c<=Math.pow(f.radius,2))return!0}return gt(e,r,u)},dn=function(e){for(var r=new Array(e.length/2),a,n,i,s,o,l,u,v,f=0;f<e.length/4;f++){a=e[f*4],n=e[f*4+1],i=e[f*4+2],s=e[f*4+3],f<e.length/4-1?(o=e[(f+1)*4],l=e[(f+1)*4+1],u=e[(f+1)*4+2],v=e[(f+1)*4+3]):(o=e[0],l=e[1],u=e[2],v=e[3]);var c=Jt(a,n,i,s,o,l,u,v,!0);r[f*2]=c[0],r[f*2+1]=c[1]}return r},hn=function(e,r){for(var a=new Array(e.length*2),n,i,s,o,l=0;l<e.length/2;l++){n=e[l*2],i=e[l*2+1],l<e.length/2-1?(s=e[(l+1)*2],o=e[(l+1)*2+1]):(s=e[0],o=e[1]);var u=o-i,v=-(s-n),f=Math.sqrt(u*u+v*v),c=u/f,h=v/f;a[l*4]=n+c*r,a[l*4+1]=i+h*r,a[l*4+2]=s+c*r,a[l*4+3]=o+h*r}return a},xf=function(e,r,a,n,i,s){var o=a-e,l=n-r;o/=i,l/=s;var u=Math.sqrt(o*o+l*l),v=u-1;if(v<0)return[];var f=v/u;return[(a-e)*f+e,(n-r)*f+r]},pr=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},va=function(e,r,a,n,i,s,o){var l=[a-e,n-r],u=[e-i,r-s],v=l[0]*l[0]+l[1]*l[1],f=2*(u[0]*l[0]+u[1]*l[1]),c=u[0]*u[0]+u[1]*u[1]-o*o,h=f*f-4*v*c;if(h<0)return[];var d=(-f+Math.sqrt(h))/(2*v),y=(-f-Math.sqrt(h))/(2*v),p=Math.min(d,y),g=Math.max(d,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]*l[0]+e,w=m[0]*l[1]+r;if(m.length>1){if(m[0]==m[1])return[b,w];var T=m[1]*l[0]+e,E=m[1]*l[1]+r;return[b,w,T,E]}else return[b,w]},Wn=function(e,r,a){return r<=e&&e<=a||a<=e&&e<=r?e:e<=r&&r<=a||a<=r&&r<=e?r:a},Jt=function(e,r,a,n,i,s,o,l,u){var v=e-i,f=a-e,c=o-i,h=r-s,d=n-r,y=l-s,p=c*h-y*v,g=f*h-d*v,m=y*f-c*d;if(m!==0){var b=p/m,w=g/m,T=.001,E=0-T,x=1+T;return E<=b&&b<=x&&E<=w&&w<=x?[e+b*f,r+b*d]:u?[e+b*f,r+b*d]:[]}else return p===0||g===0?Wn(e,a,o)===o?[o,l]:Wn(e,a,i)===i?[i,s]:Wn(i,o,a)===a?[a,n]:[]:[]},Ea=function(e,r,a,n,i,s,o,l){var u=[],v,f=new Array(a.length),c=!0;s==null&&(c=!1);var h;if(c){for(var d=0;d<f.length/2;d++)f[d*2]=a[d*2]*s+n,f[d*2+1]=a[d*2+1]*o+i;if(l>0){var y=hn(f,-l);h=dn(y)}else h=f}else h=a;for(var p,g,m,b,w=0;w<h.length/2;w++)p=h[w*2],g=h[w*2+1],w<h.length/2-1?(m=h[(w+1)*2],b=h[(w+1)*2+1]):(m=h[0],b=h[1]),v=Jt(e,r,n,i,p,g,m,b),v.length!==0&&u.push(v[0],v[1]);return u},Ef=function(e,r,a,n,i,s,o,l,u){var v=[],f,c=new Array(a.length*2);u.forEach(function(m,b){b===0?(c[c.length-2]=m.startX,c[c.length-1]=m.startY):(c[b*4-2]=m.startX,c[b*4-1]=m.startY),c[b*4]=m.stopX,c[b*4+1]=m.stopY,f=va(e,r,n,i,m.cx,m.cy,m.radius),f.length!==0&&v.push(f[0],f[1])});for(var h=0;h<c.length/4;h++)f=Jt(e,r,n,i,c[h*4],c[h*4+1],c[h*4+2],c[h*4+3],!1),f.length!==0&&v.push(f[0],f[1]);if(v.length>2){for(var d=[v[0],v[1]],y=Math.pow(d[0]-e,2)+Math.pow(d[1]-r,2),p=1;p<v.length/2;p++){var g=Math.pow(v[p*2]-e,2)+Math.pow(v[p*2+1]-r,2);g<=y&&(d[0]=v[p*2],d[1]=v[p*2+1],y=g)}return d}return v},Ka=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]]},ct=function(e,r){var a=ai(e,r);return a=Fo(a),a},Fo=function(e){for(var r,a,n=e.length/2,i=1/0,s=1/0,o=-1/0,l=-1/0,u=0;u<n;u++)r=e[2*u],a=e[2*u+1],i=Math.min(i,r),o=Math.max(o,r),s=Math.min(s,a),l=Math.max(l,a);for(var v=2/(o-i),f=2/(l-s),c=0;c<n;c++)r=e[2*c]=e[2*c]*v,a=e[2*c+1]=e[2*c+1]*f,i=Math.min(i,r),o=Math.max(o,r),s=Math.min(s,a),l=Math.max(l,a);if(s<-1)for(var h=0;h<n;h++)a=e[2*h+1]=e[2*h+1]+(-1-s);return e},ai=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},br=function(e,r){return Math.min(e/4,r/4,8)},Vo=function(e,r){return Math.min(e/10,r/10,8)},ki=function(){return 8},Tf=function(e,r,a){return[e-2*r+a,2*(r-e),e]},ni=function(e,r){return{heightOffset:Math.min(15,.05*r),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},Cf=je({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(e){return 1}}),Sf={pageRank:function(e){for(var r=Cf(e),a=r.dampingFactor,n=r.precision,i=r.iterations,s=r.weight,o=this._private.cy,l=this.byGroup(),u=l.nodes,v=l.edges,f=u.length,c=f*f,h=v.length,d=new Array(c),y=new Array(f),p=(1-a)/f,g=0;g<f;g++){for(var m=0;m<f;m++){var b=g*f+m;d[b]=0}y[g]=0}for(var w=0;w<h;w++){var T=v[w],E=T.data("source"),x=T.data("target");if(E!==x){var S=u.indexOfId(E),C=u.indexOfId(x),P=s(T),B=C*f+S;d[B]+=P,y[S]+=P}}for(var k=1/f+p,R=0;R<f;R++)if(y[R]===0)for(var A=0;A<f;A++){var I=A*f+R;d[I]=k}else for(var L=0;L<f;L++){var M=L*f+R;d[M]=d[M]/y[R]+p}for(var O=new Array(f),q=new Array(f),W,V=0;V<f;V++)O[V]=1;for(var $=0;$<i;$++){for(var X=0;X<f;X++)q[X]=0;for(var _=0;_<f;_++)for(var Q=0;Q<f;Q++){var Z=_*f+Q;q[_]+=d[Z]*O[Q]}of(q),W=O,O=q,q=W;for(var j=0,te=0;te<f;te++){var G=W[te]-O[te];j+=G*G}if(j<n)break}var N={rank:function(ee){return ee=o.collection(ee)[0],O[u.indexOf(ee)]}};return N}},as=je({root:null,weight:function(e){return 1},directed:!1,alpha:0}),Or={degreeCentralityNormalized:function(e){e=as(e);var r=this.cy(),a=this.nodes(),n=a.length;if(e.directed){for(var v={},f={},c=0,h=0,d=0;d<n;d++){var y=a[d],p=y.id();e.root=y;var g=this.degreeCentrality(e);c<g.indegree&&(c=g.indegree),h<g.outdegree&&(h=g.outdegree),v[p]=g.indegree,f[p]=g.outdegree}return{indegree:function(b){return c==0?0:(fe(b)&&(b=r.filter(b)),v[b.id()]/c)},outdegree:function(b){return h===0?0:(fe(b)&&(b=r.filter(b)),f[b.id()]/h)}}}else{for(var i={},s=0,o=0;o<n;o++){var l=a[o];e.root=l;var u=this.degreeCentrality(e);s<u.degree&&(s=u.degree),i[l.id()]=u.degree}return{degree:function(b){return s===0?0:(fe(b)&&(b=r.filter(b)),i[b.id()]/s)}}}},degreeCentrality:function(e){e=as(e);var r=this.cy(),a=this,n=e,i=n.root,s=n.weight,o=n.directed,l=n.alpha;if(i=r.collection(i)[0],o){for(var h=i.connectedEdges(),d=h.filter(function(E){return E.target().same(i)&&a.has(E)}),y=h.filter(function(E){return E.source().same(i)&&a.has(E)}),p=d.length,g=y.length,m=0,b=0,w=0;w<d.length;w++)m+=s(d[w]);for(var T=0;T<y.length;T++)b+=s(y[T]);return{indegree:Math.pow(p,1-l)*Math.pow(m,l),outdegree:Math.pow(g,1-l)*Math.pow(b,l)}}else{for(var u=i.connectedEdges().intersection(a),v=u.length,f=0,c=0;c<u.length;c++)f+=s(u[c]);return{degree:Math.pow(v,1-l)*Math.pow(f,l)}}}};Or.dc=Or.degreeCentrality;Or.dcn=Or.degreeCentralityNormalised=Or.degreeCentralityNormalized;var ns=je({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),Nr={closenessCentralityNormalized:function(e){for(var r=ns(e),a=r.harmonic,n=r.weight,i=r.directed,s=this.cy(),o={},l=0,u=this.nodes(),v=this.floydWarshall({weight:n,directed:i}),f=0;f<u.length;f++){for(var c=0,h=u[f],d=0;d<u.length;d++)if(f!==d){var y=v.distance(h,u[d]);a?c+=1/y:c+=y}a||(c=1/c),l<c&&(l=c),o[h.id()]=c}return{closeness:function(g){return l==0?0:(fe(g)?g=s.filter(g)[0].id():g=g.id(),o[g]/l)}}},closenessCentrality:function(e){var r=ns(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}),l=0,u=this.nodes(),v=0;v<u.length;v++){var f=u[v];if(!f.same(a)){var c=o.distanceTo(f);s?l+=1/c:l+=c}}return s?l:1/l}};Nr.cc=Nr.closenessCentrality;Nr.ccn=Nr.closenessCentralityNormalised=Nr.closenessCentralityNormalized;var Df=je({weight:null,directed:!1}),ii={betweennessCentrality:function(e){for(var r=Df(e),a=r.directed,n=r.weight,i=n!=null,s=this.cy(),o=this.nodes(),l={},u={},v=0,f={set:function(b,w){u[b]=w,w>v&&(v=w)},get:function(b){return u[b]}},c=0;c<o.length;c++){var h=o[c],d=h.id();a?l[d]=h.outgoers().nodes():l[d]=h.openNeighborhood().nodes(),f.set(d,0)}for(var y=function(b){for(var w=o[b].id(),T=[],E={},x={},S={},C=new La(function(Q,Z){return S[Q]-S[Z]}),P=0;P<o.length;P++){var B=o[P].id();E[B]=[],x[B]=0,S[B]=1/0}for(x[w]=1,S[w]=0,C.push(w);!C.empty();){var k=C.pop();if(T.push(k),i)for(var R=0;R<l[k].length;R++){var A=l[k][R],I=s.getElementById(k),L=void 0;I.edgesTo(A).length>0?L=I.edgesTo(A)[0]:L=A.edgesTo(I)[0];var M=n(L);A=A.id(),S[A]>S[k]+M&&(S[A]=S[k]+M,C.nodes.indexOf(A)<0?C.push(A):C.updateItem(A),x[A]=0,E[A]=[]),S[A]==S[k]+M&&(x[A]=x[A]+x[k],E[A].push(k))}else for(var O=0;O<l[k].length;O++){var q=l[k][O].id();S[q]==1/0&&(C.push(q),S[q]=S[k]+1),S[q]==S[k]+1&&(x[q]=x[q]+x[k],E[q].push(k))}}for(var W={},V=0;V<o.length;V++)W[o[V].id()]=0;for(;T.length>0;){for(var $=T.pop(),X=0;X<E[$].length;X++){var _=E[$][X];W[_]=W[_]+x[_]/x[$]*(1+W[$])}$!=o[b].id()&&f.set($,f.get($)+W[$])}},p=0;p<o.length;p++)y(p);var g={betweenness:function(b){var w=s.collection(b).id();return f.get(w)},betweennessNormalized:function(b){if(v==0)return 0;var w=s.collection(b).id();return f.get(w)/v}};return g.betweennessNormalised=g.betweennessNormalized,g}};ii.bc=ii.betweennessCentrality;var kf=je({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(t){return 1}]}),Pf=function(e){return kf(e)},Bf=function(e,r){for(var a=0,n=0;n<r.length;n++)a+=r[n](e);return a},Af=function(e,r,a){for(var n=0;n<r;n++)e[n*r+n]=a},qo=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}},Rf=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 l=0;l<a;l++)n[i*a+l]+=e[i*a+o]*r[o*a+l]}return n},Lf=function(e,r,a){for(var n=e.slice(0),i=1;i<a;i++)e=Rf(e,n,r);return e},Mf=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 qo(n,r),n},If=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},Of=function(e,r,a,n){for(var i=[],s=0;s<r;s++){for(var o=[],l=0;l<r;l++)Math.round(e[s*r+l]*1e3)/1e3>0&&o.push(a[l]);o.length!==0&&i.push(n.collection(o))}return i},Nf=function(e,r){for(var a=0;a<e.length;a++)if(!r[a]||e[a].id()!==r[a].id())return!1;return!0},zf=function(e){for(var r=0;r<e.length;r++)for(var a=0;a<e.length;a++)r!=a&&Nf(e[r],e[a])&&e.splice(a,1);return e},is=function(e){for(var r=this.nodes(),a=this.edges(),n=this.cy(),i=Pf(e),s={},o=0;o<r.length;o++)s[r[o].id()]=o;for(var l=r.length,u=l*l,v=new Array(u),f,c=0;c<u;c++)v[c]=0;for(var h=0;h<a.length;h++){var d=a[h],y=s[d.source().id()],p=s[d.target().id()],g=Bf(d,i.attributes);v[y*l+p]+=g,v[p*l+y]+=g}Af(v,l,i.multFactor),qo(v,l);for(var m=!0,b=0;m&&b<i.maxIterations;)m=!1,f=Lf(v,l,i.expandFactor),v=Mf(f,l,i.inflateFactor),If(v,f,u,4)||(m=!0),b++;var w=Of(v,l,r,n);return w=zf(w),w},Ff={markovClustering:is,mcl:is},Vf=function(e){return e},$o=function(e,r){return Math.abs(r-e)},ss=function(e,r,a){return e+$o(r,a)},os=function(e,r,a){return e+Math.pow(a-r,2)},qf=function(e){return Math.sqrt(e)},$f=function(e,r,a){return Math.max(e,$o(r,a))},ra=function(e,r,a,n,i){for(var s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Vf,o=n,l,u,v=0;v<e;v++)l=r(v),u=a(v),o=i(o,l,u);return s(o)},qr={euclidean:function(e,r,a){return e>=2?ra(e,r,a,0,os,qf):ra(e,r,a,0,ss)},squaredEuclidean:function(e,r,a){return ra(e,r,a,0,os)},manhattan:function(e,r,a){return ra(e,r,a,0,ss)},max:function(e,r,a){return ra(e,r,a,-1/0,$f)}};qr["squared-euclidean"]=qr.squaredEuclidean;qr.squaredeuclidean=qr.squaredEuclidean;function Dn(t,e,r,a,n,i){var s;return $e(t)?s=t:s=qr[t]||qr.euclidean,e===0&&$e(t)?s(n,i):s(e,r,a,n,i)}var Kf=je({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),Pi=function(e){return Kf(e)},gn=function(e,r,a,n,i){var s=i!=="kMedoids",o=s?function(f){return a[f]}:function(f){return n[f](a)},l=function(c){return n[c](r)},u=a,v=r;return Dn(e,n.length,o,l,u,v)},Hn=function(e,r,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(r),l=null,u=0;u<n;u++)i[u]=e.min(a[u]).value,s[u]=e.max(a[u]).value;for(var v=0;v<r;v++){l=[];for(var f=0;f<n;f++)l[f]=Math.random()*(s[f]-i[f])+i[f];o[v]=l}return o},Ko=function(e,r,a,n,i){for(var s=1/0,o=0,l=0;l<r.length;l++){var u=gn(a,e,r[l],n,i);u<s&&(s=u,o=l)}return o},Go=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},Gf=function(e,r,a){return Math.abs(r-e)<=a},Wf=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},Hf=function(e,r,a){for(var n=0;n<a;n++)if(e===r[n])return!0;return!1},us=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)];Hf(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},ls=function(e,r,a){for(var n=0,i=0;i<r.length;i++)n+=gn("manhattan",r[i],e,a,"kMedoids");return n},Uf=function(e){var r=this.cy(),a=this.nodes(),n=null,i=Pi(e),s=new Array(i.k),o={},l;i.testMode?typeof i.testCentroids=="number"?(i.testCentroids,l=Hn(a,i.k,i.attributes)):Ue(i.testCentroids)==="object"?l=i.testCentroids:l=Hn(a,i.k,i.attributes):l=Hn(a,i.k,i.attributes);for(var u=!0,v=0;u&&v<i.maxIterations;){for(var f=0;f<a.length;f++)n=a[f],o[n.id()]=Ko(n,l,i.distance,i.attributes,"kMeans");u=!1;for(var c=0;c<i.k;c++){var h=Go(c,a,o);if(h.length!==0){for(var d=i.attributes.length,y=l[c],p=new Array(d),g=new Array(d),m=0;m<d;m++){g[m]=0;for(var b=0;b<h.length;b++)n=h[b],g[m]+=i.attributes[m](n);p[m]=g[m]/h.length,Gf(p[m],y[m],i.sensitivityThreshold)||(u=!0)}l[c]=p,s[c]=r.collection(h)}}v++}return s},Xf=function(e){var r=this.cy(),a=this.nodes(),n=null,i=Pi(e),s=new Array(i.k),o,l={},u,v=new Array(i.k);i.testMode?typeof i.testCentroids=="number"||(Ue(i.testCentroids)==="object"?o=i.testCentroids:o=us(a,i.k)):o=us(a,i.k);for(var f=!0,c=0;f&&c<i.maxIterations;){for(var h=0;h<a.length;h++)n=a[h],l[n.id()]=Ko(n,o,i.distance,i.attributes,"kMedoids");f=!1;for(var d=0;d<o.length;d++){var y=Go(d,a,l);if(y.length!==0){v[d]=ls(o[d],y,i.attributes);for(var p=0;p<y.length;p++)u=ls(y[p],y,i.attributes),u<v[d]&&(v[d]=u,o[d]=y[p],f=!0);s[d]=r.collection(y)}}c++}return s},Yf=function(e,r,a,n,i){for(var s,o,l=0;l<r.length;l++)for(var u=0;u<e.length;u++)n[l][u]=Math.pow(a[l][u],i.m);for(var v=0;v<e.length;v++)for(var f=0;f<i.attributes.length;f++){s=0,o=0;for(var c=0;c<r.length;c++)s+=n[c][v]*i.attributes[f](r[c]),o+=n[c][v];e[v][f]=s/o}},_f=function(e,r,a,n,i){for(var s=0;s<e.length;s++)r[s]=e[s].slice();for(var o,l,u,v=2/(i.m-1),f=0;f<a.length;f++)for(var c=0;c<n.length;c++){o=0;for(var h=0;h<a.length;h++)l=gn(i.distance,n[c],a[f],i.attributes,"cmeans"),u=gn(i.distance,n[c],a[h],i.attributes,"cmeans"),o+=Math.pow(l/u,v);e[c][f]=1/o}},Zf=function(e,r,a,n){for(var i=new Array(a.k),s=0;s<i.length;s++)i[s]=[];for(var o,l,u=0;u<r.length;u++){o=-1/0,l=-1;for(var v=0;v<r[0].length;v++)r[u][v]>o&&(o=r[u][v],l=v);i[l].push(e[u])}for(var f=0;f<i.length;f++)i[f]=n.collection(i[f]);return i},vs=function(e){var r=this.cy(),a=this.nodes(),n=Pi(e),i,s,o,l,u;l=new Array(a.length);for(var v=0;v<a.length;v++)l[v]=new Array(n.k);o=new Array(a.length);for(var f=0;f<a.length;f++)o[f]=new Array(n.k);for(var c=0;c<a.length;c++){for(var h=0,d=0;d<n.k;d++)o[c][d]=Math.random(),h+=o[c][d];for(var y=0;y<n.k;y++)o[c][y]=o[c][y]/h}s=new Array(n.k);for(var p=0;p<n.k;p++)s[p]=new Array(n.attributes.length);u=new Array(a.length);for(var g=0;g<a.length;g++)u[g]=new Array(n.k);for(var m=!0,b=0;m&&b<n.maxIterations;)m=!1,Yf(s,a,o,u,n),_f(o,l,s,a,n),Wf(o,l,n.sensitivityThreshold)||(m=!0),b++;return i=Zf(a,o,n,r),{clusters:i,degreeOfMembership:o}},Qf={kMeans:Uf,kMedoids:Xf,fuzzyCMeans:vs,fcm:vs},Jf=je({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),jf={single:"min",complete:"max"},ec=function(e){var r=Jf(e),a=jf[r.linkage];return a!=null&&(r.linkage=a),r},fs=function(e,r,a,n,i){for(var s=0,o=1/0,l,u=i.attributes,v=function(C,P){return Dn(i.distance,u.length,function(B){return u[B](C)},function(B){return u[B](P)},C,P)},f=0;f<e.length;f++){var c=e[f].key,h=a[c][n[c]];h<o&&(s=c,o=h)}if(i.mode==="threshold"&&o>=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var d=r[s],y=r[n[s]],p;i.mode==="dendrogram"?p={left:d,right:y,key:d.key}:p={value:d.value.concat(y.value),key:d.key},e[d.index]=p,e.splice(y.index,1),r[d.key]=p;for(var g=0;g<e.length;g++){var m=e[g];d.key===m.key?l=1/0:i.linkage==="min"?(l=a[d.key][m.key],a[d.key][m.key]>a[y.key][m.key]&&(l=a[y.key][m.key])):i.linkage==="max"?(l=a[d.key][m.key],a[d.key][m.key]<a[y.key][m.key]&&(l=a[y.key][m.key])):i.linkage==="mean"?l=(a[d.key][m.key]*d.size+a[y.key][m.key]*y.size)/(d.size+y.size):i.mode==="dendrogram"?l=v(m.value,d.value):l=v(m.value[0],d.value[0]),a[d.key][m.key]=a[m.key][d.key]=l}for(var b=0;b<e.length;b++){var w=e[b].key;if(n[w]===d.key||n[w]===y.key){for(var T=w,E=0;E<e.length;E++){var x=e[E].key;a[w][x]<a[w][T]&&(T=x)}n[w]=T}e[b].index=b}return d.key=y.key=d.index=y.index=null,!0},Ga=function t(e,r,a){e&&(e.value?r.push(e.value):(e.left&&t(e.left,r),e.right&&t(e.right,r)))},tc=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()},rc=function t(e,r,a){if(!e)return[];var n=[],i=[],s=[];return r===0?(e.left&&Ga(e.left,n),e.right&&Ga(e.right,i),s=n.concat(i),[a.collection(s)]):r===1?e.value?[a.collection(e.value)]:(e.left&&Ga(e.left,n),e.right&&Ga(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))},cs=function(e){for(var r=this.cy(),a=this.nodes(),n=ec(e),i=n.attributes,s=function(b,w){return Dn(n.distance,i.length,function(T){return i[T](b)},function(T){return i[T](w)},b,w)},o=[],l=[],u=[],v=[],f=0;f<a.length;f++){var c={value:n.mode==="dendrogram"?a[f]:[a[f]],key:f,index:f};o[f]=c,v[f]=c,l[f]=[],u[f]=0}for(var h=0;h<o.length;h++)for(var d=0;d<=h;d++){var y=void 0;n.mode==="dendrogram"?y=h===d?1/0:s(o[h].value,o[d].value):y=h===d?1/0:s(o[h].value[0],o[d].value[0]),l[h][d]=y,l[d][h]=y,y<l[h][u[h]]&&(u[h]=d)}for(var p=fs(o,v,l,u,n);p;)p=fs(o,v,l,u,n);var g;return n.mode==="dendrogram"?(g=rc(o[0],n.dendrogramDepth,r),n.addDendrogram&&tc(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},ac={hierarchicalClustering:cs,hca:cs},nc=je({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),ic=function(e){var r=e.damping,a=e.preference;.5<=r&&r<1||qe("Damping must range on [0.5, 1). Got: ".concat(r));var n=["median","mean","min","max"];return n.some(function(i){return i===a})||re(a)||qe("Preference must be one of [".concat(n.map(function(i){return"'".concat(i,"'")}).join(", "),"] or a number. Got: ").concat(a)),nc(e)},sc=function(e,r,a,n){var i=function(o,l){return n[l](o)};return-Dn(e,n.length,function(s){return i(r,s)},function(s){return i(a,s)},r,a)},oc=function(e,r){var a=null;return r==="median"?a=nf(e):r==="mean"?a=af(e):r==="min"?a=tf(e):r==="max"?a=rf(e):a=r,a},uc=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},ds=function(e,r,a){for(var n=[],i=0;i<e;i++){for(var s=-1,o=-1/0,l=0;l<a.length;l++){var u=a[l];r[i*e+u]>o&&(s=u,o=r[i*e+u])}s>0&&n.push(s)}for(var v=0;v<a.length;v++)n[a[v]]=a[v];return n},lc=function(e,r,a){for(var n=ds(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 l=-1,u=-1/0,v=0;v<s.length;v++){for(var f=0,c=0;c<s.length;c++)f+=r[s[c]*e+s[v]];f>u&&(l=v,u=f)}a[i]=s[l]}return n=ds(e,r,a),n},hs=function(e){for(var r=this.cy(),a=this.nodes(),n=ic(e),i={},s=0;s<a.length;s++)i[a[s].id()]=s;var o,l,u,v,f,c;o=a.length,l=o*o,u=new Array(l);for(var h=0;h<l;h++)u[h]=-1/0;for(var d=0;d<o;d++)for(var y=0;y<o;y++)d!==y&&(u[d*o+y]=sc(n.distance,a[d],a[y],n.attributes));v=oc(u,n.preference);for(var p=0;p<o;p++)u[p*o+p]=v;f=new Array(l);for(var g=0;g<l;g++)f[g]=0;c=new Array(l);for(var m=0;m<l;m++)c[m]=0;for(var b=new Array(o),w=new Array(o),T=new Array(o),E=0;E<o;E++)b[E]=0,w[E]=0,T[E]=0;for(var x=new Array(o*n.minIterations),S=0;S<x.length;S++)x[S]=0;var C;for(C=0;C<n.maxIterations;C++){for(var P=0;P<o;P++){for(var B=-1/0,k=-1/0,R=-1,A=0,I=0;I<o;I++)b[I]=f[P*o+I],A=c[P*o+I]+u[P*o+I],A>=B?(k=B,B=A,R=I):A>k&&(k=A);for(var L=0;L<o;L++)f[P*o+L]=(1-n.damping)*(u[P*o+L]-B)+n.damping*b[L];f[P*o+R]=(1-n.damping)*(u[P*o+R]-k)+n.damping*b[R]}for(var M=0;M<o;M++){for(var O=0,q=0;q<o;q++)b[q]=c[q*o+M],w[q]=Math.max(0,f[q*o+M]),O+=w[q];O-=w[M],w[M]=f[M*o+M],O+=w[M];for(var W=0;W<o;W++)c[W*o+M]=(1-n.damping)*Math.min(0,O-w[W])+n.damping*b[W];c[M*o+M]=(1-n.damping)*(O-w[M])+n.damping*b[M]}for(var V=0,$=0;$<o;$++){var X=c[$*o+$]+f[$*o+$]>0?1:0;x[C%n.minIterations*o+$]=X,V+=X}if(V>0&&(C>=n.minIterations-1||C==n.maxIterations-1)){for(var _=0,Q=0;Q<o;Q++){T[Q]=0;for(var Z=0;Z<n.minIterations;Z++)T[Q]+=x[Z*o+Q];(T[Q]===0||T[Q]===n.minIterations)&&_++}if(_===o)break}}for(var j=uc(o,f,c),te=lc(o,u,j),G={},N=0;N<j.length;N++)G[j[N]]=[];for(var H=0;H<a.length;H++){var ee=i[a[H].id()],ie=te[ee];ie!=null&&G[ie].push(a[H])}for(var ue=new Array(j.length),Ce=0;Ce<j.length;Ce++)ue[Ce]=r.collection(G[j[Ce]]);return ue},vc={affinityPropagation:hs,ap:hs},fc=je({root:void 0,directed:!1}),cc={hierholzer:function(e){if(!ke(e)){var r=arguments;e={root:r[0],directed:r[1]}}var a=fc(e),n=a.root,i=a.directed,s=this,o=!1,l,u,v;n&&(v=fe(n)?this.filter(n)[0].id():n[0].id());var f={},c={};i?s.forEach(function(m){var b=m.id();if(m.isNode()){var w=m.indegree(!0),T=m.outdegree(!0),E=w-T,x=T-w;E==1?l?o=!0:l=b:x==1?u?o=!0:u=b:(x>1||E>1)&&(o=!0),f[b]=[],m.outgoers().forEach(function(S){S.isEdge()&&f[b].push(S.id())})}else c[b]=[void 0,m.target().id()]}):s.forEach(function(m){var b=m.id();if(m.isNode()){var w=m.degree(!0);w%2&&(l?u?o=!0:u=b:l=b),f[b]=[],m.connectedEdges().forEach(function(T){return f[b].push(T.id())})}else c[b]=[m.source().id(),m.target().id()]});var h={found:!1,trail:void 0};if(o)return h;if(u&&l)if(i){if(v&&u!=v)return h;v=u}else{if(v&&u!=v&&l!=v)return h;v||(v=u)}else v||(v=s[0].id());var d=function(b){for(var w=b,T=[b],E,x,S;f[w].length;)E=f[w].shift(),x=c[E][0],S=c[E][1],w!=S?(f[S]=f[S].filter(function(C){return C!=E}),w=S):!i&&w!=x&&(f[x]=f[x].filter(function(C){return C!=E}),w=x),T.unshift(E),T.unshift(w);return T},y=[],p=[];for(p=d(v);p.length!=1;)f[p[0]].length==0?(y.unshift(s.getElementById(p.shift())),y.unshift(s.getElementById(p.shift()))):p=d(p.shift()).concat(p);y.unshift(s.getElementById(p.shift()));for(var g in f)if(f[g].length)return h;return h.found=!0,h.trail=this.spawn(y,!0),h}},Wa=function(){var e=this,r={},a=0,n=0,i=[],s=[],o={},l=function(c,h){for(var d=s.length-1,y=[],p=e.spawn();s[d].x!=c||s[d].y!=h;)y.push(s.pop().edge),d--;y.push(s.pop().edge),y.forEach(function(g){var m=g.connectedNodes().intersection(e);p.merge(g),m.forEach(function(b){var w=b.id(),T=b.connectedEdges().intersection(e);p.merge(b),r[w].cutVertex?p.merge(T.filter(function(E){return E.isLoop()})):p.merge(T)})}),i.push(p)},u=function f(c,h,d){c===d&&(n+=1),r[h]={id:a,low:a++,cutVertex:!1};var y=e.getElementById(h).connectedEdges().intersection(e);if(y.size()===0)i.push(e.spawn(e.getElementById(h)));else{var p,g,m,b;y.forEach(function(w){p=w.source().id(),g=w.target().id(),m=p===h?g:p,m!==d&&(b=w.id(),o[b]||(o[b]=!0,s.push({x:h,y:m,edge:w})),m in r?r[h].low=Math.min(r[h].low,r[m].id):(f(c,m,h),r[h].low=Math.min(r[h].low,r[m].low),r[h].id<=r[m].low&&(r[h].cutVertex=!0,l(h,m))))})}};e.forEach(function(f){if(f.isNode()){var c=f.id();c in r||(n=0,u(c,c),r[c].cutVertex=n>1)}});var v=Object.keys(r).filter(function(f){return r[f].cutVertex}).map(function(f){return e.getElementById(f)});return{cut:e.spawn(v),components:i}},dc={hopcroftTarjanBiconnected:Wa,htbc:Wa,htb:Wa,hopcroftTarjanBiconnectedComponents:Wa},Ha=function(){var e=this,r={},a=0,n=[],i=[],s=e.spawn(e),o=function l(u){i.push(u),r[u]={index:a,low:a++,explored:!1};var v=e.getElementById(u).connectedEdges().intersection(e);if(v.forEach(function(y){var p=y.target().id();p!==u&&(p in r||l(p),r[p].explored||(r[u].low=Math.min(r[u].low,r[p].low)))}),r[u].index===r[u].low){for(var f=e.spawn();;){var c=i.pop();if(f.merge(e.getElementById(c)),r[c].low=r[u].index,r[c].explored=!0,c===u)break}var h=f.edgesWith(f),d=f.merge(h);n.push(d),s=s.difference(d)}};return e.forEach(function(l){if(l.isNode()){var u=l.id();u in r||o(u)}}),{cut:s,components:n}},hc={tarjanStronglyConnected:Ha,tsc:Ha,tscc:Ha,tarjanStronglyConnectedComponents:Ha},Wo={};[wa,Gv,Wv,Uv,Yv,Zv,jv,Sf,Or,Nr,ii,Ff,Qf,ac,vc,cc,dc,hc].forEach(function(t){de(Wo,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 Ho=0,Uo=1,Xo=2,Ut=function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Ho,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))};Ut.prototype={fulfill:function(e){return gs(this,Uo,"fulfillValue",e)},reject:function(e){return gs(this,Xo,"rejectReason",e)},then:function(e,r){var a=this,n=new Ut;return a.onFulfilled.push(ys(e,n,"fulfill")),a.onRejected.push(ys(r,n,"reject")),Yo(a),n.proxy}};var gs=function(e,r,a,n){return e.state===Ho&&(e.state=r,e[a]=n,Yo(e)),e},Yo=function(e){e.state===Uo?ps(e,"onFulfilled",e.fulfillValue):e.state===Xo&&ps(e,"onRejected",e.rejectReason)},ps=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)}},ys=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}gc(r,i)}}},gc=function t(e,r){if(e===r||e.proxy===r){e.reject(new TypeError("cannot resolve promise with itself"));return}var a;if(Ue(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,function(i){n||(n=!0,i===r?e.reject(new TypeError("circular thenable chain")):t(e,i))},function(i){n||(n=!0,e.reject(i))})}catch(i){n||e.reject(i)}return}e.fulfill(r)};Ut.all=function(t){return new Ut(function(e,r){for(var a=new Array(t.length),n=0,i=function(l,u){a[l]=u,n++,n===t.length&&e(a)},s=0;s<t.length;s++)(function(o){var l=t[o],u=l!=null&&l.then!=null;if(u)l.then(function(f){i(o,f)},function(f){r(f)});else{var v=l;i(o,v)}})(s)})};Ut.resolve=function(t){return new Ut(function(e,r){e(t)})};Ut.reject=function(t){return new Ut(function(e,r){r(t)})};var Wr=typeof Promise<"u"?Promise:Ut,si=function(e,r,a){var n=wi(e),i=!n,s=this._private=de({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&&$e(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 l=e.pan();s.startPan={x:l.x,y:l.y},s.startZoom=e.zoom()}this.length=1,this[0]=this},wr=si.prototype;de(wr,{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),xt(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(u,v){var f=e[u];f!=null&&(e[u]=e[v],e[v]=f)};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 Wr(function(n,i){a.push(function(){n()})})}});wr.complete=wr.completed;wr.run=wr.play;wr.running=wr.playing;var pc={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}},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}},delay:function(){return function(r,a){var n=this._private.cy||this;return n.styleEnabled()?this.animate({delay:r,duration:r,complete:a}):this}},delayAnimation:function(){return function(r,a){var n=this._private.cy||this;return n.styleEnabled()?this.animation({delay:r,duration:r,complete:a}):this}},animation:function(){return function(r,a){var n=this,i=n.length!==void 0,s=i?n:[n],o=this._private.cy||this,l=!i,u=!l;if(!o.styleEnabled())return this;var v=o.style();r=de({},r,a);var f=Object.keys(r).length===0;if(f)return new si(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(u&&(r.style=v.getPropsList(r.style||r.css),r.css=void 0),u&&r.renderedPosition!=null){var c=r.renderedPosition,h=o.pan(),d=o.zoom();r.position=Mo(c,d,h)}if(l&&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(l&&g!=null){var m=o.getCenterPan(g.eles,r.zoom);m!=null&&(r.pan=m)}if(l&&r.fit!=null){var b=r.fit,w=o.getFitViewport(b.eles||b.boundingBox,b.padding);w!=null&&(r.pan=w.pan,r.zoom=w.zoom)}if(l&&ke(r.zoom)){var T=o.getZoomedViewport(r.zoom);T!=null?(T.zoomed&&(r.zoom=T.zoom),T.panned&&(r.pan=T.pan)):r.zoom=null}return new si(s[0],r)}},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=de({},r,a));for(var l=0;l<s.length;l++){var u=s[l],v=u.animated()&&(r.queue===void 0||r.queue),f=u.animation(r,v?{queue:!0}:void 0);f.play()}return this}},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 l=0;l<s.length;l++){for(var u=s[l],v=u._private,f=v.animation.current,c=0;c<f.length;c++){var h=f[c],d=h._private;a&&(d.duration=0)}r&&(v.animation.queue=[]),a||(v.animation.current=[])}return o.notify("draw"),this}}},yc=Array.isArray,kn=yc,mc=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bc=/^\w*$/;function wc(t,e){if(kn(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||Aa(t)?!0:bc.test(t)||!mc.test(t)||e!=null&&t in Object(e)}var xc=wc,Ec="[object AsyncFunction]",Tc="[object Function]",Cc="[object GeneratorFunction]",Sc="[object Proxy]";function Dc(t){if(!yr(t))return!1;var e=Co(t);return e==Tc||e==Cc||e==Ec||e==Sc}var kc=Dc,Pc=Tn["__core-js_shared__"],Un=Pc,ms=function(){var t=/[^.]+$/.exec(Un&&Un.keys&&Un.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Bc(t){return!!ms&&ms in t}var Ac=Bc,Rc=Function.prototype,Lc=Rc.toString;function Mc(t){if(t!=null){try{return Lc.call(t)}catch{}try{return t+""}catch{}}return""}var Ic=Mc,Oc=/[\\^$.*+?()[\]{}|]/g,Nc=/^\[object .+?Constructor\]$/,zc=Function.prototype,Fc=Object.prototype,Vc=zc.toString,qc=Fc.hasOwnProperty,$c=RegExp("^"+Vc.call(qc).replace(Oc,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Kc(t){if(!yr(t)||Ac(t))return!1;var e=kc(t)?$c:Nc;return e.test(Ic(t))}var Gc=Kc;function Wc(t,e){return t==null?void 0:t[e]}var Hc=Wc;function Uc(t,e){var r=Hc(t,e);return Gc(r)?r:void 0}var Bi=Uc,Xc=Bi(Object,"create"),Ta=Xc;function Yc(){this.__data__=Ta?Ta(null):{},this.size=0}var _c=Yc;function Zc(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Qc=Zc,Jc="__lodash_hash_undefined__",jc=Object.prototype,ed=jc.hasOwnProperty;function td(t){var e=this.__data__;if(Ta){var r=e[t];return r===Jc?void 0:r}return ed.call(e,t)?e[t]:void 0}var rd=td,ad=Object.prototype,nd=ad.hasOwnProperty;function id(t){var e=this.__data__;return Ta?e[t]!==void 0:nd.call(e,t)}var sd=id,od="__lodash_hash_undefined__";function ud(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Ta&&e===void 0?od:e,this}var ld=ud;function Hr(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])}}Hr.prototype.clear=_c;Hr.prototype.delete=Qc;Hr.prototype.get=rd;Hr.prototype.has=sd;Hr.prototype.set=ld;var bs=Hr;function vd(){this.__data__=[],this.size=0}var fd=vd;function cd(t,e){return t===e||t!==t&&e!==e}var _o=cd;function dd(t,e){for(var r=t.length;r--;)if(_o(t[r][0],e))return r;return-1}var Pn=dd,hd=Array.prototype,gd=hd.splice;function pd(t){var e=this.__data__,r=Pn(e,t);if(r<0)return!1;var a=e.length-1;return r==a?e.pop():gd.call(e,r,1),--this.size,!0}var yd=pd;function md(t){var e=this.__data__,r=Pn(e,t);return r<0?void 0:e[r][1]}var bd=md;function wd(t){return Pn(this.__data__,t)>-1}var xd=wd;function Ed(t,e){var r=this.__data__,a=Pn(r,t);return a<0?(++this.size,r.push([t,e])):r[a][1]=e,this}var Td=Ed;function Ur(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])}}Ur.prototype.clear=fd;Ur.prototype.delete=yd;Ur.prototype.get=bd;Ur.prototype.has=xd;Ur.prototype.set=Td;var Cd=Ur,Sd=Bi(Tn,"Map"),Dd=Sd;function kd(){this.size=0,this.__data__={hash:new bs,map:new(Dd||Cd),string:new bs}}var Pd=kd;function Bd(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var Ad=Bd;function Rd(t,e){var r=t.__data__;return Ad(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Bn=Rd;function Ld(t){var e=Bn(this,t).delete(t);return this.size-=e?1:0,e}var Md=Ld;function Id(t){return Bn(this,t).get(t)}var Od=Id;function Nd(t){return Bn(this,t).has(t)}var zd=Nd;function Fd(t,e){var r=Bn(this,t),a=r.size;return r.set(t,e),this.size+=r.size==a?0:1,this}var Vd=Fd;function Xr(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])}}Xr.prototype.clear=Pd;Xr.prototype.delete=Md;Xr.prototype.get=Od;Xr.prototype.has=zd;Xr.prototype.set=Vd;var Zo=Xr,qd="Expected a function";function Ai(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(qd);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(Ai.Cache||Zo),r}Ai.Cache=Zo;var $d=Ai,Kd=500;function Gd(t){var e=$d(t,function(a){return r.size===Kd&&r.clear(),a}),r=e.cache;return e}var Wd=Gd,Hd=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ud=/\\(\\)?/g,Xd=Wd(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Hd,function(r,a,n,i){e.push(n?i.replace(Ud,"$1"):a||r)}),e}),Qo=Xd;function Yd(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 Jo=Yd,ws=Fr?Fr.prototype:void 0,xs=ws?ws.toString:void 0;function jo(t){if(typeof t=="string")return t;if(kn(t))return Jo(t,jo)+"";if(Aa(t))return xs?xs.call(t):"";var e=t+"";return e=="0"&&1/t==-1/0?"-0":e}var _d=jo;function Zd(t){return t==null?"":_d(t)}var eu=Zd;function Qd(t,e){return kn(t)?t:xc(t,e)?[t]:Qo(eu(t))}var tu=Qd;function Jd(t){if(typeof t=="string"||Aa(t))return t;var e=t+"";return e=="0"&&1/t==-1/0?"-0":e}var Ri=Jd;function jd(t,e){e=tu(e,t);for(var r=0,a=e.length;t!=null&&r<a;)t=t[Ri(e[r++])];return r&&r==a?t:void 0}var eh=jd;function th(t,e,r){var a=t==null?void 0:eh(t,e);return a===void 0?r:a}var rh=th,ah=function(){try{var t=Bi(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Es=ah;function nh(t,e,r){e=="__proto__"&&Es?Es(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var ih=nh,sh=Object.prototype,oh=sh.hasOwnProperty;function uh(t,e,r){var a=t[e];(!(oh.call(t,e)&&_o(a,r))||r===void 0&&!(e in t))&&ih(t,e,r)}var lh=uh,vh=9007199254740991,fh=/^(?:0|[1-9]\d*)$/;function ch(t,e){var r=typeof t;return e=e??vh,!!e&&(r=="number"||r!="symbol"&&fh.test(t))&&t>-1&&t%1==0&&t<e}var dh=ch;function hh(t,e,r,a){if(!yr(t))return t;e=tu(e,t);for(var n=-1,i=e.length,s=i-1,o=t;o!=null&&++n<i;){var l=Ri(e[n]),u=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return t;if(n!=s){var v=o[l];u=a?a(v,l,o):void 0,u===void 0&&(u=yr(v)?v:dh(e[n+1])?[]:{})}lh(o,l,u),o=o[l]}return t}var gh=hh;function ph(t,e,r){return t==null?t:gh(t,e,r)}var yh=ph;function mh(t,e){var r=-1,a=t.length;for(e||(e=Array(a));++r<a;)e[r]=t[r];return e}var bh=mh;function wh(t){return kn(t)?Jo(t,Ri):Aa(t)?[t]:bh(Qo(eu(t)))}var xh=wh,Eh={data:function(e){var r={field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(n){},beforeSet:function(n,i){},onSet:function(n){},canSet:function(n){return!0}};return e=de({},r,e),function(n,i){var s=e,o=this,l=o.length!==void 0,u=l?o:[o],v=l?o[0]:o;if(fe(n)){var f=n.indexOf(".")!==-1,c=f&&xh(n);if(s.allowGetting&&i===void 0){var h;return v&&(s.beforeGet(v),c&&v._private[s.field][n]===void 0?h=rh(v._private[s.field],c):h=v._private[s.field][n]),h}else if(s.allowSetting&&i!==void 0){var d=!s.immutableKeys[n];if(d){var y=co({},n,i);s.beforeSet(o,y);for(var p=0,g=u.length;p<g;p++){var m=u[p];s.canSet(m)&&(c&&v._private[s.field][n]===void 0?yh(m._private[s.field],c,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&&ke(n)){var b=n,w,T,E=Object.keys(b);s.beforeSet(o,b);for(var x=0;x<E.length;x++){w=E[x],T=b[w];var S=!s.immutableKeys[w];if(S)for(var C=0;C<u.length;C++){var P=u[C];s.canSet(P)&&(P._private[s.field][w]=T)}}s.updateStyle&&o.updateStyle(),s.onSet(o),s.settingTriggersEvent&&o[s.triggerFnName](s.settingEvent)}else if(s.allowBinding&&$e(n)){var B=n;o.on(s.bindingEvent,B)}else if(s.allowGetting&&n===void 0){var k;return v&&(s.beforeGet(v),k=v._private[s.field]),k}return o}},removeData:function(e){var r={field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}};return e=de({},r,e),function(n){var i=e,s=this,o=s.length!==void 0,l=o?s:[s];if(fe(n)){for(var u=n.split(/\s+/),v=u.length,f=0;f<v;f++){var c=u[f];if(!tr(c)){var h=!i.immutableKeys[c];if(h)for(var d=0,y=l.length;d<y;d++)l[d]._private[i.field][c]=void 0}}i.triggerEvent&&s[i.triggerFnName](i.event)}else if(n===void 0){for(var p=0,g=l.length;p<g;p++)for(var m=l[p]._private[i.field],b=Object.keys(m),w=0;w<b.length;w++){var T=b[w],E=!i.immutableKeys[T];E&&(m[T]=void 0)}i.triggerEvent&&s[i.triggerFnName](i.event)}return s}}},Th={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 Wr(function(o,l){var u=function(h){i.off.apply(i,f),o(h)},v=s.concat([u]),f=v.concat([]);i.on.apply(i,v)})}}},Be={};[pc,Eh,Th].forEach(function(t){de(Be,t)});var Ch={animate:Be.animate(),animation:Be.animation(),animated:Be.animated(),clearQueue:Be.clearQueue(),delay:Be.delay(),delayAnimation:Be.delayAnimation(),stop:Be.stop()},rn={classes:function(e){var r=this;if(e===void 0){var a=[];return r[0]._private.classes.forEach(function(d){return a.push(d)}),a}else Ie(e)||(e=(e||"").match(/\S+/g)||[]);for(var n=[],i=new Gr(e),s=0;s<r.length;s++){for(var o=r[s],l=o._private,u=l.classes,v=!1,f=0;f<e.length;f++){var c=e[f],h=u.has(c);if(!h){v=!0;break}}v||(v=u.size!==e.length),v&&(l.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){Ie(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 l=a[s],u=l._private.classes,v=!1,f=0;f<e.length;f++){var c=e[f],h=u.has(c),d=!1;r||n&&!h?(u.add(c),d=!0):(!r||n&&h)&&(u.delete(c),d=!0),!v&&d&&(i.push(l),v=!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}};rn.className=rn.classNames=rn.classes;var De={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:He,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};De.variable="(?:[\\w-.]|(?:\\\\"+De.metaChar+"))+";De.className="(?:[\\w-]|(?:\\\\"+De.metaChar+"))+";De.value=De.string+"|"+De.number;De.id=De.variable;(function(){var t,e,r;for(t=De.comparatorOp.split("|"),r=0;r<t.length;r++)e=t[r],De.comparatorOp+="|@"+e;for(t=De.comparatorOp.split("|"),r=0;r<t.length;r++)e=t[r],!(e.indexOf("!")>=0)&&e!=="="&&(De.comparatorOp+="|\\!"+e)})();var Me=function(){return{checks:[]}},se={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},oi=[{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 Fl(t.selector,e.selector)}),Sh=function(){for(var t={},e,r=0;r<oi.length;r++)e=oi[r],t[e.selector]=e.matches;return t}(),Dh=function(e,r){return Sh[e](r)},kh="("+oi.map(function(t){return t.selector}).join("|")+")",Sr=function(e){return e.replace(new RegExp("\\\\("+De.metaChar+")","g"),function(r,a){return a})},Zt=function(e,r,a){e[e.length-1]=a},ui=[{name:"group",query:!0,regex:"("+De.group+")",populate:function(e,r,a){var n=Je(a,1),i=n[0];r.checks.push({type:se.GROUP,value:i==="*"?i:i+"s"})}},{name:"state",query:!0,regex:kh,populate:function(e,r,a){var n=Je(a,1),i=n[0];r.checks.push({type:se.STATE,value:i})}},{name:"id",query:!0,regex:"\\#("+De.id+")",populate:function(e,r,a){var n=Je(a,1),i=n[0];r.checks.push({type:se.ID,value:Sr(i)})}},{name:"className",query:!0,regex:"\\.("+De.className+")",populate:function(e,r,a){var n=Je(a,1),i=n[0];r.checks.push({type:se.CLASS,value:Sr(i)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+De.variable+")\\s*\\]",populate:function(e,r,a){var n=Je(a,1),i=n[0];r.checks.push({type:se.DATA_EXIST,field:Sr(i)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+De.variable+")\\s*("+De.comparatorOp+")\\s*("+De.value+")\\s*\\]",populate:function(e,r,a){var n=Je(a,3),i=n[0],s=n[1],o=n[2],l=new RegExp("^"+De.string+"$").exec(o)!=null;l?o=o.substring(1,o.length-1):o=parseFloat(o),r.checks.push({type:se.DATA_COMPARE,field:Sr(i),operator:s,value:o})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+De.boolOp+")\\s*("+De.variable+")\\s*\\]",populate:function(e,r,a){var n=Je(a,2),i=n[0],s=n[1];r.checks.push({type:se.DATA_BOOL,field:Sr(s),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+De.meta+")\\s*("+De.comparatorOp+")\\s*("+De.number+")\\s*\\]\\]",populate:function(e,r,a){var n=Je(a,3),i=n[0],s=n[1],o=n[2];r.checks.push({type:se.META_COMPARE,field:Sr(i),operator:s,value:parseFloat(o)})}},{name:"nextQuery",separator:!0,regex:De.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++]=Me();return o}},{name:"directedEdge",separator:!0,regex:De.directedEdge,populate:function(e,r){if(e.currentSubject==null){var a=Me(),n=r,i=Me();return a.checks.push({type:se.DIRECTED_EDGE,source:n,target:i}),Zt(e,r,a),e.edgeCount++,i}else{var s=Me(),o=r,l=Me();return s.checks.push({type:se.NODE_SOURCE,source:o,target:l}),Zt(e,r,s),e.edgeCount++,l}}},{name:"undirectedEdge",separator:!0,regex:De.undirectedEdge,populate:function(e,r){if(e.currentSubject==null){var a=Me(),n=r,i=Me();return a.checks.push({type:se.UNDIRECTED_EDGE,nodes:[n,i]}),Zt(e,r,a),e.edgeCount++,i}else{var s=Me(),o=r,l=Me();return s.checks.push({type:se.NODE_NEIGHBOR,node:o,neighbor:l}),Zt(e,r,s),l}}},{name:"child",separator:!0,regex:De.child,populate:function(e,r){if(e.currentSubject==null){var a=Me(),n=Me(),i=e[e.length-1];return a.checks.push({type:se.CHILD,parent:i,child:n}),Zt(e,r,a),e.compoundCount++,n}else if(e.currentSubject===r){var s=Me(),o=e[e.length-1],l=Me(),u=Me(),v=Me(),f=Me();return s.checks.push({type:se.COMPOUND_SPLIT,left:o,right:l,subject:u}),u.checks=r.checks,r.checks=[{type:se.TRUE}],f.checks.push({type:se.TRUE}),l.checks.push({type:se.PARENT,parent:f,child:v}),Zt(e,o,s),e.currentSubject=u,e.compoundCount++,v}else{var c=Me(),h=Me(),d=[{type:se.PARENT,parent:c,child:h}];return c.checks=r.checks,r.checks=d,e.compoundCount++,h}}},{name:"descendant",separator:!0,regex:De.descendant,populate:function(e,r){if(e.currentSubject==null){var a=Me(),n=Me(),i=e[e.length-1];return a.checks.push({type:se.DESCENDANT,ancestor:i,descendant:n}),Zt(e,r,a),e.compoundCount++,n}else if(e.currentSubject===r){var s=Me(),o=e[e.length-1],l=Me(),u=Me(),v=Me(),f=Me();return s.checks.push({type:se.COMPOUND_SPLIT,left:o,right:l,subject:u}),u.checks=r.checks,r.checks=[{type:se.TRUE}],f.checks.push({type:se.TRUE}),l.checks.push({type:se.ANCESTOR,ancestor:f,descendant:v}),Zt(e,o,s),e.currentSubject=u,e.compoundCount++,v}else{var c=Me(),h=Me(),d=[{type:se.ANCESTOR,ancestor:c,descendant:h}];return c.checks=r.checks,r.checks=d,e.compoundCount++,h}}},{name:"subject",modifier:!0,regex:De.subject,populate:function(e,r){if(e.currentSubject!=null&&e.currentSubject!==r)return Ae("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===se.DIRECTED_EDGE?n.type=se.NODE_TARGET:i===se.UNDIRECTED_EDGE&&(n.type=se.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];ui.forEach(function(t){return t.regexObj=new RegExp("^"+t.regex)});var Ph=function(e){for(var r,a,n,i=0;i<ui.length;i++){var s=ui[i],o=s.name,l=e.match(s.regexObj);if(l!=null){a=l,r=s,n=o;var u=l[0];e=e.substring(u.length);break}}return{expr:r,match:a,name:n,remaining:e}},Bh=function(e){var r=e.match(/^\s+/);if(r){var a=r[0];e=e.substring(a.length)}return e},Ah=function(e){var r=this,a=r.inputText=e,n=r[0]=Me();for(r.length=1,a=Bh(a);;){var i=Ph(a);if(i.expr==null)return Ae("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 l=r[r.length-1];r.currentSubject!=null&&(l.subject=r.currentSubject),l.edgeCount=r.edgeCount,l.compoundCount=r.compoundCount;for(var u=0;u<r.length;u++){var v=r[u];if(v.compoundCount>0&&v.edgeCount>0)return Ae("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(v.edgeCount>1)return Ae("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;v.edgeCount===1&&Ae("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},Rh=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(v){return v??""},r=function(v){return fe(v)?'"'+v+'"':e(v)},a=function(v){return" "+v+" "},n=function(v,f){var c=v.type,h=v.value;switch(c){case se.GROUP:{var d=e(h);return d.substring(0,d.length-1)}case se.DATA_COMPARE:{var y=v.field,p=v.operator;return"["+y+a(e(p))+r(h)+"]"}case se.DATA_BOOL:{var g=v.operator,m=v.field;return"["+e(g)+m+"]"}case se.DATA_EXIST:{var b=v.field;return"["+b+"]"}case se.META_COMPARE:{var w=v.operator,T=v.field;return"[["+T+a(e(w))+r(h)+"]]"}case se.STATE:return h;case se.ID:return"#"+h;case se.CLASS:return"."+h;case se.PARENT:case se.CHILD:return i(v.parent,f)+a(">")+i(v.child,f);case se.ANCESTOR:case se.DESCENDANT:return i(v.ancestor,f)+" "+i(v.descendant,f);case se.COMPOUND_SPLIT:{var E=i(v.left,f),x=i(v.subject,f),S=i(v.right,f);return E+(E.length>0?" ":"")+x+S}case se.TRUE:return""}},i=function(v,f){return v.checks.reduce(function(c,h,d){return c+(f===v&&d===0?"$":"")+n(h,f)},"")},s="",o=0;o<this.length;o++){var l=this[o];s+=i(l,l.subject),this.length>1&&o<this.length-1&&(s+=", ")}return this.toStringCache=s,s},Lh={parse:Ah,toString:Rh},ru=function(e,r,a){var n,i=fe(e),s=re(e),o=fe(a),l,u,v=!1,f=!1,c=!1;switch(r.indexOf("!")>=0&&(r=r.replace("!",""),f=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),v=!0),(i||o||v)&&(l=!i&&!s?"":""+e,u=""+a),v&&(e=l=l.toLowerCase(),a=u=u.toLowerCase()),r){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===0;break;case"=":n=e===a;break;case">":c=!0,n=e>a;break;case">=":c=!0,n=e>=a;break;case"<":c=!0,n=e<a;break;case"<=":c=!0,n=e<=a;break;default:n=!1;break}return f&&(e!=null||!c)&&(n=!n),n},Mh=function(e,r){switch(r){case"?":return!!e;case"!":return!e;case"^":return e===void 0}},Ih=function(e){return e!==void 0},Li=function(e,r){return e.data(r)},Oh=function(e,r){return e[r]()},Ke=[],Fe=function(e,r){return e.checks.every(function(a){return Ke[a.type](a,r)})};Ke[se.GROUP]=function(t,e){var r=t.value;return r==="*"||r===e.group()};Ke[se.STATE]=function(t,e){var r=t.value;return Dh(r,e)};Ke[se.ID]=function(t,e){var r=t.value;return e.id()===r};Ke[se.CLASS]=function(t,e){var r=t.value;return e.hasClass(r)};Ke[se.META_COMPARE]=function(t,e){var r=t.field,a=t.operator,n=t.value;return ru(Oh(e,r),a,n)};Ke[se.DATA_COMPARE]=function(t,e){var r=t.field,a=t.operator,n=t.value;return ru(Li(e,r),a,n)};Ke[se.DATA_BOOL]=function(t,e){var r=t.field,a=t.operator;return Mh(Li(e,r),a)};Ke[se.DATA_EXIST]=function(t,e){var r=t.field;return t.operator,Ih(Li(e,r))};Ke[se.UNDIRECTED_EDGE]=function(t,e){var r=t.nodes[0],a=t.nodes[1],n=e.source(),i=e.target();return Fe(r,n)&&Fe(a,i)||Fe(a,n)&&Fe(r,i)};Ke[se.NODE_NEIGHBOR]=function(t,e){return Fe(t.node,e)&&e.neighborhood().some(function(r){return r.isNode()&&Fe(t.neighbor,r)})};Ke[se.DIRECTED_EDGE]=function(t,e){return Fe(t.source,e.source())&&Fe(t.target,e.target())};Ke[se.NODE_SOURCE]=function(t,e){return Fe(t.source,e)&&e.outgoers().some(function(r){return r.isNode()&&Fe(t.target,r)})};Ke[se.NODE_TARGET]=function(t,e){return Fe(t.target,e)&&e.incomers().some(function(r){return r.isNode()&&Fe(t.source,r)})};Ke[se.CHILD]=function(t,e){return Fe(t.child,e)&&Fe(t.parent,e.parent())};Ke[se.PARENT]=function(t,e){return Fe(t.parent,e)&&e.children().some(function(r){return Fe(t.child,r)})};Ke[se.DESCENDANT]=function(t,e){return Fe(t.descendant,e)&&e.ancestors().some(function(r){return Fe(t.ancestor,r)})};Ke[se.ANCESTOR]=function(t,e){return Fe(t.ancestor,e)&&e.descendants().some(function(r){return Fe(t.descendant,r)})};Ke[se.COMPOUND_SPLIT]=function(t,e){return Fe(t.subject,e)&&Fe(t.left,e)&&Fe(t.right,e)};Ke[se.TRUE]=function(){return!0};Ke[se.COLLECTION]=function(t,e){var r=t.value;return r.has(e)};Ke[se.FILTER]=function(t,e){var r=t.value;return r(e)};var Nh=function(e){var r=this;if(r.length===1&&r[0].checks.length===1&&r[0].checks[0].type===se.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(Fe(o,i))return!0}return!1};return r.text()==null&&(a=function(){return!0}),e.filter(a)},zh=function(e){for(var r=this,a=0;a<r.length;a++){var n=r[a];if(Fe(n,e))return!0}return!1},Fh={matches:zh,filter:Nh},nr=function(e){this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,e==null||fe(e)&&e.match(/^\s*$/)||(xt(e)?this.addQuery({checks:[{type:se.COLLECTION,value:e.collection()}]}):$e(e)?this.addQuery({checks:[{type:se.FILTER,value:e}]}):fe(e)?this.parse(e)||(this.invalid=!0):qe("A selector must be created from a string; found "))},ir=nr.prototype;[Lh,Fh].forEach(function(t){return de(ir,t)});ir.text=function(){return this.inputText};ir.size=function(){return this.length};ir.eq=function(t){return this[t]};ir.sameText=function(t){return!this.invalid&&!t.invalid&&this.text()===t.text()};ir.addQuery=function(t){this[this.length++]=t};ir.selector=ir.toString;var jt={allAre:function(e){var r=new nr(e);return this.every(function(a){return r.matches(a)})},is:function(e){var r=new nr(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())})}};jt.allAreNeighbours=jt.allAreNeighbors;jt.has=jt.contains;jt.equal=jt.equals=jt.same;var St=function(e,r){return function(n,i,s,o){var l=n,u=this,v;if(l==null?v="":xt(l)&&l.length===1&&(v=l.id()),u.length===1&&v){var f=u[0]._private,c=f.traversalCache=f.traversalCache||{},h=c[r]=c[r]||[],d=rr(v),y=h[d];return y||(h[d]=e.call(u,n,i,s,o))}else return e.call(u,n,i,s,o)}},$r={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:St(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 Mi(t,e,r,a){for(var n=[],i=new Gr,s=t.cy(),o=s.hasCompoundNodes(),l=0;l<t.length;l++){var u=t[l];r?n.push(u):o&&a(n,i,u)}for(;n.length>0;){var v=n.shift();e(v),i.add(v.id()),o&&a(n,i,v)}return t}function au(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)}}$r.forEachDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Mi(this,t,e,au)};function nu(t,e,r){if(r.isChild()){var a=r._private.parent;e.has(a.id())||t.push(a)}}$r.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Mi(this,t,e,nu)};function Vh(t,e,r){nu(t,e,r),au(t,e,r)}$r.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Mi(this,t,e,Vh)};$r.ancestors=$r.parents;var Ca,iu;Ca=iu={data:Be.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:Be.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Be.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Be.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Be.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Be.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}};Ca.attr=Ca.data;Ca.removeAttr=Ca.removeData;var qh=iu,An={};function Xn(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}}de(An,{degree:Xn(function(t,e){return e.source().same(e.target())?2:1}),indegree:Xn(function(t,e){return e.target().same(t)?1:0}),outdegree:Xn(function(t,e){return e.source().same(t)?1:0})});function Dr(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}}de(An,{minDegree:Dr("degree",function(t,e){return t<e}),maxDegree:Dr("degree",function(t,e){return t>e}),minIndegree:Dr("indegree",function(t,e){return t<e}),maxIndegree:Dr("indegree",function(t,e){return t>e}),minOutdegree:Dr("outdegree",function(t,e){return t<e}),maxOutdegree:Dr("outdegree",function(t,e){return t>e})});de(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 At,su,ou=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()}}},Ts={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){ou(e,r,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};At=su={position:Be.data(Ts),silentPosition:Be.data(de({},Ts,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,r){ou(e,r,!0)},onSet:function(e){e.dirtyCompoundBoundsCache()}})),positions:function(e,r){if(ke(e))r?this.silentPosition(e):this.position(e);else if($e(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(ke(e)?(n={x:re(e.x)?e.x:0,y:re(e.y)?e.y:0},a=r):fe(e)&&re(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 l=o.position(),u={x:l.x+n.x,y:l.y+n.y};a?o.silentPosition(u):o.position(u)}}i.endBatch()}return this},silentShift:function(e,r){return ke(e)?this.shift(e,!0):fe(e)&&re(r)&&this.shift(e,r,!0),this},renderedPosition:function(e,r){var a=this[0],n=this.cy(),i=n.zoom(),s=n.pan(),o=ke(e)?e:void 0,l=o!==void 0||r!==void 0&&fe(e);if(a&&a.isNode())if(l)for(var u=0;u<this.length;u++){var v=this[u];r!==void 0?v.position(e,(r-s[e])/i):o!==void 0&&v.position(Mo(o,i,s))}else{var f=a.position();return o=Sn(f,i,s),e===void 0?o:o[e]}else if(!l)return;return this},relativePosition:function(e,r){var a=this[0],n=this.cy(),i=ke(e)?e:void 0,s=i!==void 0||r!==void 0&&fe(e),o=n.hasCompoundNodes();if(a&&a.isNode())if(s)for(var l=0;l<this.length;l++){var u=this[l],v=o?u.parent():null,f=v&&v.length>0,c=f;f&&(v=v[0]);var h=c?v.position():{x:0,y:0};r!==void 0?u.position(e,r+h[e]):i!==void 0&&u.position({x:i.x+h.x,y:i.y+h.y})}else{var d=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:d.x-m.x,y:d.y-m.y},e===void 0?i:i[e]}else if(!s)return;return this}};At.modelPosition=At.point=At.position;At.modelPositions=At.points=At.positions;At.renderedPoint=At.renderedPosition;At.relativePoint=At.relativePosition;var $h=su,zr,lr;zr=lr={};lr.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,l=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:l,w:s-i,h:l-o}};lr.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)};lr.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,l=s.children(),u=s.pstyle("compound-sizing-wrt-labels").value==="include",v={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")}},f=l.boundingBox({includeLabels:u,includeOverlays:!1,useCache:!1}),c=o.position;(f.w===0||f.h===0)&&(f={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},f.x1=c.x-f.w/2,f.x2=c.x+f.w/2,f.y1=c.y-f.h/2,f.y2=c.y+f.h/2);function h(C,P,B){var k=0,R=0,A=P+B;return C>0&&A>0&&(k=P/A*C,R=B/A*C),{biasDiff:k,biasComplementDiff:R}}function d(C,P,B,k){if(B.units==="%")switch(k){case"width":return C>0?B.pfValue*C:0;case"height":return P>0?B.pfValue*P:0;case"average":return C>0&&P>0?B.pfValue*(C+P)/2:0;case"min":return C>0&&P>0?C>P?B.pfValue*P:B.pfValue*C:0;case"max":return C>0&&P>0?C>P?B.pfValue*C:B.pfValue*P:0;default:return 0}else return B.units==="px"?B.pfValue:0}var y=v.width.left.value;v.width.left.units==="px"&&v.width.val>0&&(y=y*100/v.width.val);var p=v.width.right.value;v.width.right.units==="px"&&v.width.val>0&&(p=p*100/v.width.val);var g=v.height.top.value;v.height.top.units==="px"&&v.height.val>0&&(g=g*100/v.height.val);var m=v.height.bottom.value;v.height.bottom.units==="px"&&v.height.val>0&&(m=m*100/v.height.val);var b=h(v.width.val-f.w,y,p),w=b.biasDiff,T=b.biasComplementDiff,E=h(v.height.val-f.h,g,m),x=E.biasDiff,S=E.biasComplementDiff;o.autoPadding=d(f.w,f.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(f.w,v.width.val),c.x=(-w+f.x1+f.x2+T)/2,o.autoHeight=Math.max(f.h,v.height.val),c.y=(-x+f.y1+f.y2+S)/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 Ct=function(e){return e===1/0||e===-1/0?0:e},Pt=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)},dr=function(e,r){return r==null?e:Pt(e,r.x1,r.y1,r.x2,r.y2)},aa=function(e,r,a){return Bt(e,r,a)},Ua=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,l,u;if(o!=="none"){a==="source"?(l=i.srcX,u=i.srcY):a==="target"?(l=i.tgtX,u=i.tgtY):(l=i.midX,u=i.midY);var v=n.arrowBounds=n.arrowBounds||{},f=v[a]=v[a]||{};f.x1=l-s,f.y1=u-s,f.x2=l+s,f.y2=u+s,f.w=f.x2-f.x1,f.h=f.y2-f.y1,en(f,1),Pt(e,f.x1,f.y1,f.x2,f.y2)}}},Yn=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 l=r.pstyle("text-halign"),u=r.pstyle("text-valign"),v=aa(s,"labelWidth",a),f=aa(s,"labelHeight",a),c=aa(s,"labelX",a),h=aa(s,"labelY",a),d=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,w=b/2,T=r.pstyle("text-background-padding").pfValue,E=2,x=f,S=v,C=S/2,P=x/2,B,k,R,A;if(p)B=c-C,k=c+C,R=h-P,A=h+P;else{switch(l.value){case"left":B=c-S,k=c;break;case"center":B=c-C,k=c+C;break;case"right":B=c,k=c+S;break}switch(u.value){case"top":R=h-x,A=h;break;case"center":R=h-P,A=h+P;break;case"bottom":R=h,A=h+x;break}}var I=d-Math.max(m,w)-T-E,L=d+Math.max(m,w)+T+E,M=y-Math.max(m,w)-T-E,O=y+Math.max(m,w)+T+E;B+=I,k+=L,R+=M,A+=O;var q=a||"main",W=i.labelBounds,V=W[q]=W[q]||{};V.x1=B,V.y1=R,V.x2=k,V.y2=A,V.w=k-B,V.h=A-R,V.leftPad=I,V.rightPad=L,V.topPad=M,V.botPad=O;var $=p&&g.strValue==="autorotate",X=g.pfValue!=null&&g.pfValue!==0;if($||X){var _=$?aa(i.rstyle,"labelAngle",a):g.pfValue,Q=Math.cos(_),Z=Math.sin(_),j=(B+k)/2,te=(R+A)/2;if(!p){switch(l.value){case"left":j=k;break;case"right":j=B;break}switch(u.value){case"top":te=A;break;case"bottom":te=R;break}}var G=function(Le,le){return Le=Le-j,le=le-te,{x:Le*Q-le*Z+j,y:Le*Z+le*Q+te}},N=G(B,R),H=G(B,A),ee=G(k,R),ie=G(k,A);B=Math.min(N.x,H.x,ee.x,ie.x),k=Math.max(N.x,H.x,ee.x,ie.x),R=Math.min(N.y,H.y,ee.y,ie.y),A=Math.max(N.y,H.y,ee.y,ie.y)}var ue=q+"Rot",Ce=W[ue]=W[ue]||{};Ce.x1=B,Ce.y1=R,Ce.x2=k,Ce.y2=A,Ce.w=k-B,Ce.h=A-R,Pt(e,B,R,k,A),Pt(i.labelBounds.all,B,R,k,A)}return e}},Kh=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,l=(e.w+o*2)/e.w,u=(e.h+o*2)/e.h,v=0,f=0;["diamond","pentagon","round-triangle"].includes(s)?(l=(e.w+o*2.4)/e.w,f=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?l=(e.w+o*2.4)/e.w:s==="star"?(l=(e.w+o*2.8)/e.w,u=(e.h+o*2.6)/e.h,f=-o/3.8):s==="triangle"?(l=(e.w+o*2.8)/e.w,u=(e.h+o*2.4)/e.h,f=-o/1.4):s==="vee"&&(l=(e.w+o*4.4)/e.w,u=(e.h+o*3.8)/e.h,f=-o*.5);var c=e.h*u-e.h,h=e.w*l-e.w;if(tn(e,[Math.ceil(c/2),Math.ceil(h/2)]),v!=0||f!==0){var d=ff(e,v,f);Oo(e,d)}}}},Gh=function(e,r){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=pt(),o=e._private,l=e.isNode(),u=e.isEdge(),v,f,c,h,d,y,p=o.rstyle,g=l&&n?e.pstyle("bounds-expansion").pfValue:[0],m=function(Re){return Re.pstyle("display").value!=="none"},b=!n||m(e)&&(!u||m(e.source())&&m(e.target()));if(b){var w=0,T=0;n&&r.includeOverlays&&(w=e.pstyle("overlay-opacity").value,w!==0&&(T=e.pstyle("overlay-padding").value));var E=0,x=0;n&&r.includeUnderlays&&(E=e.pstyle("underlay-opacity").value,E!==0&&(x=e.pstyle("underlay-padding").value));var S=Math.max(T,x),C=0,P=0;if(n&&(C=e.pstyle("width").pfValue,P=C/2),l&&r.includeNodes){var B=e.position();d=B.x,y=B.y;var k=e.outerWidth(),R=k/2,A=e.outerHeight(),I=A/2;v=d-R,f=d+R,c=y-I,h=y+I,Pt(s,v,c,f,h),n&&r.includeOutlines&&Kh(s,e)}else if(u&&r.includeEdges)if(n&&!i){var L=e.pstyle("curve-style").strValue;if(v=Math.min(p.srcX,p.midX,p.tgtX),f=Math.max(p.srcX,p.midX,p.tgtX),c=Math.min(p.srcY,p.midY,p.tgtY),h=Math.max(p.srcY,p.midY,p.tgtY),v-=P,f+=P,c-=P,h+=P,Pt(s,v,c,f,h),L==="haystack"){var M=p.haystackPts;if(M&&M.length===2){if(v=M[0].x,c=M[0].y,f=M[1].x,h=M[1].y,v>f){var O=v;v=f,f=O}if(c>h){var q=c;c=h,h=q}Pt(s,v-P,c-P,f+P,h+P)}}else if(L==="bezier"||L==="unbundled-bezier"||L.endsWith("segments")||L.endsWith("taxi")){var W;switch(L){case"bezier":case"unbundled-bezier":W=p.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":W=p.linePts;break}if(W!=null)for(var V=0;V<W.length;V++){var $=W[V];v=$.x-P,f=$.x+P,c=$.y-P,h=$.y+P,Pt(s,v,c,f,h)}}}else{var X=e.source(),_=X.position(),Q=e.target(),Z=Q.position();if(v=_.x,f=Z.x,c=_.y,h=Z.y,v>f){var j=v;v=f,f=j}if(c>h){var te=c;c=h,h=te}v-=P,f+=P,c-=P,h+=P,Pt(s,v,c,f,h)}if(n&&r.includeEdges&&u&&(Ua(s,e,"mid-source"),Ua(s,e,"mid-target"),Ua(s,e,"source"),Ua(s,e,"target")),n){var G=e.pstyle("ghost").value==="yes";if(G){var N=e.pstyle("ghost-offset-x").pfValue,H=e.pstyle("ghost-offset-y").pfValue;Pt(s,s.x1+N,s.y1+H,s.x2+N,s.y2+H)}}var ee=o.bodyBounds=o.bodyBounds||{};rs(ee,s),tn(ee,g),en(ee,1),n&&(v=s.x1,f=s.x2,c=s.y1,h=s.y2,Pt(s,v-S,c-S,f+S,h+S));var ie=o.overlayBounds=o.overlayBounds||{};rs(ie,s),tn(ie,g),en(ie,1);var ue=o.labelBounds=o.labelBounds||{};ue.all!=null?vf(ue.all):ue.all=pt(),n&&r.includeLabels&&(r.includeMainLabels&&Yn(s,e,null),u&&(r.includeSourceLabels&&Yn(s,e,"source"),r.includeTargetLabels&&Yn(s,e,"target")))}return s.x1=Ct(s.x1),s.y1=Ct(s.y1),s.x2=Ct(s.x2),s.y2=Ct(s.y2),s.w=Ct(s.x2-s.x1),s.h=Ct(s.y2-s.y1),s.w>0&&s.h>0&&b&&(tn(s,g),en(s,1)),s},uu=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},lu=function(e){if(e.isEdge()){var r=e.source().position(),a=e.target().position(),n=function(s){return Math.round(s)};return Av([n(r.x),n(r.y),n(a.x),n(a.y)])}else return 0},Cs=function(e,r){var a=e._private,n,i=e.isEdge(),s=r==null?Ss:uu(r),o=s===Ss,l=lu(e),u=a.bbCachePosKey===l,v=r.useCache&&u,f=function(y){return y._private.bbCache==null||y._private.styleDirty},c=!v||f(e)||i&&(f(e.source())||f(e.target()));if(c?(u||e.recalculateRenderedStyle(v),n=Gh(e,Sa),a.bbCache=n,a.bbCachePosKey=l):n=a.bbCache,!o){var h=e.isNode();n=pt(),(r.includeNodes&&h||r.includeEdges&&!h)&&(r.includeOverlays?dr(n,a.overlayBounds):dr(n,a.bodyBounds)),r.includeLabels&&(r.includeMainLabels&&(!i||r.includeSourceLabels&&r.includeTargetLabels)?dr(n,a.labelBounds.all):(r.includeMainLabels&&dr(n,a.labelBounds.mainRot),r.includeSourceLabels&&dr(n,a.labelBounds.sourceRot),r.includeTargetLabels&&dr(n,a.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},Sa={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,includeOutlines:!0,useCache:!0},Ss=uu(Sa),Ds=je(Sa);lr.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=Sa:t=Ds(t),e=Cs(this[0],t);else{e=pt(),t=t||Sa;var r=Ds(t),a=this,n=a.cy(),i=n.styleEnabled();if(i)for(var s=0;s<a.length;s++){var o=a[s],l=o._private,u=lu(o),v=l.bbCachePosKey===u,f=r.useCache&&v&&!l.styleDirty;o.recalculateRenderedStyle(f)}this.updateCompoundBounds(!t.useCache);for(var c=0;c<a.length;c++){var h=a[c];dr(e,Cs(h,r))}}return e.x1=Ct(e.x1),e.y1=Ct(e.y1),e.x2=Ct(e.x2),e.y2=Ct(e.y2),e.w=Ct(e.x2-e.x1),e.h=Ct(e.y2-e.y1),e};lr.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};lr.boundingBoxAt=function(t){var e=this.nodes(),r=this.cy(),a=r.hasCompoundNodes(),n=r.collection();if(a&&(n=e.filter(function(u){return u.isParent()}),e=e.not(n)),ke(t)){var i=t;t=function(){return i}}var s=function(v,f){return v._private.bbAtOldPos=t(v,f)},o=function(v){return v._private.bbAtOldPos};r.startBatch(),e.forEach(s).silentPositions(t),a&&(n.dirtyCompoundBoundsCache(),n.dirtyBoundingBoxCache(),n.updateCompoundBounds(!0));var l=lf(this.boundingBox({useCache:!1}));return e.silentPositions(o),a&&(n.dirtyCompoundBoundsCache(),n.dirtyBoundingBoxCache(),n.updateCompoundBounds(!0)),r.endBatch(),l};zr.boundingbox=zr.bb=zr.boundingBox;zr.renderedBoundingbox=zr.renderedBoundingBox;var Wh=lr,fa,Ma;fa=Ma={};var vu=function(e){e.uppercaseName=_i(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=_i(e.outerName),fa[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},fa["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](),l=a.pstyle("border-width").pfValue,u=2*a.padding();return o+l+u}else return 1},fa["rendered"+e.uppercaseName]=function(){var a=this[0];if(a){var n=a[e.name]();return n*this.cy().zoom()}},fa["rendered"+e.uppercaseOuterName]=function(){var a=this[0];if(a){var n=a[e.outerName]();return n*this.cy().zoom()}}};vu({name:"width"});vu({name:"height"});Ma.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};Ma.paddedHeight=function(){var t=this[0];return t.height()+2*t.padding()};Ma.paddedWidth=function(){var t=this[0];return t.width()+2*t.padding()};var Hh=Ma,Uh=function(e,r){if(e.isEdge())return r(e)},Xh=function(e,r){if(e.isEdge()){var a=e.cy();return Sn(r(e),a.zoom(),a.pan())}},Yh=function(e,r){if(e.isEdge()){var a=e.cy(),n=a.pan(),i=a.zoom();return r(e).map(function(s){return Sn(s,i,n)})}},_h=function(e){return e.renderer().getControlPoints(e)},Zh=function(e){return e.renderer().getSegmentPoints(e)},Qh=function(e){return e.renderer().getSourceEndpoint(e)},Jh=function(e){return e.renderer().getTargetEndpoint(e)},jh=function(e){return e.renderer().getEdgeMidpoint(e)},ks={controlPoints:{get:_h,mult:!0},segmentPoints:{get:Zh,mult:!0},sourceEndpoint:{get:Qh},targetEndpoint:{get:Jh},midpoint:{get:jh}},eg=function(e){return"rendered"+e[0].toUpperCase()+e.substr(1)},tg=Object.keys(ks).reduce(function(t,e){var r=ks[e],a=eg(e);return t[e]=function(){return Uh(this,r.get)},r.mult?t[a]=function(){return Yh(this,r.get)}:t[a]=function(){return Xh(this,r.get)},t},{}),rg=de({},$h,Wh,Hh,tg);/*!
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 fu=function(e,r){this.recycle(e,r)};function na(){return!1}function Xa(){return!0}fu.prototype={instanceString:function(){return"event"},recycle:function(e,r){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=na,e!=null&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?Xa:na):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=Xa;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Xa;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Xa,this.stopPropagation()},isDefaultPrevented:na,isPropagationStopped:na,isImmediatePropagationStopped:na};var cu=/^([^.]+)(\.(?:[^.]+))?$/,ag=".*",du={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},Ps=Object.keys(du),ng={};function Rn(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ng,e=arguments.length>1?arguments[1]:void 0,r=0;r<Ps.length;r++){var a=Ps[r];this[a]=t[a]||du[a]}this.context=e||this.context,this.listeners=[],this.emitting=0}var sr=Rn.prototype,hu=function(e,r,a,n,i,s,o){$e(n)&&(i=n,n=null),o&&(s==null?s=o:s=de({},s,o));for(var l=Ie(a)?a:a.split(/\s+/),u=0;u<l.length;u++){var v=l[u];if(!tr(v)){var f=v.match(cu);if(f){var c=f[1],h=f[2]?f[2]:null,d=r(e,v,c,h,n,i,s);if(d===!1)break}}}},Bs=function(e,r){return e.addEventFields(e.context,r),new fu(r.type,r)},ig=function(e,r,a){if(kl(a)){r(e,a);return}else if(ke(a)){r(e,Bs(e,a));return}for(var n=Ie(a)?a:a.split(/\s+/),i=0;i<n.length;i++){var s=n[i];if(!tr(s)){var o=s.match(cu);if(o){var l=o[1],u=o[2]?o[2]:null,v=Bs(e,{type:l,namespace:u,target:e.context});r(e,v)}}}};sr.on=sr.addListener=function(t,e,r,a,n){return hu(this,function(i,s,o,l,u,v,f){$e(v)&&i.listeners.push({event:s,callback:v,type:o,namespace:l,qualifier:u,conf:f})},t,e,r,a,n),this};sr.one=function(t,e,r,a){return this.on(t,e,r,a,{one:!0})};sr.removeListener=sr.off=function(t,e,r,a){var n=this;this.emitting!==0&&(this.listeners=Ov(this.listeners));for(var i=this.listeners,s=function(u){var v=i[u];hu(n,function(f,c,h,d,y,p){if((v.type===h||t==="*")&&(!d&&v.namespace!==".*"||v.namespace===d)&&(!y||f.qualifierCompare(v.qualifier,y))&&(!p||v.callback===p))return i.splice(u,1),!1},t,e,r,a)},o=i.length-1;o>=0;o--)s(o);return this};sr.removeAllListeners=function(){return this.removeListener("*")};sr.emit=sr.trigger=function(t,e,r){var a=this.listeners,n=a.length;return this.emitting++,Ie(e)||(e=[e]),ig(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(v){var f=a[v];if(f.type===s.type&&(!f.namespace||f.namespace===s.namespace||f.namespace===ag)&&i.eventMatches(i.context,f,s)){var c=[s];e!=null&&zv(c,e),i.beforeEmit(i.context,f,s),f.conf&&f.conf.one&&(i.listeners=i.listeners.filter(function(y){return y!==f}));var h=i.callbackContext(i.context,f,s),d=f.callback.apply(h,c);i.afterEmit(i.context,f,s),d===!1&&(s.stopPropagation(),s.preventDefault())}},l=0;l<n;l++)o(l);i.bubble(i.context)&&!s.isPropagationStopped()&&i.parent(i.context).emit(s,e)},t),this.emitting--,this};var sg={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&&Ba(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()}},Ya=function(e){return fe(e)?new nr(e):e},gu={createEmitter:function(){for(var e=0;e<this.length;e++){var r=this[e],a=r._private;a.emitter||(a.emitter=new Rn(sg,r))}return this},emitter:function(){return this._private.emitter},on:function(e,r,a){for(var n=Ya(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=Ya(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=Ya(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=Ya(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}};Be.eventAliasesOn(gu);var pu={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)},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(fe(e)||xt(e))return new nr(e).filter(this);if($e(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){fe(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(fe(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,l=s?i:n,u=0;u<o.length;u++){var v=o[u];l.has(v)&&a.push(v)}return a},xor:function(e){var r=this._private.cy;fe(e)&&(e=r.$(e));var a=this.spawn(),n=this,i=e,s=function(l,u){for(var v=0;v<l.length;v++){var f=l[v],c=f._private.data.id,h=u.hasElementWithId(c);h||a.push(f)}};return s(n,i),s(i,n),a},diff:function(e){var r=this._private.cy;fe(e)&&(e=r.$(e));var a=this.spawn(),n=this.spawn(),i=this.spawn(),s=this,o=e,l=function(v,f,c){for(var h=0;h<v.length;h++){var d=v[h],y=d._private.data.id,p=f.hasElementWithId(y);p?i.merge(d):c.push(d)}};return l(s,o,a),l(o,s,n),{left:a,right:n,both:i}},add:function(e){var r=this._private.cy;if(!e)return this;if(fe(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},merge:function(e){var r=this._private,a=r.cy;if(!e)return this;if(e&&fe(e)){var n=e;e=a.mutableElements().filter(n)}for(var i=r.map,s=0;s<e.length;s++){var o=e[s],l=o._private.data.id,u=!i.has(l);if(u){var v=this.length++;this[v]=o,i.set(l,{ele:o,index:v})}}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,l=this[o],u=l._private.data.id;this[o]=void 0,this[e]=l,i.set(u,{ele:l,index:e})}return this.length--,this},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},unmerge:function(e){var r=this._private.cy;if(!e)return this;if(e&&fe(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],l=r?e.apply(r,[o,s,i]):e(o,s,i);l>a&&(a=l,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],l=r?e.apply(r,[o,s,i]):e(o,s,i);l<a&&(a=l,n=o)}return{value:a,ele:n}}},Pe=pu;Pe.u=Pe["|"]=Pe["+"]=Pe.union=Pe.or=Pe.add;Pe["\\"]=Pe["!"]=Pe["-"]=Pe.difference=Pe.relativeComplement=Pe.subtract=Pe.not;Pe.n=Pe["&"]=Pe["."]=Pe.and=Pe.intersection=Pe.intersect;Pe["^"]=Pe["(+)"]=Pe["(-)"]=Pe.symmetricDifference=Pe.symdiff=Pe.xor;Pe.fnFilter=Pe.filterFn=Pe.stdFilter=Pe.filter;Pe.complement=Pe.abscomp=Pe.absoluteComplement;var og={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}},yu=function(e,r){var a=e.cy(),n=a.hasCompoundNodes();function i(v){var f=v.pstyle("z-compound-depth");return f.value==="auto"?n?v.zDepth():0:f.value==="bottom"?-1:f.value==="top"?Ei:0}var s=i(e)-i(r);if(s!==0)return s;function o(v){var f=v.pstyle("z-index-compare");return f.value==="auto"&&v.isNode()?1:0}var l=o(e)-o(r);if(l!==0)return l;var u=e.pstyle("z-index").value-r.pstyle("z-index").value;return u!==0?u:e.poolIndex()-r.poolIndex()},pn={forEach:function(e,r){if($e(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(!$e(e))return this;var r=this.toArray().sort(e);return this.spawn(r)},sortByZIndex:function(){return this.sort(yu)},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:Ei-1}else{var i=r.source,s=r.target,o=i.zDepth(),l=s.zDepth();return Math.max(o,l,0)}}}};pn.each=pn.forEach;var ug=function(){var e="undefined",r=(typeof Symbol>"u"?"undefined":Ue(Symbol))!=e&&Ue(Symbol.iterator)!=e;r&&(pn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return co({next:function(){return i<s?n.value=a[i++]:(n.value=void 0,n.done=!0),n}},Symbol.iterator,function(){return this})})};ug();var lg=je({nodeDimensionsIncludeLabels:!1}),an={layoutDimensions:function(e){e=lg(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},layoutPositions:function(e,r,a){var n=this.nodes().filter(function(T){return!T.isParent()}),i=this.cy(),s=r.eles,o=function(E){return E.id()},l=ya(a,o);e.emit({type:"layoutstart",layout:e}),e.animations=[];var u=function(E,x,S){var C={x:x.x1+x.w/2,y:x.y1+x.h/2},P={x:(S.x-C.x)*E,y:(S.y-C.y)*E};return{x:C.x+P.x,y:C.y+P.y}},v=r.spacingFactor&&r.spacingFactor!==1,f=function(){if(!v)return null;for(var E=pt(),x=0;x<n.length;x++){var S=n[x],C=l(S,x);cf(E,C.x,C.y)}return E},c=f(),h=ya(function(T,E){var x=l(T,E);if(v){var S=Math.abs(r.spacingFactor);x=u(S,c,x)}return r.transform!=null&&(x=r.transform(T,x)),x},o);if(r.animate){for(var d=0;d<n.length;d++){var y=n[d],p=h(y,d),g=r.animateFilter==null||r.animateFilter(y,d);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(h),padding:r.padding},duration:r.animationDuration,easing:r.animationEasing});e.animations.push(b)}else if(r.zoom!==void 0&&r.pan!==void 0){var w=i.animation({zoom:r.zoom,pan:r.pan,duration:r.animationDuration,easing:r.animationEasing});e.animations.push(w)}e.animations.forEach(function(T){return T.play()}),e.one("layoutready",r.ready),e.emit({type:"layoutready",layout:e}),Wr.all(e.animations.map(function(T){return T.promise()})).then(function(){e.one("layoutstop",r.stop),e.emit({type:"layoutstop",layout:e})})}else n.positions(h),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(de({},e,{eles:this}))}};an.createLayout=an.makeLayout=an.layout;function mu(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 Ln(t,e){return t=rr(t),function(a){return mu(t,e,a)}}function Mn(t,e){t=rr(t);var r=function(n){return e.call(n)};return function(){var n=this[0];if(n)return mu(t,r,n)}}var tt={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},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},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))}},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){a._private.styleDirty&&(a._private.styleDirty=!1,n.style().apply(a));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},renderedStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=this[0];if(a)return r.style().getRenderedStyle(a,e)},style:function(e,r){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(ke(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(fe(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 l=this[0];return l?i.getRawStyle(l):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 l=0;l<i.length;l++){var u=i[l];n.removeBypasses(u,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 l=s[o],u=l.pstyle("opacity").value;i=u*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 _n(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 Ii(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||_n(i,a);var l=o.source,u=o.target;return r(l)&&(!s||_n(l,r))&&(l===u||r(u)&&(!s||_n(u,r)))}}}var Yr=Ln("eleTakesUpSpace",function(t){return t.pstyle("display").value==="element"&&t.width()!==0&&(t.isNode()?t.height()!==0:!0)});tt.takesUpSpace=Mn("takesUpSpace",Ii({ok:Yr}));var vg=Ln("eleInteractive",function(t){return t.pstyle("events").value==="yes"&&t.pstyle("visibility").value==="visible"&&Yr(t)}),fg=Ln("parentInteractive",function(t){return t.pstyle("visibility").value==="visible"&&Yr(t)});tt.interactive=Mn("interactive",Ii({ok:vg,parentOk:fg,edgeOkViaNode:Yr}));tt.noninteractive=function(){var t=this[0];if(t)return!t.interactive()};var cg=Ln("eleVisible",function(t){return t.pstyle("visibility").value==="visible"&&t.pstyle("opacity").pfValue!==0&&Yr(t)}),dg=Yr;tt.visible=Mn("visible",Ii({ok:cg,edgeOkViaNode:dg}));tt.hidden=function(){var t=this[0];if(t)return!t.visible()};tt.isBundledBezier=Mn("isBundledBezier",function(){return this.cy().styleEnabled()?!this.removed()&&this.pstyle("curve-style").value==="bezier"&&this.takesUpSpace():!1});tt.bypass=tt.css=tt.style;tt.renderedCss=tt.renderedStyle;tt.removeBypass=tt.removeCss=tt.removeStyle;tt.pstyle=tt.parsedStyle;var er={};function As(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&&$e(e[0])){var i=e[0];this.on(t.event,i)}else if(e.length===0||e.length===1&&Ie(e[0])){for(var s=e.length===1?e[0]:null,o=0;o<this.length;o++){var l=this[o],u=!t.ableField||l._private[t.ableField],v=l._private[t.field]!=t.value;if(t.overrideAble){var f=t.overrideAble(l);if(f!==void 0&&(u=f,!f))return this}u&&(l._private[t.field]=t.value,v&&r.push(l))}var c=this.spawn(r);c.updateStyle(),c.emit(t.event),s&&c.emit(s)}return this}}function _r(t){er[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]}},er[t.on]=As({event:t.on,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!0}),er[t.off]=As({event:t.off,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!1})}_r({field:"locked",overrideField:function(e){return e.cy().autolock()?!0:void 0},on:"lock",off:"unlock"});_r({field:"grabbable",overrideField:function(e){return e.cy().autoungrabify()||e.pannable()?!1:void 0},on:"grabify",off:"ungrabify"});_r({field:"selected",ableField:"selectable",overrideAble:function(e){return e.cy().autounselectify()?!1:void 0},on:"select",off:"unselect"});_r({field:"selectable",overrideField:function(e){return e.cy().autounselectify()?!1:void 0},on:"selectify",off:"unselectify"});er.deselect=er.unselect;er.grabbed=function(){var t=this[0];if(t)return t._private.grabbed};_r({field:"active",on:"activate",off:"unactivate"});_r({field:"pannable",on:"panify",off:"unpanify"});er.inactive=function(){var t=this[0];if(t)return!t._private.active};var st={},Rs=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 l=!1,u=o.connectedEdges(),v=0;v<u.length;v++){var f=u[v],c=f.source(),h=f.target();if(e.noIncomingEdges&&h===o&&c!==o||e.noOutgoingEdges&&c===o&&h!==o){l=!0;break}}l||i.push(o)}}return this.spawn(i,!0).filter(a)}},Ls=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(),l=0;l<o.length;l++){var u=o[l],v=u.source(),f=u.target();e.outgoing&&v===s?(n.push(u),n.push(f)):e.incoming&&f===s&&(n.push(u),n.push(v))}}return this.spawn(n,!0).filter(r)}},Ms=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,l=0;l<s.length;l++){var u=s[l],v=u.id();i[v]||(i[v]=!0,n.push(u),o=!0)}if(!o)break;a=s}return this.spawn(n,!0).filter(r)}};st.clearTraversalCache=function(){for(var t=0;t<this.length;t++)this[t]._private.traversalCache=null};de(st,{roots:Rs({noIncomingEdges:!0}),leaves:Rs({noOutgoingEdges:!0}),outgoers:St(Ls({outgoing:!0}),"outgoers"),successors:Ms({outgoing:!0}),incomers:St(Ls({incoming:!0}),"incomers"),predecessors:Ms({})});de(st,{neighborhood:St(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],l=o.source(),u=o.target(),v=n===l?u:l;v.length>0&&e.push(v[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)}});st.neighbourhood=st.neighborhood;st.closedNeighbourhood=st.closedNeighborhood;st.openNeighbourhood=st.openNeighborhood;de(st,{source:St(function(e){var r=this[0],a;return r&&(a=r._private.source||r.cy().collection()),a&&e?a.filter(e):a},"source"),target:St(function(e){var r=this[0],a;return r&&(a=r._private.target||r.cy().collection()),a&&e?a.filter(e):a},"target"),sources:Is({attr:"source"}),targets:Is({attr:"target"})});function Is(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)}}de(st,{edgesWith:St(Os(),"edgesWith"),edgesTo:St(Os({thisIsSrc:!0}),"edgesTo")});function Os(t){return function(r){var a=[],n=this._private.cy,i=t||{};fe(r)&&(r=n.$(r));for(var s=0;s<r.length;s++)for(var o=r[s]._private.edges,l=0;l<o.length;l++){var u=o[l],v=u._private.data,f=this.hasElementWithId(v.source)&&r.hasElementWithId(v.target),c=r.hasElementWithId(v.source)&&this.hasElementWithId(v.target),h=f||c;h&&((i.thisIsSrc||i.thisIsTgt)&&(i.thisIsSrc&&!f||i.thisIsTgt&&!c)||a.push(u))}return this.spawn(a,!0)}}de(st,{connectedEdges:St(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:St(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:St(Ns(),"parallelEdges"),codirectedEdges:St(Ns({codirected:!0}),"codirectedEdges")});function Ns(t){var e={codirected:!1};return t=de({},e,t),function(a){for(var n=[],i=this.edges(),s=t,o=0;o<i.length;o++)for(var l=i[o],u=l._private,v=u.source,f=v._private.data.id,c=u.data.target,h=v._private.edges,d=0;d<h.length;d++){var y=h[d],p=y._private.data,g=p.target,m=p.source,b=g===c&&m===f,w=f===g&&c===m;(s.codirected&&b||!s.codirected&&(b||w))&&n.push(y)}return this.spawn(n,!0).filter(a)}}de(st,{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(v,f){n.merge(v),i.unmerge(v),f.merge(v)};if(i.empty())return r.spawn();var l=function(){var v=a.collection();s.push(v);var f=i[0];o(f,v),r.bfs({directed:!1,roots:f,visit:function(h){return o(h,v)}}),v.forEach(function(c){c.connectedEdges().forEach(function(h){r.has(h)&&v.has(h.source())&&v.has(h.target())&&v.merge(h)})})};do l();while(i.length>0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}});st.componentsOf=st.components;var rt=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){qe("A collection must have a reference to the core");return}var i=new zt,s=!1;if(!r)r=[];else if(r.length>0&&ke(r[0])&&!Ba(r[0])){s=!0;for(var o=[],l=new Gr,u=0,v=r.length;u<v;u++){var f=r[u];f.data==null&&(f.data={});var c=f.data;if(c.id==null)c.id=Ro();else if(e.hasElementWithId(c.id)||l.has(c.id))continue;var h=new Cn(e,f,!1);o.push(h),l.add(c.id)}r=o}this.length=0;for(var d=0,y=r.length;d<y;d++){var p=r[d][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 zt,w=this.eles,T=0;T<w.length;T++){var E=w[T];b.set(E.id(),{index:T,ele:E})}}},a&&(this._private.map=i),s&&!n&&this.restore()},ze=Cn.prototype=rt.prototype=Object.create(Array.prototype);ze.instanceString=function(){return"collection"};ze.spawn=function(t,e){return new rt(this.cy(),t,e)};ze.spawnSelf=function(){return this.spawn(this)};ze.cy=function(){return this._private.cy};ze.renderer=function(){return this._private.cy.renderer()};ze.element=function(){return this[0]};ze.collection=function(){return po(this)?this:new rt(this._private.cy,[this])};ze.unique=function(){return new rt(this._private.cy,this,!0)};ze.hasElementWithId=function(t){return t=""+t,this._private.map.has(t)};ze.getElementById=function(t){t=""+t;var e=this._private.cy,r=this._private.map.get(t);return r?r.ele:new rt(e)};ze.$id=ze.getElementById;ze.poolIndex=function(){var t=this._private.cy,e=t._private.elements,r=this[0]._private.data.id;return e._private.map.get(r).index};ze.indexOf=function(t){var e=t[0]._private.data.id;return this._private.map.get(e).index};ze.indexOfId=function(t){return t=""+t,this._private.map.get(t).index};ze.json=function(t){var e=this.element(),r=this.cy();if(e==null&&t)return this;if(e!=null){var a=e._private;if(ke(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,l=t.data.target;o!=null&&o!=n.source&&(s.source=""+o,i=!0),l!=null&&l!=n.target&&(s.target=""+l,i=!0),i&&(e=e.move(s))}else{var u="parent"in t.data,v=t.data.parent;u&&(v!=null||n.parent!=null)&&v!=n.parent&&(v===void 0&&(v=null),v!=null&&(v=""+v),e=e.move({parent:v}))}}t.position&&e.position(t.position);var f=function(y,p,g){var m=t[y];m!=null&&m!==a[y]&&(m?e[p]():e[g]())};return f("removed","remove","restore"),f("selected","select","unselect"),f("selectable","selectify","unselectify"),f("locked","lock","unlock"),f("grabbable","grabify","ungrabify"),f("pannable","panify","unpanify"),t.classes!=null&&e.classes(t.classes),r.endBatch(),this}else if(t===void 0){var c={data:Nt(a.data),position:Nt(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};c.classes="";var h=0;return a.classes.forEach(function(d){return c.classes+=h++===0?d:" "+d}),c}}};ze.jsons=function(){for(var t=[],e=0;e<this.length;e++){var r=this[e],a=r.json();t.push(a)}return t};ze.clone=function(){for(var t=this.cy(),e=[],r=0;r<this.length;r++){var a=this[r],n=a.json(),i=new Cn(t,n,!1);e.push(i)}return new rt(t,e)};ze.copy=ze.clone;ze.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,l=0,u=r.length;l<u;l++){var v=r[l];e&&!v.removed()||(v.isNode()?i.push(v):s.push(v))}o=i.concat(s);var f,c=function(){o.splice(f,1),f--};for(f=0;f<o.length;f++){var h=o[f],d=h._private,y=d.data;if(h.clearTraversalCache(),!(!e&&!d.removed)){if(y.id===void 0)y.id=Ro();else if(re(y.id))y.id=""+y.id;else if(tr(y.id)||!fe(y.id)){qe("Can not create element with invalid string ID `"+y.id+"`"),c();continue}else if(a.hasElementWithId(y.id)){qe("Can not create second element with ID `"+y.id+"`"),c();continue}}var p=y.id;if(h.isNode()){var g=d.position;g.x==null&&(g.x=0),g.y==null&&(g.y=0)}if(h.isEdge()){for(var m=h,b=["source","target"],w=b.length,T=!1,E=0;E<w;E++){var x=b[E],S=y[x];re(S)&&(S=y[x]=""+y[x]),S==null||S===""?(qe("Can not create edge `"+p+"` with unspecified "+x),T=!0):a.hasElementWithId(S)||(qe("Can not create edge `"+p+"` with nonexistant "+x+" `"+S+"`"),T=!0)}if(T){c();continue}var C=a.getElementById(y.source),P=a.getElementById(y.target);C.same(P)?C._private.edges.push(m):(C._private.edges.push(m),P._private.edges.push(m)),m._private.source=C,m._private.target=P}d.map=new zt,d.map.set(p,{ele:h,index:0}),d.removed=!1,e&&a.addToPool(h)}for(var B=0;B<i.length;B++){var k=i[B],R=k._private.data;re(R.parent)&&(R.parent=""+R.parent);var A=R.parent,I=A!=null;if(I||k._private.parent){var L=k._private.parent?a.collection().merge(k._private.parent):a.getElementById(A);if(L.empty())R.parent=void 0;else if(L[0].removed())Ae("Node added with missing parent, reference to parent removed"),R.parent=void 0,k._private.parent=null;else{for(var M=!1,O=L;!O.empty();){if(k.same(O)){M=!0,R.parent=void 0;break}O=O.parent()}M||(L[0]._private.children.push(k),k._private.parent=L[0],n.hasCompoundNodes=!0)}}}if(o.length>0){for(var q=o.length===r.length?r:new rt(a,o),W=0;W<q.length;W++){var V=q[W];V.isNode()||(V.parallelEdges().clearTraversalCache(),V.source().clearTraversalCache(),V.target().clearTraversalCache())}var $;n.hasCompoundNodes?$=a.collection().merge(q).merge(q.connectedNodes()).merge(q.parent()):$=q,$.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(t),t?q.emitAndNotify("add"):e&&q.emit("add")}return r};ze.removed=function(){var t=this[0];return t&&t._private.removed};ze.inside=function(){var t=this[0];return t&&!t._private.removed};ze.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(A){for(var I=A._private.edges,L=0;L<I.length;L++)l(I[L])}function o(A){for(var I=A._private.children,L=0;L<I.length;L++)l(I[L])}function l(A){var I=n[A.id()];e&&A.removed()||I||(n[A.id()]=!0,A.isNode()?(a.push(A),s(A),o(A)):a.unshift(A))}for(var u=0,v=r.length;u<v;u++){var f=r[u];l(f)}function c(A,I){var L=A._private.edges;ar(L,I),A.clearTraversalCache()}function h(A){A.clearTraversalCache()}var d=[];d.ids={};function y(A,I){I=I[0],A=A[0];var L=A._private.children,M=A.id();ar(L,I),I._private.parent=null,d.ids[M]||(d.ids[M]=!0,d.push(A))}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];c(m,g),c(b,g);for(var w=g.parallelEdges(),T=0;T<w.length;T++){var E=w[T];h(E),E.isBundledBezier()&&E.dirtyBoundingBoxCache()}}else{var x=g.parent();x.length!==0&&y(x,g)}e&&(g._private.removed=!0)}var S=i._private.elements;i._private.hasCompoundNodes=!1;for(var C=0;C<S.length;C++){var P=S[C];if(P.isParent()){i._private.hasCompoundNodes=!0;break}}var B=new rt(this.cy(),a);B.size()>0&&(t?B.emitAndNotify("remove"):e&&B.emit("remove"));for(var k=0;k<d.length;k++){var R=d[k];(!e||!R.removed())&&R.updateStyle()}return B};ze.move=function(t){var e=this._private.cy,r=this,a=!1,n=!1,i=function(d){return d==null?d:""+d};if(t.source!==void 0||t.target!==void 0){var s=i(t.source),o=i(t.target),l=s!=null&&e.hasElementWithId(s),u=o!=null&&e.hasElementWithId(o);(l||u)&&(e.batch(function(){r.remove(a,n),r.emitAndNotify("moveout");for(var h=0;h<r.length;h++){var d=r[h],y=d._private.data;d.isEdge()&&(l&&(y.source=s),u&&(y.target=o))}r.restore(a,n)}),r.emitAndNotify("move"))}else if(t.parent!==void 0){var v=i(t.parent),f=v===null||e.hasElementWithId(v);if(f){var c=v===null?void 0:v;e.batch(function(){var h=r.remove(a,n);h.emitAndNotify("moveout");for(var d=0;d<r.length;d++){var y=r[d],p=y._private.data;y.isNode()&&(p.parent=c)}h.restore(a,n)}),r.emitAndNotify("move")}}return this};[Wo,Ch,rn,jt,$r,qh,An,rg,gu,pu,og,pn,an,tt,er,st].forEach(function(t){de(ze,t)});var hg={add:function(e){var r,a=this;if(xt(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 rt(a,i)}}else if(Ie(e)){var l=e;r=new rt(a,l)}else if(ke(e)&&(Ie(e.nodes)||Ie(e.edges))){for(var u=e,v=[],f=["nodes","edges"],c=0,h=f.length;c<h;c++){var d=f[c],y=u[d];if(Ie(y))for(var p=0,g=y.length;p<g;p++){var m=de({group:d},y[p]);v.push(m)}}r=new rt(a,v)}else{var b=e;r=new Cn(a,b).collection()}return r},remove:function(e){if(!xt(e)){if(fe(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 gg(t,e,r,a){var n=4,i=.001,s=1e-7,o=10,l=11,u=1/(l-1),v=typeof Float32Array<"u";if(arguments.length!==4)return!1;for(var f=0;f<4;++f)if(typeof arguments[f]!="number"||isNaN(arguments[f])||!isFinite(arguments[f]))return!1;t=Math.min(t,1),r=Math.min(r,1),t=Math.max(t,0),r=Math.max(r,0);var c=v?new Float32Array(l):new Array(l);function h(P,B){return 1-3*B+3*P}function d(P,B){return 3*B-6*P}function y(P){return 3*P}function p(P,B,k){return((h(B,k)*P+d(B,k))*P+y(B))*P}function g(P,B,k){return 3*h(B,k)*P*P+2*d(B,k)*P+y(B)}function m(P,B){for(var k=0;k<n;++k){var R=g(B,t,r);if(R===0)return B;var A=p(B,t,r)-P;B-=A/R}return B}function b(){for(var P=0;P<l;++P)c[P]=p(P*u,t,r)}function w(P,B,k){var R,A,I=0;do A=B+(k-B)/2,R=p(A,t,r)-P,R>0?k=A:B=A;while(Math.abs(R)>s&&++I<o);return A}function T(P){for(var B=0,k=1,R=l-1;k!==R&&c[k]<=P;++k)B+=u;--k;var A=(P-c[k])/(c[k+1]-c[k]),I=B+A*u,L=g(I,t,r);return L>=i?m(P,I):L===0?I:w(P,B,B+u)}var E=!1;function x(){E=!0,(t!==e||r!==a)&&b()}var S=function(B){return E||x(),t===e&&r===a?B:B===0?0:B===1?1:p(T(B),e,a)};S.getControlPoints=function(){return[{x:t,y:e},{x:r,y:a}]};var C="generateBezier("+[t,e,r,a]+")";return S.toString=function(){return C},S}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var pg=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*.5,i),o=e(a,n*.5,s),l=e(a,n,o),u=1/6*(i.dx+2*(s.dx+o.dx)+l.dx),v=1/6*(i.dv+2*(s.dv+o.dv)+l.dv);return a.x=a.x+u*n,a.v=a.v+v*n,a}return function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},l=[0],u=0,v=1/1e4,f=16/1e3,c,h,d;for(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,c=s!==null,c?(u=a(n,i),h=u/s*f):h=f;d=r(d||o,h),l.push(1+d.x),u+=16,Math.abs(d.x)>v&&Math.abs(d.v)>v;);return c?function(y){return l[y*(l.length-1)|0]}:u}}(),Ne=function(e,r,a,n){var i=gg(e,r,a,n);return function(s,o,l){return s+(o-s)*i(l)}},nn={linear:function(e,r,a){return e+(r-e)*a},ease:Ne(.25,.1,.25,1),"ease-in":Ne(.42,0,1,1),"ease-out":Ne(0,0,.58,1),"ease-in-out":Ne(.42,0,.58,1),"ease-in-sine":Ne(.47,0,.745,.715),"ease-out-sine":Ne(.39,.575,.565,1),"ease-in-out-sine":Ne(.445,.05,.55,.95),"ease-in-quad":Ne(.55,.085,.68,.53),"ease-out-quad":Ne(.25,.46,.45,.94),"ease-in-out-quad":Ne(.455,.03,.515,.955),"ease-in-cubic":Ne(.55,.055,.675,.19),"ease-out-cubic":Ne(.215,.61,.355,1),"ease-in-out-cubic":Ne(.645,.045,.355,1),"ease-in-quart":Ne(.895,.03,.685,.22),"ease-out-quart":Ne(.165,.84,.44,1),"ease-in-out-quart":Ne(.77,0,.175,1),"ease-in-quint":Ne(.755,.05,.855,.06),"ease-out-quint":Ne(.23,1,.32,1),"ease-in-out-quint":Ne(.86,0,.07,1),"ease-in-expo":Ne(.95,.05,.795,.035),"ease-out-expo":Ne(.19,1,.22,1),"ease-in-out-expo":Ne(1,0,0,1),"ease-in-circ":Ne(.6,.04,.98,.335),"ease-out-circ":Ne(.075,.82,.165,1),"ease-in-out-circ":Ne(.785,.135,.15,.86),spring:function(e,r,a){if(a===0)return nn.linear;var n=pg(e,r,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":Ne};function zs(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 Fs(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function kr(t,e,r,a,n){var i=n!=null?n.type:null;r<0?r=0:r>1&&(r=1);var s=Fs(t,n),o=Fs(e,n);if(re(s)&&re(o))return zs(i,s,o,r,a);if(Ie(s)&&Ie(o)){for(var l=[],u=0;u<o.length;u++){var v=s[u],f=o[u];if(v!=null&&f!=null){var c=zs(i,v,f,r,a);l.push(c)}else l.push(f)}return l}}function yg(t,e,r,a){var n=!a,i=t._private,s=e._private,o=s.easing,l=s.startTime,u=a?t:t.cy(),v=u.style();if(!s.easingImpl)if(o==null)s.easingImpl=nn.linear;else{var f;if(fe(o)){var c=v.parse("transition-timing-function",o);f=c.value}else f=o;var h,d;fe(f)?(h=f,d=[]):(h=f[1],d=f.slice(2).map(function(q){return+q})),d.length>0?(h==="spring"&&d.push(s.duration),s.easingImpl=nn[h].apply(null,d)):s.easingImpl=nn[h]}var y=s.easingImpl,p;if(s.duration===0?p=1:p=(r-l)/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={};ia(g.x,m.x)&&(b.x=kr(g.x,m.x,p,y)),ia(g.y,m.y)&&(b.y=kr(g.y,m.y,p,y)),t.position(b)}var w=s.startPan,T=s.pan,E=i.pan,x=T!=null&&a;x&&(ia(w.x,T.x)&&(E.x=kr(w.x,T.x,p,y)),ia(w.y,T.y)&&(E.y=kr(w.y,T.y,p,y)),t.emit("pan"));var S=s.startZoom,C=s.zoom,P=C!=null&&a;P&&(ia(S,C)&&(i.zoom=xa(i.minZoom,kr(S,C,p,y),i.maxZoom)),t.emit("zoom")),(x||P)&&t.emit("viewport");var B=s.style;if(B&&B.length>0&&n){for(var k=0;k<B.length;k++){var R=B[k],A=R.name,I=R,L=s.startStyle[A],M=v.properties[L.name],O=kr(L,I,p,y,M);v.overrideBypass(t,A,O)}t.emit("style")}}return s.progress=p,p}function ia(t,e){return t==null||e==null?!1:re(t)&&re(e)?!0:!!(t&&e)}function mg(t,e,r,a){var n=e._private;n.started=!0,n.startTime=r-n.progress*n.duration}function Vs(t,e){var r=e._private.aniEles,a=[];function n(v,f){var c=v._private,h=c.animation.current,d=c.animation.queue,y=!1;if(h.length===0){var p=d.shift();p&&h.push(p)}for(var g=function(E){for(var x=E.length-1;x>=0;x--){var S=E[x];S()}E.splice(0,E.length)},m=h.length-1;m>=0;m--){var b=h[m],w=b._private;if(w.stopped){h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,g(w.frames);continue}!w.playing&&!w.applying||(w.playing&&w.applying&&(w.applying=!1),w.started||mg(v,b,t),yg(v,b,t,f),w.applying&&(w.applying=!1),g(w.frames),w.step!=null&&w.step(t),b.completed()&&(h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,g(w.completes)),y=!0)}return!f&&h.length===0&&d.length===0&&a.push(v),y}for(var i=!1,s=0;s<r.length;s++){var o=r[s],l=n(o);i=i||l}var u=n(e,!0);(i||u)&&(r.length>0?e.notify("draw",r):e.notify("draw")),r.unmerge(a),e.emit("step")}var bg={animate:Be.animate(),animation:Be.animation(),animated:Be.animated(),clearQueue:Be.clearQueue(),delay:Be.delay(),delayAnimation:Be.delayAnimation(),stop:Be.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&&fn(function(i){Vs(i,e),r()})}var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(i,s){Vs(s,e)},a.beforeRenderPriorities.animations):r()}},wg={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&&Ba(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}},_a=function(e){return fe(e)?new nr(e):e},bu={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Rn(wg,this)),this},emitter:function(){return this._private.emitter},on:function(e,r,a){return this.emitter().on(e,_a(r),a),this},removeListener:function(e,r,a){return this.emitter().removeListener(e,_a(r),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,r,a){return this.emitter().one(e,_a(r),a),this},once:function(e,r,a){return this.emitter().one(e,_a(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}};Be.eventAliasesOn(bu);var li={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)}};li.jpeg=li.jpg;var sn={layout:function(e){var r=this;if(e==null){qe("Layout options must be specified to make a layout");return}if(e.name==null){qe("A `name` must be specified to make a layout");return}var a=e.name,n=r.extension("layout",a);if(n==null){qe("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;fe(e.eles)?i=r.$(e.eles):i=e.eles!=null?e.eles:r.$();var s=new n(de({},e,{cy:r,eles:i}));return s}};sn.createLayout=sn.makeLayout=sn.layout;var xg={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},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)}})}},Eg=je({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1,webgl:!1,webglDebug:!1,webglDebugShowAtlases:!1,webglTexSize:2048,webglTexRows:12,webglBatchSize:2048,webglTexPerBatch:14,webglBgColor:[255,255,255]}),vi={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){qe("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&&Ae("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=Eg(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)}};vi.invalidateDimensions=vi.resize;var on={collection:function(e,r){return fe(e)?this.$(e):xt(e)?e.collection():Ie(e)?(r||(r={}),new rt(this,e,r.unique,r.removed)):new rt(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},$:function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},mutableElements:function(){return this._private.elements}};on.elements=on.filter=on.$;var ut={},da="t",Tg="f";ut.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 l=e.getContextStyle(o),u=e.applyContextStyle(o,l,s);s._private.appliedInitStyle?e.updateTransitions(s,u.diffProps):s._private.appliedInitStyle=!0;var v=e.updateStyleHints(s);v&&n.push(s)}}return n};ut.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={},l=0;l<r.length;l++){var u=r[l],v=t[l]===da,f=e[l]===da,c=v!==f,h=u.mappedProperties.length>0;if(c||f&&h){var d=void 0;c&&h||c?d=u.properties:h&&(d=u.mappedProperties);for(var y=0;y<d.length;y++){for(var p=d[y],g=p.name,m=!1,b=l+1;b<r.length;b++){var w=r[b],T=e[b]===da;if(T&&(m=w.properties[p.name]!=null,m))break}!o[g]&&!m&&(o[g]=!0,s.push(g))}}}return a[n]=s,s};ut.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+=da:r+=Tg}return a=e.getPropertiesDiff(n,r),t._private.styleCxtKey=r,{key:r,diffPropNames:a,empty:a.length===0}};ut.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]===da;if(o)for(var l=0;l<s.properties.length;l++){var u=s.properties[l];n[u.name]=u}}return a[e]=n,n};ut.applyContextStyle=function(t,e,r){for(var a=this,n=t.diffPropNames,i={},s=a.types,o=0;o<n.length;o++){var l=n[o],u=e[l],v=r.pstyle(l);if(!u)if(v)v.bypass?u={name:l,deleteBypassed:!0}:u={name:l,delete:!0};else continue;if(v!==u){if(u.mapped===s.fn&&v!=null&&v.mapping!=null&&v.mapping.value===u.value){var f=v.mapping,c=f.fnValue=u.value(r);if(c===f.prevFnValue)continue}var h=i[l]={prev:v};a.applyParsedProperty(r,u),h.next=r.pstyle(l),h.next&&h.next.bypass&&(h.next=h.next.bypassed)}}return{diffProps:i}};ut.updateStyleHints=function(t){var e=t._private,r=this,a=r.propertyGroupNames,n=r.propertyGroupKeys,i=function(H,ee,ie){return r.getPropertiesHash(H,ee,ie)},s=e.styleKey;if(t.removed())return!1;var o=e.group==="nodes",l=t._private.style;a=Object.keys(l);for(var u=0;u<n.length;u++){var v=n[u];e.styleKeys[v]=[Rr,la]}for(var f=function(H,ee){return e.styleKeys[ee][0]=ma(H,e.styleKeys[ee][0])},c=function(H,ee){return e.styleKeys[ee][1]=ba(H,e.styleKeys[ee][1])},h=function(H,ee){f(H,ee),c(H,ee)},d=function(H,ee){for(var ie=0;ie<H.length;ie++){var ue=H.charCodeAt(ie);f(ue,ee),c(ue,ee)}},y=2e9,p=function(H){return-128<H&&H<128&&Math.floor(H)!==H?y-(H*1024|0):H},g=0;g<a.length;g++){var m=a[g],b=l[m];if(b!=null){var w=this.properties[m],T=w.type,E=w.groupKey,x=void 0;w.hashOverride!=null?x=w.hashOverride(t,b):b.pfValue!=null&&(x=b.pfValue);var S=w.enums==null?b.value:null,C=x!=null,P=S!=null,B=C||P,k=b.units;if(T.number&&B&&!T.multiple){var R=C?x:S;h(p(R),E),!C&&k!=null&&d(k,E)}else d(b.strValue,E)}}for(var A=[Rr,la],I=0;I<n.length;I++){var L=n[I],M=e.styleKeys[L];A[0]=ma(M[0],A[0]),A[1]=ba(M[1],A[1])}e.styleKey=Bv(A[0],A[1]);var O=e.styleKeys;e.labelDimsKey=_t(O.labelDimensions);var q=i(t,["label"],O.labelDimensions);if(e.labelKey=_t(q),e.labelStyleKey=_t(qa(O.commonLabel,q)),!o){var W=i(t,["source-label"],O.labelDimensions);e.sourceLabelKey=_t(W),e.sourceLabelStyleKey=_t(qa(O.commonLabel,W));var V=i(t,["target-label"],O.labelDimensions);e.targetLabelKey=_t(V),e.targetLabelStyleKey=_t(qa(O.commonLabel,V))}if(o){var $=e.styleKeys,X=$.nodeBody,_=$.nodeBorder,Q=$.nodeOutline,Z=$.backgroundImage,j=$.compound,te=$.pie,G=[X,_,Q,Z,j,te].filter(function(N){return N!=null}).reduce(qa,[Rr,la]);e.nodeKey=_t(G),e.hasPie=te!=null&&te[0]!==Rr&&te[1]!==la}return s!==e.styleKey};ut.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};ut.applyParsedProperty=function(t,e){var r=this,a=e,n=t._private.style,i,s=r.types,o=r.properties[a.name].type,l=a.bypass,u=n[a.name],v=u&&u.bypass,f=t._private,c="mapping",h=function(X){return X==null?null:X.pfValue!=null?X.pfValue:X.value},d=function(){var X=h(u),_=h(a);r.checkTriggers(t,a.name,X,_)};if(e.name==="curve-style"&&t.isEdge()&&(e.value!=="bezier"&&t.isLoop()||e.value==="haystack"&&(t.source().isParent()||t.target().isParent()))&&(a=e=this.parse(e.name,"bezier",l)),a.delete)return n[a.name]=void 0,d(),!0;if(a.deleteBypassed)return u?u.bypass?(u.bypassed=void 0,d(),!0):!1:(d(),!0);if(a.deleteBypass)return u?u.bypass?(n[a.name]=u.bypassed,d(),!0):!1:(d(),!0);var y=function(){Ae("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=f.data,m=0;m<p.length&&g;m++){var b=p[m];g=g[b]}if(g==null)return y(),!1;var w;if(re(g)){var T=a.fieldMax-a.fieldMin;T===0?w=0:w=(g-a.fieldMin)/T}else return Ae("Do not use continuous mappers without specifying numeric data (i.e. `"+a.field+": "+g+"` for `"+t.id()+"` is non-numeric)"),!1;if(w<0?w=0:w>1&&(w=1),o.color){var E=a.valueMin[0],x=a.valueMax[0],S=a.valueMin[1],C=a.valueMax[1],P=a.valueMin[2],B=a.valueMax[2],k=a.valueMin[3]==null?1:a.valueMin[3],R=a.valueMax[3]==null?1:a.valueMax[3],A=[Math.round(E+(x-E)*w),Math.round(S+(C-S)*w),Math.round(P+(B-P)*w),Math.round(k+(R-k)*w)];i={bypass:a.bypass,name:a.name,value:A,strValue:"rgb("+A[0]+", "+A[1]+", "+A[2]+")"}}else if(o.number){var I=a.valueMin+(a.valueMax-a.valueMin)*w;i=this.parse(a.name,I,a.bypass,c)}else return!1;if(!i)return y(),!1;i.mapping=a,a=i;break}case s.data:{for(var L=a.field.split("."),M=f.data,O=0;O<L.length&&M;O++){var q=L[O];M=M[q]}if(M!=null&&(i=this.parse(a.name,M,a.bypass,c)),!i)return y(),!1;i.mapping=a,a=i;break}case s.fn:{var W=a.value,V=a.fnValue!=null?a.fnValue:W(t);if(a.prevFnValue=V,V==null)return Ae("Custom function mappers may not return null (i.e. `"+a.name+"` for ele `"+t.id()+"` is null)"),!1;if(i=this.parse(a.name,V,a.bypass,c),!i)return Ae("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=Nt(a),a=i;break}case void 0:break;default:return!1}return l?(v?a.bypassed=u.bypassed:a.bypassed=u,n[a.name]=a):v?u.bypassed=a:n[a.name]=a,d(),!0};ut.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],l=n[o];l!=null&&(l.bypass?l.bypassed=null:n[o]=null)}}};ut.update=function(){var t=this._private.cy,e=t.mutableElements();e.updateStyle()};ut.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={},l=!1,u=0;u<n.length;u++){var v=n[u],f=t.pstyle(v),c=e[v];if(c){var h=c.prev,d=h,y=c.next!=null?c.next:f,p=!1,g=void 0,m=1e-6;d&&(re(d.pfValue)&&re(y.pfValue)?(p=y.pfValue-d.pfValue,g=d.pfValue+m*p):re(d.value)&&re(y.value)?(p=y.value-d.value,g=d.value+m*p):Ie(d.value)&&Ie(y.value)&&(p=d.value[0]!==y.value[0]||d.value[1]!==y.value[1]||d.value[2]!==y.value[2],g=d.strValue),p&&(o[v]=y.strValue,this.applyBypass(t,v,g),l=!0))}}if(!l)return;a.transitioning=!0,new Wr(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)};ut.checkTrigger=function(t,e,r,a,n,i){var s=this.properties[e],o=n(s);o!=null&&o(r,a)&&i(s)};ut.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)})};ut.checkBoundsTrigger=function(t,e,r,a){this.checkTrigger(t,e,r,a,function(n){return n.triggersBounds},function(n){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),n.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||a==="bezier")&&t.parallelEdges().forEach(function(i){i.dirtyBoundingBoxCache()}),n.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||a==="none")&&t.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};ut.checkTriggers=function(t,e,r,a){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,a),this.checkBoundsTrigger(t,e,r,a)};var Ia={};Ia.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 l=n.properties[o],u=l.name,v=this.parse(u,r,!0);v&&i.push(v)}}else if(fe(e)){var f=this.parse(e,r,!0);f&&i.push(f)}else if(ke(e)){var c=e;a=r;for(var h=Object.keys(c),d=0;d<h.length;d++){var y=h[d],p=c[y];if(p===void 0&&(p=c[En(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 w=t[b],T={},E=void 0,x=0;x<i.length;x++){var S=i[x];if(a){var C=w.pstyle(S.name);E=T[S.name]={prev:C}}m=this.applyParsedProperty(w,Nt(S))||m,a&&(E.next=w.pstyle(S.name))}m&&this.updateStyleHints(w),a&&this.updateTransitions(w,T,s)}return m};Ia.overrideBypass=function(t,e,r){e=xi(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,l=s.mutiple,u=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(",")+")":l?i.strValue=r.join(" "):i.strValue=""+r,this.updateStyleHints(n)),this.checkTriggers(n,e,u,r)}};Ia.removeAllBypasses=function(t,e){return this.removeBypasses(t,this.propertyNames,e)};Ia.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 l=e[o],u=this.properties[l],v=i.pstyle(u.name);if(!(!v||!v.bypass)){var f="",c=this.parse(l,f,!0),h=s[u.name]={prev:v};this.applyParsedProperty(i,c),h.next=i.pstyle(u.name)}}this.updateStyleHints(i),r&&this.updateTransitions(i,s,a)}};var Oi={};Oi.getEmSizeInPixels=function(){var t=this.containerCss("font-size");return t!=null?parseFloat(t):1};Oi.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 Ft={};Ft.getRenderedStyle=function(t,e){return e?this.getStylePropertyValue(t,e,!0):this.getRawStyle(t,!0)};Ft.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[En(i.name)]=s)}return a}};Ft.getIndexedStyle=function(t,e,r,a){var n=t.pstyle(e)[r][a];return n??t.cy().style().getDefaultProperty(e)[r][0]};Ft.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,l=s.units,u=s.strValue;if(r&&i.number&&o!=null&&re(o)){var v=t.cy().zoom(),f=function(p){return p*v},c=function(p,g){return f(p)+g},h=Ie(o),d=h?l.every(function(y){return y!=null}):l!=null;return d?h?o.map(function(y,p){return c(y,l[p])}).join(" "):c(o,l):h?o.map(function(y){return fe(y)?y:""+f(y)}).join(" "):""+f(o)}else if(u!=null)return u}return null}};Ft.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&&(ke(s)?s=this.parse(i,s.strValue):s=this.parse(i,s)),s&&(r[i]=s)}return r};Ft.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],l=a[o],u=n[o]||n[xi(o)],v=this.parse(u.name,l);v&&r.push(v)}return r};Ft.getNonDefaultPropertiesHash=function(t,e,r){var a=r.slice(),n,i,s,o,l,u;for(l=0;l<e.length;l++)if(n=e[l],i=t.pstyle(n,!1),i!=null)if(i.pfValue!=null)a[0]=ma(o,a[0]),a[1]=ba(o,a[1]);else for(s=i.strValue,u=0;u<s.length;u++)o=s.charCodeAt(u),a[0]=ma(o,a[0]),a[1]=ba(o,a[1]);return a};Ft.getPropertiesHash=Ft.getNonDefaultPropertiesHash;var In={};In.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 l=s[o],u=i[l];e.css(l,u)}}return e};In.fromJson=function(t){var e=this;return e.resetToDefault(),e.appendFromJson(t),e};In.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 Ni={};Ni.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 l(){i.length>s.length?i=i.substr(s.length):i=""}for(;;){var u=a.match(/^\s*$/);if(u)break;var v=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!v){Ae("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=v[0];var f=v[1];if(f!=="core"){var c=new nr(f);if(c.invalid){Ae("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),o();continue}}var h=v[2],d=!1;i=h;for(var y=[];;){var p=i.match(/^\s*$/);if(p)break;var g=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){Ae("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),d=!0;break}s=g[0];var m=g[1],b=g[2],w=e.properties[m];if(!w){Ae("Skipping property: Invalid property name in: "+s),l();continue}var T=r.parse(m,b);if(!T){Ae("Skipping property: Invalid property definition in: "+s),l();continue}y.push({name:m,val:b}),l()}if(d){o();break}r.selector(f);for(var E=0;E<y.length;E++){var x=y[E];r.css(x.name,x.val)}o()}return r};Ni.fromString=function(t){var e=this;return e.resetToDefault(),e.appendFromString(t),e};var et={};(function(){var t=He,e=Ml,r=Ol,a=Nl,n=zl,i=function(G){return"^"+G+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},s=function(G){var N=t+"|\\w+|"+e+"|"+r+"|"+a+"|"+n;return"^"+G+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+t+")\\s*\\,\\s*("+t+")\\s*,\\s*("+N+")\\s*\\,\\s*("+N+")\\)$"},o=[`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`,"^(none)$","^(.+)$"];et.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},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},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"]},linePosition:{enums:["center","inside","outside"]},lineJoin:{enums:["round","bevel","miter"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi","round-segments","round-taxi"]},radiusType:{enums:["arc-radius","influence-radius"],multiple:!0},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"]},cornerRadius:{number:!0,min:0,units:"px|em",implicitUnits:"px",enums:["auto"]},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(G,N){switch(G.length){case 2:return N[0]!=="deg"&&N[0]!=="rad"&&N[1]!=="deg"&&N[1]!=="rad";case 1:return fe(G[0])||N[0]==="deg"||N[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"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(G){var N=G.length;return N===1||N===2||N===4}}};var l={zeroNonZero:function(G,N){return(G==null||N==null)&&G!==N||G==0&&N!=0?!0:G!=0&&N==0},any:function(G,N){return G!=N},emptyNonEmpty:function(G,N){var H=tr(G),ee=tr(N);return H&&!ee||!H&&ee}},u=et.types,v=[{name:"label",type:u.text,triggersBounds:l.any,triggersZOrder:l.emptyNonEmpty},{name:"text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any}],f=[{name:"source-label",type:u.text,triggersBounds:l.any},{name:"source-text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"source-text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"source-text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"source-text-offset",type:u.size,triggersBounds:l.any}],c=[{name:"target-label",type:u.text,triggersBounds:l.any},{name:"target-text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"target-text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"target-text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"target-text-offset",type:u.size,triggersBounds:l.any}],h=[{name:"font-family",type:u.fontFamily,triggersBounds:l.any},{name:"font-style",type:u.fontStyle,triggersBounds:l.any},{name:"font-weight",type:u.fontWeight,triggersBounds:l.any},{name:"font-size",type:u.size,triggersBounds:l.any},{name:"text-transform",type:u.textTransform,triggersBounds:l.any},{name:"text-wrap",type:u.textWrap,triggersBounds:l.any},{name:"text-overflow-wrap",type:u.textOverflowWrap,triggersBounds:l.any},{name:"text-max-width",type:u.size,triggersBounds:l.any},{name:"text-outline-width",type:u.size,triggersBounds:l.any},{name:"line-height",type:u.positiveNumber,triggersBounds:l.any}],d=[{name:"text-valign",type:u.valign,triggersBounds:l.any},{name:"text-halign",type:u.halign,triggersBounds:l.any},{name:"color",type:u.color},{name:"text-outline-color",type:u.color},{name:"text-outline-opacity",type:u.zeroOneNumber},{name:"text-background-color",type:u.color},{name:"text-background-opacity",type:u.zeroOneNumber},{name:"text-background-padding",type:u.size,triggersBounds:l.any},{name:"text-border-opacity",type:u.zeroOneNumber},{name:"text-border-color",type:u.color},{name:"text-border-width",type:u.size,triggersBounds:l.any},{name:"text-border-style",type:u.borderStyle,triggersBounds:l.any},{name:"text-background-shape",type:u.textBackgroundShape,triggersBounds:l.any},{name:"text-justification",type:u.justification}],y=[{name:"events",type:u.bool,triggersZOrder:l.any},{name:"text-events",type:u.bool,triggersZOrder:l.any}],p=[{name:"display",type:u.display,triggersZOrder:l.any,triggersBounds:l.any,triggersBoundsOfConnectedEdges:!0},{name:"visibility",type:u.visibility,triggersZOrder:l.any},{name:"opacity",type:u.zeroOneNumber,triggersZOrder:l.zeroNonZero},{name:"text-opacity",type:u.zeroOneNumber},{name:"min-zoomed-font-size",type:u.size},{name:"z-compound-depth",type:u.zCompoundDepth,triggersZOrder:l.any},{name:"z-index-compare",type:u.zIndexCompare,triggersZOrder:l.any},{name:"z-index",type:u.number,triggersZOrder:l.any}],g=[{name:"overlay-padding",type:u.size,triggersBounds:l.any},{name:"overlay-color",type:u.color},{name:"overlay-opacity",type:u.zeroOneNumber,triggersBounds:l.zeroNonZero},{name:"overlay-shape",type:u.overlayShape,triggersBounds:l.any},{name:"overlay-corner-radius",type:u.cornerRadius}],m=[{name:"underlay-padding",type:u.size,triggersBounds:l.any},{name:"underlay-color",type:u.color},{name:"underlay-opacity",type:u.zeroOneNumber,triggersBounds:l.zeroNonZero},{name:"underlay-shape",type:u.overlayShape,triggersBounds:l.any},{name:"underlay-corner-radius",type:u.cornerRadius}],b=[{name:"transition-property",type:u.propList},{name:"transition-duration",type:u.time},{name:"transition-delay",type:u.time},{name:"transition-timing-function",type:u.easing}],w=function(G,N){return N.value==="label"?-G.poolIndex():N.pfValue},T=[{name:"height",type:u.nodeSize,triggersBounds:l.any,hashOverride:w},{name:"width",type:u.nodeSize,triggersBounds:l.any,hashOverride:w},{name:"shape",type:u.nodeShape,triggersBounds:l.any},{name:"shape-polygon-points",type:u.polygonPointList,triggersBounds:l.any},{name:"corner-radius",type:u.cornerRadius},{name:"background-color",type:u.color},{name:"background-fill",type:u.fill},{name:"background-opacity",type:u.zeroOneNumber},{name:"background-blacken",type:u.nOneOneNumber},{name:"background-gradient-stop-colors",type:u.colors},{name:"background-gradient-stop-positions",type:u.percentages},{name:"background-gradient-direction",type:u.gradientDirection},{name:"padding",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"padding-relative-to",type:u.paddingRelativeTo,triggersBounds:l.any},{name:"bounds-expansion",type:u.boundsExpansion,triggersBounds:l.any}],E=[{name:"border-color",type:u.color},{name:"border-opacity",type:u.zeroOneNumber},{name:"border-width",type:u.size,triggersBounds:l.any},{name:"border-style",type:u.borderStyle},{name:"border-cap",type:u.lineCap},{name:"border-join",type:u.lineJoin},{name:"border-dash-pattern",type:u.numbers},{name:"border-dash-offset",type:u.number},{name:"border-position",type:u.linePosition}],x=[{name:"outline-color",type:u.color},{name:"outline-opacity",type:u.zeroOneNumber},{name:"outline-width",type:u.size,triggersBounds:l.any},{name:"outline-style",type:u.borderStyle},{name:"outline-offset",type:u.size,triggersBounds:l.any}],S=[{name:"background-image",type:u.urls},{name:"background-image-crossorigin",type:u.bgCrossOrigin},{name:"background-image-opacity",type:u.zeroOneNumbers},{name:"background-image-containment",type:u.bgContainment},{name:"background-image-smoothing",type:u.bools},{name:"background-position-x",type:u.bgPos},{name:"background-position-y",type:u.bgPos},{name:"background-width-relative-to",type:u.bgRelativeTo},{name:"background-height-relative-to",type:u.bgRelativeTo},{name:"background-repeat",type:u.bgRepeat},{name:"background-fit",type:u.bgFit},{name:"background-clip",type:u.bgClip},{name:"background-width",type:u.bgWH},{name:"background-height",type:u.bgWH},{name:"background-offset-x",type:u.bgPos},{name:"background-offset-y",type:u.bgPos}],C=[{name:"position",type:u.position,triggersBounds:l.any},{name:"compound-sizing-wrt-labels",type:u.compoundIncludeLabels,triggersBounds:l.any},{name:"min-width",type:u.size,triggersBounds:l.any},{name:"min-width-bias-left",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-width-bias-right",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-height",type:u.size,triggersBounds:l.any},{name:"min-height-bias-top",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-height-bias-bottom",type:u.sizeMaybePercent,triggersBounds:l.any}],P=[{name:"line-style",type:u.lineStyle},{name:"line-color",type:u.color},{name:"line-fill",type:u.fill},{name:"line-cap",type:u.lineCap},{name:"line-opacity",type:u.zeroOneNumber},{name:"line-dash-pattern",type:u.numbers},{name:"line-dash-offset",type:u.number},{name:"line-outline-width",type:u.size},{name:"line-outline-color",type:u.color},{name:"line-gradient-stop-colors",type:u.colors},{name:"line-gradient-stop-positions",type:u.percentages},{name:"curve-style",type:u.curveStyle,triggersBounds:l.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:u.zeroOneNumber,triggersBounds:l.any},{name:"source-endpoint",type:u.edgeEndpoint,triggersBounds:l.any},{name:"target-endpoint",type:u.edgeEndpoint,triggersBounds:l.any},{name:"control-point-step-size",type:u.size,triggersBounds:l.any},{name:"control-point-distances",type:u.bidirectionalSizes,triggersBounds:l.any},{name:"control-point-weights",type:u.numbers,triggersBounds:l.any},{name:"segment-distances",type:u.bidirectionalSizes,triggersBounds:l.any},{name:"segment-weights",type:u.numbers,triggersBounds:l.any},{name:"segment-radii",type:u.numbers,triggersBounds:l.any},{name:"radius-type",type:u.radiusType,triggersBounds:l.any},{name:"taxi-turn",type:u.bidirectionalSizeMaybePercent,triggersBounds:l.any},{name:"taxi-turn-min-distance",type:u.size,triggersBounds:l.any},{name:"taxi-direction",type:u.axisDirection,triggersBounds:l.any},{name:"taxi-radius",type:u.number,triggersBounds:l.any},{name:"edge-distances",type:u.edgeDistances,triggersBounds:l.any},{name:"arrow-scale",type:u.positiveNumber,triggersBounds:l.any},{name:"loop-direction",type:u.angle,triggersBounds:l.any},{name:"loop-sweep",type:u.angle,triggersBounds:l.any},{name:"source-distance-from-node",type:u.size,triggersBounds:l.any},{name:"target-distance-from-node",type:u.size,triggersBounds:l.any}],B=[{name:"ghost",type:u.bool,triggersBounds:l.any},{name:"ghost-offset-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"ghost-offset-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"ghost-opacity",type:u.zeroOneNumber}],k=[{name:"selection-box-color",type:u.color},{name:"selection-box-opacity",type:u.zeroOneNumber},{name:"selection-box-border-color",type:u.color},{name:"selection-box-border-width",type:u.size},{name:"active-bg-color",type:u.color},{name:"active-bg-opacity",type:u.zeroOneNumber},{name:"active-bg-size",type:u.size},{name:"outside-texture-bg-color",type:u.color},{name:"outside-texture-bg-opacity",type:u.zeroOneNumber}],R=[];et.pieBackgroundN=16,R.push({name:"pie-size",type:u.sizeMaybePercent});for(var A=1;A<=et.pieBackgroundN;A++)R.push({name:"pie-"+A+"-background-color",type:u.color}),R.push({name:"pie-"+A+"-background-size",type:u.percent}),R.push({name:"pie-"+A+"-background-opacity",type:u.zeroOneNumber});var I=[],L=et.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:u.arrowShape,triggersBounds:l.any},{name:"arrow-color",type:u.color},{name:"arrow-fill",type:u.arrowFill},{name:"arrow-width",type:u.arrowWidth}].forEach(function(te){L.forEach(function(G){var N=G+"-"+te.name,H=te.type,ee=te.triggersBounds;I.push({name:N,type:H,triggersBounds:ee})})},{});var M=et.properties=[].concat(y,b,p,g,m,B,d,h,v,f,c,T,E,x,S,R,C,P,I,k),O=et.propertyGroups={behavior:y,transition:b,visibility:p,overlay:g,underlay:m,ghost:B,commonLabel:d,labelDimensions:h,mainLabel:v,sourceLabel:f,targetLabel:c,nodeBody:T,nodeBorder:E,nodeOutline:x,backgroundImage:S,pie:R,compound:C,edgeLine:P,edgeArrow:I,core:k},q=et.propertyGroupNames={},W=et.propertyGroupKeys=Object.keys(O);W.forEach(function(te){q[te]=O[te].map(function(G){return G.name}),O[te].forEach(function(G){return G.groupKey=te})});var V=et.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"segment-distance",pointsTo:"segment-distances"},{name:"segment-weight",pointsTo:"segment-weights"},{name:"segment-radius",pointsTo:"segment-radii"},{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"}];et.propertyNames=M.map(function(te){return te.name});for(var $=0;$<M.length;$++){var X=M[$];M[X.name]=X}for(var _=0;_<V.length;_++){var Q=V[_],Z=M[Q.pointsTo],j={name:Q.name,alias:!0,pointsTo:Z};M.push(j),M[Q.name]=j}})();et.getDefaultProperty=function(t){return this.getDefaultProperties()[t]};et.getDefaultProperties=function(){var t=this._private;if(t.defaultProperties!=null)return t.defaultProperties;for(var e=de({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,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","overlay-corner-radius":"auto","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","underlay-corner-radius":"auto","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","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","border-dash-pattern":[4,2],"border-dash-offset":0,"border-cap":"butt","border-join":"miter","border-position":"center","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","corner-radius":"auto","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,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},{"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(l,u){for(var v=1;v<=et.pieBackgroundN;v++){var f=u.name.replace("{{i}}",v),c=u.value;l[f]=c}return l},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-outline-width":0,"line-outline-color":"#000","line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"segment-radii":15,"radius-type":"arc-radius","taxi-turn":"50%","taxi-radius":15,"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(l,u){return et.arrowPrefixes.forEach(function(v){var f=v+"-"+u.name,c=u.value;l[f]=c}),l},{})),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};et.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":.25}),this.defaultLength=this.length};var On={};On.parse=function(t,e,r,a){var n=this;if($e(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,l=Po(t,o,s,i),u=n.propCache=n.propCache||[],v;return(v=u[l])||(v=u[l]=n.parseImplWarn(t,e,r,a)),(r||a==="mapping")&&(v=Nt(v),v&&(v.value=Nt(v.value))),v};On.parseImplWarn=function(t,e,r,a){var n=this.parseImpl(t,e,r,a);return!n&&e!=null&&Ae("The style property `".concat(t,": ").concat(e,"` is invalid")),n&&(n.name==="width"||n.name==="height")&&e==="label"&&Ae("The style value of `label` is deprecated for `"+n.name+"`"),n};On.parseImpl=function(t,e,r,a){var n=this;t=xi(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 l=fe(e);l&&(e=e.trim());var u=i.type;if(!u)return null;if(r&&(e===""||e===null))return{name:t,value:e,bypass:!0,deleteBypass:!0};if($e(e))return{name:t,value:e,strValue:"fn",mapped:o.fn,bypass:r};var v,f;if(!(!l||a||e.length<7||e[1]!=="a")){if(e.length>=7&&e[0]==="d"&&(v=new RegExp(o.data.regex).exec(e))){if(r)return!1;var c=o.data;return{name:t,value:v,strValue:""+e,mapped:c,field:v[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(f=new RegExp(o.mapData.regex).exec(e))){if(r||u.multiple)return!1;var h=o.mapData;if(!(u.color||u.number))return!1;var d=this.parse(t,f[4]);if(!d||d.mapped)return!1;var y=this.parse(t,f[5]);if(!y||y.mapped)return!1;if(d.pfValue===y.pfValue||d.strValue===y.strValue)return Ae("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+d.strValue+"`"),this.parse(t,d.strValue);if(u.color){var p=d.value,g=y.value,m=p[0]===g[0]&&p[1]===g[1]&&p[2]===g[2]&&(p[3]===g[3]||(p[3]==null||p[3]===1)&&(g[3]==null||g[3]===1));if(m)return!1}return{name:t,value:f,strValue:""+e,mapped:h,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:d.value,valueMax:y.value,bypass:r}}}if(u.multiple&&a!=="multiple"){var b;if(l?b=e.split(/\s+/):Ie(e)?b=e:b=[e],u.evenMultiple&&b.length%2!==0)return null;for(var w=[],T=[],E=[],x="",S=!1,C=0;C<b.length;C++){var P=n.parse(t,b[C],r,"multiple");S=S||fe(P.value),w.push(P.value),E.push(P.pfValue!=null?P.pfValue:P.value),T.push(P.units),x+=(C>0?" ":"")+P.strValue}return u.validate&&!u.validate(w,T)?null:u.singleEnum&&S?w.length===1&&fe(w[0])?{name:t,value:w[0],strValue:w[0],bypass:r}:null:{name:t,value:w,pfValue:E,strValue:x,bypass:r,units:T}}var B=function(){for(var G=0;G<u.enums.length;G++){var N=u.enums[G];if(N===e)return{name:t,value:e,strValue:""+e,bypass:r}}return null};if(u.number){var k,R="px";if(u.units&&(k=u.units),u.implicitUnits&&(R=u.implicitUnits),!u.unitless)if(l){var A="px|em"+(u.allowPercent?"|\\%":"");k&&(A=k);var I=e.match("^("+He+")("+A+")?$");I&&(e=I[1],k=I[2]||R)}else(!k||u.implicitUnits)&&(k=R);if(e=parseFloat(e),isNaN(e)&&u.enums===void 0)return null;if(isNaN(e)&&u.enums!==void 0)return e=s,B();if(u.integer&&!Dl(e)||u.min!==void 0&&(e<u.min||u.strictMin&&e===u.min)||u.max!==void 0&&(e>u.max||u.strictMax&&e===u.max))return null;var L={name:t,value:e,strValue:""+e+(k||""),units:k,bypass:r};return u.unitless||k!=="px"&&k!=="em"?L.pfValue=e:L.pfValue=k==="px"||!k?e:this.getEmSizeInPixels()*e,(k==="ms"||k==="s")&&(L.pfValue=k==="ms"?e:1e3*e),(k==="deg"||k==="rad")&&(L.pfValue=k==="rad"?e:sf(e)),k==="%"&&(L.pfValue=e/100),L}else if(u.propList){var M=[],O=""+e;if(O!=="none"){for(var q=O.split(/\s*,\s*|\s+/),W=0;W<q.length;W++){var V=q[W].trim();n.properties[V]?M.push(V):Ae("`"+V+"` is not a valid property name")}if(M.length===0)return null}return{name:t,value:M,strValue:M.length===0?"none":M.join(" "),bypass:r}}else if(u.color){var $=wo(e);return $?{name:t,value:$,pfValue:$,strValue:"rgb("+$[0]+","+$[1]+","+$[2]+")",bypass:r}:null}else if(u.regex||u.regexes){if(u.enums){var X=B();if(X)return X}for(var _=u.regexes?u.regexes:[u.regex],Q=0;Q<_.length;Q++){var Z=new RegExp(_[Q]),j=Z.exec(e);if(j)return{name:t,value:u.singleRegexMatchValue?j[1]:j,strValue:""+e,bypass:r}}return null}else return u.string?{name:t,value:""+e,strValue:""+e,bypass:r}:u.enums?B():null};var it=function t(e){if(!(this instanceof t))return new t(e);if(!wi(e)){qe("A style must have a core reference");return}this._private={cy:e,coreStyle:{}},this.length=0,this.resetToDefault()},ot=it.prototype;ot.instanceString=function(){return"style"};ot.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};ot.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this};ot.core=function(t){return this._private.coreStyle[t]||this.getDefaultProperty(t)};ot.selector=function(t){var e=t==="core"?null:new nr(t),r=this.length++;return this[r]={selector:e,properties:[],mappedProperties:[],index:r},this};ot.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[En(n.name)]),i!==void 0&&this.cssRule(n.name,i)}else e.length===2&&this.cssRule(e[0],e[1]);return this};ot.style=ot.css;ot.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};ot.append=function(t){return yo(t)?t.appendToStyle(this):Ie(t)?this.appendFromJson(t):fe(t)&&this.appendFromString(t),this};it.fromJson=function(t,e){var r=new it(t);return r.fromJson(e),r};it.fromString=function(t,e){return new it(t).fromString(e)};[ut,Ia,Oi,Ft,In,Ni,et,On].forEach(function(t){de(ot,t)});it.types=ot.types;it.properties=ot.properties;it.propertyGroups=ot.propertyGroups;it.propertyGroupNames=ot.propertyGroupNames;it.propertyGroupKeys=ot.propertyGroupKeys;var Cg={style:function(e){if(e){var r=this.setStyle(e);r.update()}return this._private.style},setStyle:function(e){var r=this._private;return yo(e)?r.style=e.generateStyle(this):Ie(e)?r.style=it.fromJson(this,e):fe(e)?r.style=it.fromString(this,e):r.style=it(this),r.style},updateStyle:function(){this.mutableElements().updateStyle()}},Sg="single",xr={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=Sg),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(fe(e[0]))return a=e[0],r[a];if(ke(e[0])){if(!this._private.panningEnabled)return this;i=e[0],s=i.x,o=i.y,re(s)&&(r.x=s),re(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")&&re(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,l,u;if(!this._private.panningEnabled)return this;switch(a.length){case 1:ke(e)&&(o=a[0],l=o.x,u=o.y,re(l)&&(n.x+=l),re(u)&&(n.y+=u),this.emit("pan viewport"));break;case 2:i=e,s=r,(i==="x"||i==="y")&&re(s)&&(n[i]+=s),this.emit("pan viewport");break}return this.notify("viewport"),this},gc:function(){this.notify("gc")},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(re(e)&&r===void 0&&(r=e,e=void 0),!(!this._private.panningEnabled||!this._private.zoomingEnabled)){var a;if(fe(e)){var n=e;e=this.$(n)}else if(Bl(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 xt(e)||(e=this.mutableElements());if(!(xt(e)&&e.empty())){a=a||e.boundingBox();var s=this.width(),o=this.height(),l;if(r=re(r)?r:0,!isNaN(s)&&!isNaN(o)&&s>0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((s-2*r)/a.w,(o-2*r)/a.h),l=l>this._private.maxZoom?this._private.maxZoom:l,l=l<this._private.minZoom?this._private.minZoom:l;var u={x:(s-l*(a.x1+a.x2))/2,y:(o-l*(a.y1+a.y2))/2};return{zoom:l,pan:u}}}}},zoomRange:function(e,r){var a=this._private;if(r==null){var n=e;e=n.min,r=n.max}return re(e)&&re(r)&&e<=r?(a.minZoom=e,a.maxZoom=r):re(e)&&r===void 0&&e<=a.maxZoom?a.minZoom=e:re(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),re(e)?s=e:ke(e)&&(s=e.level,e.position!=null?i=Sn(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||!re(s)||s===n||i!=null&&(!re(i.x)||!re(i.y)))return null;if(i!=null){var l=a,u=n,v=s,f={x:-v/u*(i.x-l.x)+i.x,y:-v/u*(i.y-l.y)+i.y};return{zoomed:!0,panned:!0,zoom:v,pan:f}}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(re(e.zoom)||(a=!1),ke(e.pan)||(n=!1),!a&&!n)return this;if(a){var l=e.zoom;l<r.minZoom||l>r.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=l,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var u=e.pan;re(u.x)&&(r.pan.x=u.x,o=!1),re(u.y)&&(r.pan.y=u.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(fe(e)){var a=e;e=this.mutableElements().filter(a)}else xt(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={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")}}():{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}};xr.centre=xr.center;xr.autolockNodes=xr.autolock;xr.autoungrabifyNodes=xr.autoungrabify;var Da={data:Be.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Be.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Be.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Be.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Da.attr=Da.data;Da.removeAttr=Da.removeData;var ka=function(e){var r=this;e=de({},e);var a=e.container;a&&!vn(a)&&vn(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=We!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=de({name:s?"grid":"null"},o.layout),o.renderer=de({name:s?"canvas":"null"},o.renderer);var l=function(d,y,p){return y!==void 0?y:p!==void 0?p:d},u=this._private={container:a,ready:!1,options:o,elements:new rt(this),listeners:[],aniEles:new rt(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(!0,o.zoomingEnabled),userZoomingEnabled:l(!0,o.userZoomingEnabled),panningEnabled:l(!0,o.panningEnabled),userPanningEnabled:l(!0,o.userPanningEnabled),boxSelectionEnabled:l(!0,o.boxSelectionEnabled),autolock:l(!1,o.autolock,o.autolockNodes),autoungrabify:l(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:l(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:re(o.zoom)?o.zoom:1,pan:{x:ke(o.pan)&&re(o.pan.x)?o.pan.x:0,y:ke(o.pan)&&re(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:l(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var v=function(d,y){var p=d.some(Al);if(p)return Wr.all(d).then(y);y(d)};u.styleEnabled&&r.setStyle([]);var f=de({},o,o.renderer);r.initRenderer(f);var c=function(d,y,p){r.notifications(!1);var g=r.mutableElements();g.length>0&&g.remove(),d!=null&&(ke(d)||Ie(d))&&r.add(d),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=de({},r._private.options.layout);m.eles=r.elements(),r.layout(m).run()};v([o.style,o.elements],function(h){var d=h[0],y=h[1];u.styleEnabled&&r.style().append(d),c(y,function(){r.startAnimationLoop(),u.ready=!0,$e(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)})},yn=ka.prototype;de(yn,{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 We;var r=this._private.container.ownerDocument;return r===void 0||r==null?We:r.defaultView||We},mount:function(e){if(e!=null){var r=this,a=r._private,n=a.options;return!vn(e)&&vn(e[0])&&(e=e[0]),r.stopAnimationLoop(),r.destroyRenderer(),a.container=e,a.styleEnabled=!0,r.invalidateSize(),r.initRenderer(de({},n,n.renderer,{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 Nt(this._private.options)},json:function(e){var r=this,a=r._private,n=r.mutableElements(),i=function(w){return r.getElementById(w.id())};if(ke(e)){if(r.startBatch(),e.elements){var s={},o=function(w,T){for(var E=[],x=[],S=0;S<w.length;S++){var C=w[S];if(!C.data.id){Ae("cy.json() cannot handle elements without an ID attribute");continue}var P=""+C.data.id,B=r.getElementById(P);s[P]=!0,B.length!==0?x.push({ele:B,json:C}):(T&&(C.group=T),E.push(C))}r.add(E);for(var k=0;k<x.length;k++){var R=x[k],A=R.ele,I=R.json;A.json(I)}};if(Ie(e.elements))o(e.elements);else for(var l=["nodes","edges"],u=0;u<l.length;u++){var v=l[u],f=e.elements[v];Ie(f)&&o(f,v)}var c=r.collection();n.filter(function(b){return!s[b.id()]}).forEach(function(b){b.isParent()?c.merge(b):b.remove()}),c.forEach(function(b){return b.children().move({parent:null})}),c.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 h=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],d=0;d<h.length;d++){var y=h[d];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 w=b.group();g.elements[w]||(g.elements[w]=[]),g.elements[w].push(b.json())})),this._private.styleEnabled&&(g.style=r.style().json()),g.data=Nt(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=Nt(a.pan),g.boxSelectionEnabled=a.boxSelectionEnabled,g.renderer=Nt(m.renderer),g.hideEdgesOnViewport=m.hideEdgesOnViewport,g.textureOnViewport=m.textureOnViewport,g.wheelSensitivity=m.wheelSensitivity,g.motionBlur=m.motionBlur,g.multiClickDebounceTime=m.multiClickDebounceTime,g}}});yn.$id=yn.getElementById;[hg,bg,bu,li,sn,xg,vi,on,Cg,xr,Da].forEach(function(t){de(yn,t)});var Dg={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}},kg={maximal:!1,acyclic:!1},Pr=function(e){return e.scratch("breadthfirst")},qs=function(e,r){return e.scratch("breadthfirst",r)};function wu(t){this.options=de({},Dg,kg,t)}wu.prototype.run=function(){var t=this.options,e=t.cy,r=t.eles,a=r.nodes().filter(function(le){return le.isChildless()}),n=r,i=t.directed,s=t.acyclic||t.maximal||t.maximalAdjustments>0,o=!!t.boundingBox,l=e.extent(),u=pt(o?t.boundingBox:{x1:l.x1,y1:l.y1,w:l.w,h:l.h}),v;if(xt(t.roots))v=t.roots;else if(Ie(t.roots)){for(var f=[],c=0;c<t.roots.length;c++){var h=t.roots[c],d=e.getElementById(h);f.push(d)}v=e.collection(f)}else if(fe(t.roots))v=e.$(t.roots);else if(i)v=a.roots();else{var y=r.components();v=e.collection();for(var p=function(oe){var pe=y[oe],ye=pe.maxDegree(!1),he=pe.filter(function(me){return me.degree(!1)===ye});v=v.add(he)},g=0;g<y.length;g++)p(g)}var m=[],b={},w=function(oe,pe){m[pe]==null&&(m[pe]=[]);var ye=m[pe].length;m[pe].push(oe),qs(oe,{index:ye,depth:pe})},T=function(oe,pe){var ye=Pr(oe),he=ye.depth,me=ye.index;m[he][me]=null,oe.isChildless()&&w(oe,pe)};n.bfs({roots:v,directed:t.directed,visit:function(oe,pe,ye,he,me){var Ee=oe[0],Se=Ee.id();Ee.isChildless()&&w(Ee,me),b[Se]=!0}});for(var E=[],x=0;x<a.length;x++){var S=a[x];b[S.id()]||E.push(S)}var C=function(oe){for(var pe=m[oe],ye=0;ye<pe.length;ye++){var he=pe[ye];if(he==null){pe.splice(ye,1),ye--;continue}qs(he,{depth:oe,index:ye})}},P=function(oe,pe){for(var ye=Pr(oe),he=oe.incomers().filter(function(U){return U.isNode()&&r.has(U)}),me=-1,Ee=oe.id(),Se=0;Se<he.length;Se++){var J=he[Se],D=Pr(J);me=Math.max(me,D.depth)}if(ye.depth<=me){if(!t.acyclic&&pe[Ee])return null;var z=me+1;return T(oe,z),pe[Ee]=z,!0}return!1};if(i&&s){var B=[],k={},R=function(oe){return B.push(oe)},A=function(){return B.shift()};for(a.forEach(function(le){return B.push(le)});B.length>0;){var I=A(),L=P(I,k);if(L)I.outgoers().filter(function(le){return le.isNode()&&r.has(le)}).forEach(R);else if(L===null){Ae("Detected double maximal shift for node `"+I.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var M=0;if(t.avoidOverlap)for(var O=0;O<a.length;O++){var q=a[O],W=q.layoutDimensions(t),V=W.w,$=W.h;M=Math.max(M,V,$)}var X={},_=function(oe){if(X[oe.id()])return X[oe.id()];for(var pe=Pr(oe).depth,ye=oe.neighborhood(),he=0,me=0,Ee=0;Ee<ye.length;Ee++){var Se=ye[Ee];if(!(Se.isEdge()||Se.isParent()||!a.has(Se))){var J=Pr(Se);if(J!=null){var D=J.index,z=J.depth;if(!(D==null||z==null)){var U=m[z].length;z<pe&&(he+=D/U,me++)}}}}return me=Math.max(1,me),he=he/me,me===0&&(he=0),X[oe.id()]=he,he},Q=function(oe,pe){var ye=_(oe),he=_(pe),me=ye-he;return me===0?bo(oe.id(),pe.id()):me};t.depthSort!==void 0&&(Q=t.depthSort);for(var Z=m.length,j=0;j<Z;j++)m[j].sort(Q),C(j);for(var te=[],G=0;G<E.length;G++)te.push(E[G]);var N=function(){for(var oe=0;oe<Z;oe++)C(oe)};te.length&&(m.unshift(te),Z=m.length,N());for(var H=0,ee=0;ee<Z;ee++)H=Math.max(m[ee].length,H);var ie={x:u.x1+u.w/2,y:u.y1+u.h/2},ue=a.reduce(function(le,oe){return function(pe){return{w:le.w===-1?pe.w:(le.w+pe.w)/2,h:le.h===-1?pe.h:(le.h+pe.h)/2}}(oe.boundingBox({includeLabels:t.nodeDimensionsIncludeLabels}))},{w:-1,h:-1}),Ce=Math.max(Z===1?0:o?(u.h-t.padding*2-ue.h)/(Z-1):(u.h-t.padding*2-ue.h)/(Z+1),M),Re=m.reduce(function(le,oe){return Math.max(le,oe.length)},0),Le=function(oe){var pe=Pr(oe),ye=pe.depth,he=pe.index;if(t.circle){var me=Math.min(u.w/2/Z,u.h/2/Z);me=Math.max(me,M);var Ee=me*ye+me-(Z>0&&m[0].length<=3?me/2:0),Se=2*Math.PI/m[ye].length*he;return ye===0&&m[0].length===1&&(Ee=1),{x:ie.x+Ee*Math.cos(Se),y:ie.y+Ee*Math.sin(Se)}}else{var J=m[ye].length,D=Math.max(J===1?0:o?(u.w-t.padding*2-ue.w)/((t.grid?Re:J)-1):(u.w-t.padding*2-ue.w)/((t.grid?Re:J)+1),M),z={x:ie.x+(he+1-(J+1)/2)*D,y:ie.y+(ye+1-(Z+1)/2)*Ce};return z}};return r.nodes().layoutPositions(this,t,Le),this};var Pg={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function xu(t){this.options=de({},Pg,t)}xu.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=pt(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},l=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,u=l/Math.max(1,i.length-1),v,f=0,c=0;c<i.length;c++){var h=i[c],d=h.layoutDimensions(e),y=d.w,p=d.h;f=Math.max(f,y,p)}if(re(e.radius)?v=e.radius:i.length<=1?v=0:v=Math.min(s.h,s.w)/2-f,i.length>1&&e.avoidOverlap){f*=1.75;var g=Math.cos(u)-Math.cos(0),m=Math.sin(u)-Math.sin(0),b=Math.sqrt(f*f/(g*g+m*m));v=Math.max(b,v)}var w=function(E,x){var S=e.startAngle+x*u*(n?1:-1),C=v*Math.cos(S),P=v*Math.sin(S),B={x:o.x+C,y:o.y+P};return B};return a.nodes().layoutPositions(this,e,w),this};var Bg={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function Eu(t){this.options=de({},Bg,t)}Eu.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=pt(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},l=[],u=0,v=0;v<i.length;v++){var f=i[v],c=void 0;c=e.concentric(f),l.push({value:c,node:f}),f._private.scratch.concentric=c}i.updateStyle();for(var h=0;h<i.length;h++){var d=i[h],y=d.layoutDimensions(e);u=Math.max(u,y.w,y.h)}l.sort(function(ue,Ce){return Ce.value-ue.value});for(var p=e.levelWidth(i),g=[[]],m=g[0],b=0;b<l.length;b++){var w=l[b];if(m.length>0){var T=Math.abs(m[0].value-w.value);T>=p&&(m=[],g.push(m))}m.push(w)}var E=u+e.minNodeSpacing;if(!e.avoidOverlap){var x=g.length>0&&g[0].length>1,S=Math.min(s.w,s.h)/2-E,C=S/(g.length+x?1:0);E=Math.min(E,C)}for(var P=0,B=0;B<g.length;B++){var k=g[B],R=e.sweep===void 0?2*Math.PI-2*Math.PI/k.length:e.sweep,A=k.dTheta=R/Math.max(1,k.length-1);if(k.length>1&&e.avoidOverlap){var I=Math.cos(A)-Math.cos(0),L=Math.sin(A)-Math.sin(0),M=Math.sqrt(E*E/(I*I+L*L));P=Math.max(M,P)}k.r=P,P+=E}if(e.equidistant){for(var O=0,q=0,W=0;W<g.length;W++){var V=g[W],$=V.r-q;O=Math.max(O,$)}q=0;for(var X=0;X<g.length;X++){var _=g[X];X===0&&(q=_.r),_.r=q,q+=O}}for(var Q={},Z=0;Z<g.length;Z++)for(var j=g[Z],te=j.dTheta,G=j.r,N=0;N<j.length;N++){var H=j[N],ee=e.startAngle+(r?1:-1)*te*N,ie={x:o.x+G*Math.cos(ee),y:o.y+G*Math.sin(ee)};Q[H.node.id()]=ie}return n.nodes().layoutPositions(this,e,function(ue){var Ce=ue.id();return Q[Ce]}),this};var Zn,Ag={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,r){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function Nn(t){this.options=de({},Ag,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(u){return u.data("id")===i}),l=e.some(function(u){return u.data("id")===s});return!o||!l});this.options.eles=this.options.eles.not(a)}Nn.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?Zn=!0:Zn=!1;var a=Rg(e,r,t);Zn&&Ig(a),t.randomize&&Og(a);var n=Wt(),i=function(){Ng(a,e,t),t.fit===!0&&e.fit(t.padding)},s=function(c){return!(r.stopped||c>=t.numIter||(zg(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 c=t.eles.nodes(),h=Tu(a,t,c);c.layoutPositions(r,t,h)}},l=0,u=!0;if(t.animate===!0){var v=function f(){for(var c=0;u&&c<t.refresh;)u=s(l),l++,c++;if(!u)Ks(a,t),o();else{var h=Wt();h-n>=t.animationThreshold&&i(),fn(f)}};v()}else{for(;u;)u=s(l),l++;Ks(a,t),o()}return this};Nn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};Nn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Rg=function(e,r,a){for(var n=a.eles.edges(),i=a.eles.nodes(),s=pt(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},l=a.eles.components(),u={},v=0;v<l.length;v++)for(var f=l[v],c=0;c<f.length;c++){var h=f[c];u[h.id()]=v}for(var v=0;v<o.nodeSize;v++){var d=i[v],y=d.layoutDimensions(a),p={};p.isLocked=d.locked(),p.id=d.data("id"),p.parentId=d.data("parent"),p.cmptId=u[d.id()],p.children=[],p.positionX=d.position("x"),p.positionY=d.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(d.style("padding")),p.padRight=parseFloat(d.style("padding")),p.padTop=parseFloat(d.style("padding")),p.padBottom=parseFloat(d.style("padding")),p.nodeRepulsion=$e(a.nodeRepulsion)?a.nodeRepulsion(d):a.nodeRepulsion,o.layoutNodes.push(p),o.idToIndex[p.id]=v}for(var g=[],m=0,b=-1,w=[],v=0;v<o.nodeSize;v++){var d=o.layoutNodes[v],T=d.parentId;T!=null?o.layoutNodes[o.idToIndex[T]].children.push(d.id):(g[++b]=d.id,w.push(d.id))}for(o.graphSet.push(w);m<=b;){var E=g[m++],x=o.idToIndex[E],h=o.layoutNodes[x],S=h.children;if(S.length>0){o.graphSet.push(S);for(var v=0;v<S.length;v++)g[++b]=S[v]}}for(var v=0;v<o.graphSet.length;v++)for(var C=o.graphSet[v],c=0;c<C.length;c++){var P=o.idToIndex[C[c]];o.indexToGraph[P]=v}for(var v=0;v<o.edgeSize;v++){var B=n[v],k={};k.id=B.data("id"),k.sourceId=B.data("source"),k.targetId=B.data("target");var R=$e(a.idealEdgeLength)?a.idealEdgeLength(B):a.idealEdgeLength,A=$e(a.edgeElasticity)?a.edgeElasticity(B):a.edgeElasticity,I=o.idToIndex[k.sourceId],L=o.idToIndex[k.targetId],M=o.indexToGraph[I],O=o.indexToGraph[L];if(M!=O){for(var q=Lg(k.sourceId,k.targetId,o),W=o.graphSet[q],V=0,p=o.layoutNodes[I];W.indexOf(p.id)===-1;)p=o.layoutNodes[o.idToIndex[p.parentId]],V++;for(p=o.layoutNodes[L];W.indexOf(p.id)===-1;)p=o.layoutNodes[o.idToIndex[p.parentId]],V++;R*=V*a.nestingFactor}k.idealLength=R,k.elasticity=A,o.layoutEdges.push(k)}return o},Lg=function(e,r,a){var n=Mg(e,r,0,a);return 2>n.count?0:n.graph},Mg=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 l=i[o],u=n.idToIndex[l],v=n.layoutNodes[u].children;if(v.length!==0){var f=n.indexToGraph[n.idToIndex[v[0]]],c=t(e,r,f,n);if(c.count!==0)if(c.count===1){if(s++,s===2)break}else return c}}return{count:s,graph:a}},Ig,Og=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)}},Tu=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 l=e.layoutNodes[e.idToIndex[s.data("id")]];if(r.boundingBox){var u=(l.positionX-i.x1)/i.w,v=(l.positionY-i.y1)/i.h;return{x:n.x1+u*n.w,y:n.y1+v*n.h}}else return{x:l.positionX,y:l.positionY}}},Ng=function(e,r,a){var n=a.layout,i=a.eles.nodes(),s=Tu(e,a,i);i.positions(s),e.ready!==!0&&(e.ready=!0,n.one("layoutready",a.ready),n.emit({type:"layoutready",layout:this}))},zg=function(e,r,a){Fg(e,r),$g(e),Kg(e,r),Gg(e),Wg(e)},Fg=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]]],l=s+1;l<i;l++){var u=e.layoutNodes[e.idToIndex[n[l]]];Vg(o,u,e,r)}},$s=function(e){return-1+2*e*Math.random()},Vg=function(e,r,a,n){var i=e.cmptId,s=r.cmptId;if(!(i!==s&&!a.isCompound)){var o=r.positionX-e.positionX,l=r.positionY-e.positionY,u=1;o===0&&l===0&&(o=$s(u),l=$s(u));var v=qg(e,r,o,l);if(v>0)var f=n.nodeOverlap*v,c=Math.sqrt(o*o+l*l),h=f*o/c,d=f*l/c;else var y=mn(e,o,l),p=mn(r,-1*o,-1*l),g=p.x-y.x,m=p.y-y.y,b=g*g+m*m,c=Math.sqrt(b),f=(e.nodeRepulsion+r.nodeRepulsion)/b,h=f*g/c,d=f*m/c;e.isLocked||(e.offsetX-=h,e.offsetY-=d),r.isLocked||(r.offsetX+=h,r.offsetY+=d)}},qg=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},mn=function(e,r,a){var n=e.positionX,i=e.positionY,s=e.height||1,o=e.width||1,l=a/r,u=s/o,v={};return r===0&&0<a||r===0&&0>a?(v.x=n,v.y=i+s/2,v):0<r&&-1*u<=l&&l<=u?(v.x=n+o/2,v.y=i+o*a/2/r,v):0>r&&-1*u<=l&&l<=u?(v.x=n-o/2,v.y=i-o*a/2/r,v):0<a&&(l<=-1*u||l>=u)?(v.x=n+s*r/2/a,v.y=i+s/2,v):(0>a&&(l<=-1*u||l>=u)&&(v.x=n-s*r/2/a,v.y=i-s/2),v)},$g=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],l=e.layoutNodes[o],u=l.positionX-s.positionX,v=l.positionY-s.positionY;if(!(u===0&&v===0)){var f=mn(s,u,v),c=mn(l,-1*u,-1*v),h=c.x-f.x,d=c.y-f.y,y=Math.sqrt(h*h+d*d),p=Math.pow(n.idealLength-y,2)/n.elasticity;if(y!==0)var g=p*h/y,m=p*d/y;else var g=0,m=0;s.isLocked||(s.offsetX+=g,s.offsetY+=m),l.isLocked||(l.offsetX-=g,l.offsetY-=m)}}},Kg=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,l=e.clientWidth/2;else var u=e.layoutNodes[e.idToIndex[i[0]]],v=e.layoutNodes[e.idToIndex[u.parentId]],o=v.positionX,l=v.positionY;for(var f=0;f<s;f++){var c=e.layoutNodes[e.idToIndex[i[f]]];if(!c.isLocked){var h=o-c.positionX,d=l-c.positionY,y=Math.sqrt(h*h+d*d);if(y>a){var p=r.gravity*h/y,g=r.gravity*d/y;c.offsetX+=p,c.offsetY+=g}}}}},Gg=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],l=e.layoutNodes[o],u=l.children;if(0<u.length&&!l.isLocked){for(var v=l.offsetX,f=l.offsetY,c=0;c<u.length;c++){var h=e.layoutNodes[e.idToIndex[u[c]]];h.offsetX+=v,h.offsetY+=f,a[++i]=u[c]}l.offsetX=0,l.offsetY=0}}},Wg=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=Hg(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,Ug(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)}},Hg=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},Ug=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)}},Ks=function(e,r){for(var a=e.layoutNodes,n=[],i=0;i<a.length;i++){var s=a[i],o=s.cmptId,l=n[o]=n[o]||[];l.push(s)}for(var u=0,i=0;i<n.length;i++){var v=n[i];if(v){v.x1=1/0,v.x2=-1/0,v.y1=1/0,v.y2=-1/0;for(var f=0;f<v.length;f++){var c=v[f];v.x1=Math.min(v.x1,c.positionX-c.width/2),v.x2=Math.max(v.x2,c.positionX+c.width/2),v.y1=Math.min(v.y1,c.positionY-c.height/2),v.y2=Math.max(v.y2,c.positionY+c.height/2)}v.w=v.x2-v.x1,v.h=v.y2-v.y1,u+=v.w*v.h}}n.sort(function(m,b){return b.w*b.h-m.w*m.h});for(var h=0,d=0,y=0,p=0,g=Math.sqrt(u)*e.clientWidth/e.clientHeight,i=0;i<n.length;i++){var v=n[i];if(v){for(var f=0;f<v.length;f++){var c=v[f];c.isLocked||(c.positionX+=h-v.x1,c.positionY+=d-v.y1)}h+=v.w+r.componentSpacing,y+=v.w+r.componentSpacing,p=Math.max(p,v.h),y>g&&(d+=p+r.componentSpacing,h=0,y=0,p=0)}}},Xg={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function Cu(t){this.options=de({},Xg,t)}Cu.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=pt(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(X){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),l=Math.round(o),u=Math.round(i.w/i.h*o),v=function(_){if(_==null)return Math.min(l,u);var Q=Math.min(l,u);Q==l?l=_:u=_},f=function(_){if(_==null)return Math.max(l,u);var Q=Math.max(l,u);Q==l?l=_:u=_},c=e.rows,h=e.cols!=null?e.cols:e.columns;if(c!=null&&h!=null)l=c,u=h;else if(c!=null&&h==null)l=c,u=Math.ceil(s/l);else if(c==null&&h!=null)u=h,l=Math.ceil(s/u);else if(u*l>s){var d=v(),y=f();(d-1)*y>=s?v(d-1):(y-1)*d>=s&&f(y-1)}else for(;u*l<s;){var p=v(),g=f();(g+1)*p>=s?f(g+1):v(p+1)}var m=i.w/u,b=i.h/l;if(e.condense&&(m=0,b=0),e.avoidOverlap)for(var w=0;w<n.length;w++){var T=n[w],E=T._private.position;(E.x==null||E.y==null)&&(E.x=0,E.y=0);var x=T.layoutDimensions(e),S=e.avoidOverlapPadding,C=x.w+S,P=x.h+S;m=Math.max(m,C),b=Math.max(b,P)}for(var B={},k=function(_,Q){return!!B["c-"+_+"-"+Q]},R=function(_,Q){B["c-"+_+"-"+Q]=!0},A=0,I=0,L=function(){I++,I>=u&&(I=0,A++)},M={},O=0;O<n.length;O++){var q=n[O],W=e.position(q);if(W&&(W.row!==void 0||W.col!==void 0)){var V={row:W.row,col:W.col};if(V.col===void 0)for(V.col=0;k(V.row,V.col);)V.col++;else if(V.row===void 0)for(V.row=0;k(V.row,V.col);)V.row++;M[q.id()]=V,R(V.row,V.col)}}var $=function(_,Q){var Z,j;if(_.locked()||_.isParent())return!1;var te=M[_.id()];if(te)Z=te.col*m+m/2+i.x1,j=te.row*b+b/2+i.y1;else{for(;k(A,I);)L();Z=I*m+m/2+i.x1,j=A*b+b/2+i.y1,R(A,I),L()}return{x:Z,y:j}};n.layoutPositions(this,e,$)}return this};var Yg={ready:function(){},stop:function(){}};function zi(t){this.options=de({},Yg,t)}zi.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};zi.prototype.stop=function(){return this};var _g={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function Su(t){this.options=de({},_g,t)}Su.prototype.run=function(){var t=this.options,e=t.eles,r=e.nodes(),a=$e(t.positions);function n(i){if(t.positions==null)return ef(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 Zg={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function Du(t){this.options=de({},Zg,t)}Du.prototype.run=function(){var t=this.options,e=t.cy,r=t.eles,a=pt(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 Qg=[{name:"breadthfirst",impl:wu},{name:"circle",impl:xu},{name:"concentric",impl:Eu},{name:"cose",impl:Nn},{name:"grid",impl:Cu},{name:"null",impl:zi},{name:"preset",impl:Su},{name:"random",impl:Du}];function ku(t){this.options=t,this.notifications=0}var Gs=function(){},Ws=function(){throw new Error("A headless instance can not render images")};ku.prototype={recalculateRenderedStyle:Gs,notify:function(){this.notifications++},init:Gs,isHeadless:function(){return!0},png:Ws,jpg:Ws};var Fi={};Fi.arrowShapeWidth=.3;Fi.registerArrowShapes=function(){var t=this.arrowShapes={},e=this,r=function(u,v,f,c,h,d,y){var p=h.x-f/2-y,g=h.x+f/2+y,m=h.y-f/2-y,b=h.y+f/2+y,w=p<=u&&u<=g&&m<=v&&v<=b;return w},a=function(u,v,f,c,h){var d=u*Math.cos(c)-v*Math.sin(c),y=u*Math.sin(c)+v*Math.cos(c),p=d*f,g=y*f,m=p+h.x,b=g+h.y;return{x:m,y:b}},n=function(u,v,f,c){for(var h=[],d=0;d<u.length;d+=2){var y=u[d],p=u[d+1];h.push(a(y,p,v,f,c))}return h},i=function(u){for(var v=[],f=0;f<u.length;f++){var c=u[f];v.push(c.x,c.y)}return v},s=function(u){return u.pstyle("width").pfValue*u.pstyle("arrow-scale").pfValue*2},o=function(u,v){fe(v)&&(v=t[v]),t[u]=de({name:u,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(c,h,d,y,p,g){var m=i(n(this.points,d+2*g,y,p)),b=gt(c,h,m);return b},roughCollide:r,draw:function(c,h,d,y){var p=n(this.points,h,d,y);e.arrowShapeImpl("polygon")(c,p)},spacing:function(c){return 0},gap:s},v)};o("none",{collide:cn,roughCollide:cn,draw:Ti,spacing:es,gap:es}),o("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),o("arrow","triangle"),o("triangle-backcurve",{points:t.triangle.points,controlPoint:[0,-.15],roughCollide:r,draw:function(u,v,f,c,h){var d=n(this.points,v,f,c),y=this.controlPoint,p=a(y[0],y[1],v,f,c);e.arrowShapeImpl(this.name)(u,d,p)},gap:function(u){return s(u)*.8}}),o("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(u,v,f,c,h,d,y){var p=i(n(this.points,f+2*y,c,h)),g=i(n(this.pointsTee,f+2*y,c,h)),m=gt(u,v,p)||gt(u,v,g);return m},draw:function(u,v,f,c,h){var d=n(this.points,v,f,c),y=n(this.pointsTee,v,f,c);e.arrowShapeImpl(this.name)(u,d,y)}}),o("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(u,v,f,c,h,d,y){var p=h,g=Math.pow(p.x-u,2)+Math.pow(p.y-v,2)<=Math.pow((f+2*y)*this.radius,2),m=i(n(this.points,f+2*y,c,h));return gt(u,v,m)||g},draw:function(u,v,f,c,h){var d=n(this.pointsTr,v,f,c);e.arrowShapeImpl(this.name)(u,d,c.x,c.y,this.radius*v)},spacing:function(u){return e.getArrowWidth(u.pstyle("width").pfValue,u.pstyle("arrow-scale").value)*this.radius}}),o("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(u,v){var f=this.baseCrossLinePts.slice(),c=v/u,h=3,d=5;return f[h]=f[h]-c,f[d]=f[d]-c,f},collide:function(u,v,f,c,h,d,y){var p=i(n(this.points,f+2*y,c,h)),g=i(n(this.crossLinePts(f,d),f+2*y,c,h)),m=gt(u,v,p)||gt(u,v,g);return m},draw:function(u,v,f,c,h){var d=n(this.points,v,f,c),y=n(this.crossLinePts(v,h),v,f,c);e.arrowShapeImpl(this.name)(u,d,y)}}),o("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(u){return s(u)*.525}}),o("circle",{radius:.15,collide:function(u,v,f,c,h,d,y){var p=h,g=Math.pow(p.x-u,2)+Math.pow(p.y-v,2)<=Math.pow((f+2*y)*this.radius,2);return g},draw:function(u,v,f,c,h){e.arrowShapeImpl(this.name)(u,c.x,c.y,this.radius*v)},spacing:function(u){return e.getArrowWidth(u.pstyle("width").pfValue,u.pstyle("arrow-scale").value)*this.radius}}),o("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(u){return 1},gap:function(u){return 1}}),o("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),o("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(u){return u.pstyle("width").pfValue*u.pstyle("arrow-scale").value}}),o("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(u){return .95*u.pstyle("width").pfValue*u.pstyle("arrow-scale").value}})};var Tr={};Tr.projectIntoViewport=function(t,e){var r=this.cy,a=this.findContainerClientCoords(),n=a[0],i=a[1],s=a[4],o=r.pan(),l=r.zoom(),u=((t-n)/s-o.x)/l,v=((e-i)/s-o.y)/l;return[u,v]};Tr.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,l=n.left+n.right,u=n.top+n.bottom,v=i.left+i.right,f=e.width/(s+v),c=s-l,h=o-u,d=e.left+n.left+i.left,y=e.top+n.top+i.top;return this.containerBB=[d,y,c,h,f]};Tr.invalidateContainerClientCoordsCache=function(){this.containerBB=null};Tr.findNearestElement=function(t,e,r,a){return this.findNearestElements(t,e,r,a)[0]};Tr.findNearestElements=function(t,e,r,a){var n=this,i=this,s=i.getCachedZSortedEles(),o=[],l=i.cy.zoom(),u=i.cy.hasCompoundNodes(),v=(a?24:8)/l,f=(a?8:2)/l,c=(a?8:2)/l,h=1/0,d,y;r&&(s=s.interactive);function p(x,S){if(x.isNode()){if(y)return;y=x,o.push(x)}if(x.isEdge()&&(S==null||S<h))if(d){if(d.pstyle("z-compound-depth").value===x.pstyle("z-compound-depth").value&&d.pstyle("z-compound-depth").value===x.pstyle("z-compound-depth").value){for(var C=0;C<o.length;C++)if(o[C].isEdge()){o[C]=x,d=x,h=S??h;break}}}else o.push(x),d=x,h=S??h}function g(x){var S=x.outerWidth()+2*f,C=x.outerHeight()+2*f,P=S/2,B=C/2,k=x.position(),R=x.pstyle("corner-radius").value==="auto"?"auto":x.pstyle("corner-radius").pfValue,A=x._private.rscratch;if(k.x-P<=t&&t<=k.x+P&&k.y-B<=e&&e<=k.y+B){var I=i.nodeShapes[n.getNodeShape(x)];if(I.checkPoint(t,e,0,S,C,k.x,k.y,R,A))return p(x,0),!0}}function m(x){var S=x._private,C=S.rscratch,P=x.pstyle("width").pfValue,B=x.pstyle("arrow-scale").value,k=P/2+v,R=k*k,A=k*2,O=S.source,q=S.target,I;if(C.edgeType==="segments"||C.edgeType==="straight"||C.edgeType==="haystack"){for(var L=C.allpts,M=0;M+3<L.length;M+=2)if(hf(t,e,L[M],L[M+1],L[M+2],L[M+3],A)&&R>(I=bf(t,e,L[M],L[M+1],L[M+2],L[M+3])))return p(x,I),!0}else if(C.edgeType==="bezier"||C.edgeType==="multibezier"||C.edgeType==="self"||C.edgeType==="compound"){for(var L=C.allpts,M=0;M+5<C.allpts.length;M+=4)if(gf(t,e,L[M],L[M+1],L[M+2],L[M+3],L[M+4],L[M+5],A)&&R>(I=mf(t,e,L[M],L[M+1],L[M+2],L[M+3],L[M+4],L[M+5])))return p(x,I),!0}for(var O=O||S.source,q=q||S.target,W=n.getArrowWidth(P,B),V=[{name:"source",x:C.arrowStartX,y:C.arrowStartY,angle:C.srcArrowAngle},{name:"target",x:C.arrowEndX,y:C.arrowEndY,angle:C.tgtArrowAngle},{name:"mid-source",x:C.midX,y:C.midY,angle:C.midsrcArrowAngle},{name:"mid-target",x:C.midX,y:C.midY,angle:C.midtgtArrowAngle}],M=0;M<V.length;M++){var $=V[M],X=i.arrowShapes[x.pstyle($.name+"-arrow-shape").value],_=x.pstyle("width").pfValue;if(X.roughCollide(t,e,W,$.angle,{x:$.x,y:$.y},_,v)&&X.collide(t,e,W,$.angle,{x:$.x,y:$.y},_,v))return p(x),!0}u&&o.length>0&&(g(O),g(q))}function b(x,S,C){return Bt(x,S,C)}function w(x,S){var C=x._private,P=c,B;S?B=S+"-":B="",x.boundingBox();var k=C.labelBounds[S||"main"],R=x.pstyle(B+"label").value,A=x.pstyle("text-events").strValue==="yes";if(!(!A||!R)){var I=b(C.rscratch,"labelX",S),L=b(C.rscratch,"labelY",S),M=b(C.rscratch,"labelAngle",S),O=x.pstyle(B+"text-margin-x").pfValue,q=x.pstyle(B+"text-margin-y").pfValue,W=k.x1-P-O,V=k.x2+P-O,$=k.y1-P-q,X=k.y2+P-q;if(M){var _=Math.cos(M),Q=Math.sin(M),Z=function(ie,ue){return ie=ie-I,ue=ue-L,{x:ie*_-ue*Q+I,y:ie*Q+ue*_+L}},j=Z(W,$),te=Z(W,X),G=Z(V,$),N=Z(V,X),H=[j.x+O,j.y+q,G.x+O,G.y+q,N.x+O,N.y+q,te.x+O,te.y+q];if(gt(t,e,H))return p(x),!0}else if(Vr(k,t,e))return p(x),!0}}for(var T=s.length-1;T>=0;T--){var E=s[T];E.isNode()?g(E)||w(E):m(E)||w(E)||w(E,"source")||w(E,"target")}return o};Tr.getAllInBox=function(t,e,r,a){var n=this.getCachedZSortedEles().interactive,i=[],s=Math.min(t,r),o=Math.max(t,r),l=Math.min(e,a),u=Math.max(e,a);t=s,r=o,e=l,a=u;for(var v=pt({x1:t,y1:e,x2:r,y2:a}),f=0;f<n.length;f++){var c=n[f];if(c.isNode()){var h=c,d=h.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});Di(v,d)&&!No(d,v)&&i.push(h)}else{var y=c,p=y._private,g=p.rscratch;if(g.startX!=null&&g.startY!=null&&!Vr(v,g.startX,g.startY)||g.endX!=null&&g.endY!=null&&!Vr(v,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,w=0;w<m.length;w++)if(!df(v,m[w])){b=!1;break}b&&i.push(y)}else(g.edgeType==="haystack"||g.edgeType==="straight")&&i.push(y)}}return i};var bn={};bn.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",l,u,v,f,c,h,g,m;if(r?(v=e.haystackPts[0],f=e.haystackPts[1],c=e.haystackPts[2],h=e.haystackPts[3]):(v=e.arrowStartX,f=e.arrowStartY,c=e.arrowEndX,h=e.arrowEndY),g=e.midX,m=e.midY,i)l=v-e.segpts[0],u=f-e.segpts[1];else if(n||s||o||a){var d=e.allpts,y=Qe(d[0],d[2],d[4],.1),p=Qe(d[1],d[3],d[5],.1);l=v-y,u=f-p}else l=v-g,u=f-m;e.srcArrowAngle=$a(l,u);var g=e.midX,m=e.midY;if(r&&(g=(v+c)/2,m=(f+h)/2),l=c-v,u=h-f,i){var d=e.allpts;if(d.length/2%2===0){var b=d.length/2,w=b-2;l=d[b]-d[w],u=d[b+1]-d[w+1]}else if(e.isRound)l=e.midVector[1],u=-e.midVector[0];else{var b=d.length/2-1,w=b-2;l=d[b]-d[w],u=d[b+1]-d[w+1]}}else if(n||s||o){var d=e.allpts,T=e.ctrlpts,E,x,S,C;if(T.length/2%2===0){var P=d.length/2-1,B=P+2,k=B+2;E=Qe(d[P],d[B],d[k],0),x=Qe(d[P+1],d[B+1],d[k+1],0),S=Qe(d[P],d[B],d[k],1e-4),C=Qe(d[P+1],d[B+1],d[k+1],1e-4)}else{var B=d.length/2-1,P=B-2,k=B+2;E=Qe(d[P],d[B],d[k],.4999),x=Qe(d[P+1],d[B+1],d[k+1],.4999),S=Qe(d[P],d[B],d[k],.5),C=Qe(d[P+1],d[B+1],d[k+1],.5)}l=S-E,u=C-x}if(e.midtgtArrowAngle=$a(l,u),e.midDispX=l,e.midDispY=u,l*=-1,u*=-1,i){var d=e.allpts;if(d.length/2%2!==0){if(!e.isRound){var b=d.length/2-1,R=b+2;l=-(d[R]-d[b]),u=-(d[R+1]-d[b+1])}}}if(e.midsrcArrowAngle=$a(l,u),i)l=c-e.segpts[e.segpts.length-2],u=h-e.segpts[e.segpts.length-1];else if(n||s||o||a){var d=e.allpts,A=d.length,y=Qe(d[A-6],d[A-4],d[A-2],.9),p=Qe(d[A-5],d[A-3],d[A-1],.9);l=c-y,u=h-p}else l=c-g,u=h-m;e.tgtArrowAngle=$a(l,u)};bn.getArrowWidth=bn.getArrowHeight=function(t,e){var r=this.arrowWidthCache=this.arrowWidthCache||{},a=r[t+", "+e];return a||(a=Math.max(Math.pow(t*13.37,.9),29)*e,r[t+", "+e]=a,a)};var fi,ci,Ot={},Tt={},Hs,Us,gr,un,Gt,fr,hr,It,Br,Za,Pu,Bu,di,hi,Xs,Ys=function(e,r,a){a.x=r.x-e.x,a.y=r.y-e.y,a.len=Math.sqrt(a.x*a.x+a.y*a.y),a.nx=a.x/a.len,a.ny=a.y/a.len,a.ang=Math.atan2(a.ny,a.nx)},Jg=function(e,r){r.x=e.x*-1,r.y=e.y*-1,r.nx=e.nx*-1,r.ny=e.ny*-1,r.ang=e.ang>0?-(Math.PI-e.ang):Math.PI+e.ang},jg=function(e,r,a,n,i){if(e!==Xs?Ys(r,e,Ot):Jg(Tt,Ot),Ys(r,a,Tt),Hs=Ot.nx*Tt.ny-Ot.ny*Tt.nx,Us=Ot.nx*Tt.nx-Ot.ny*-Tt.ny,Gt=Math.asin(Math.max(-1,Math.min(1,Hs))),Math.abs(Gt)<1e-6){fi=r.x,ci=r.y,hr=Br=0;return}gr=1,un=!1,Us<0?Gt<0?Gt=Math.PI+Gt:(Gt=Math.PI-Gt,gr=-1,un=!0):Gt>0&&(gr=-1,un=!0),r.radius!==void 0?Br=r.radius:Br=n,fr=Gt/2,Za=Math.min(Ot.len/2,Tt.len/2),i?(It=Math.abs(Math.cos(fr)*Br/Math.sin(fr)),It>Za?(It=Za,hr=Math.abs(It*Math.sin(fr)/Math.cos(fr))):hr=Br):(It=Math.min(Za,Br),hr=Math.abs(It*Math.sin(fr)/Math.cos(fr))),di=r.x+Tt.nx*It,hi=r.y+Tt.ny*It,fi=di-Tt.ny*hr*gr,ci=hi+Tt.nx*hr*gr,Pu=r.x+Ot.nx*It,Bu=r.y+Ot.ny*It,Xs=r};function Au(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function Vi(t,e,r,a){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return a===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(jg(t,e,r,a,n),{cx:fi,cy:ci,radius:hr,startX:Pu,startY:Bu,stopX:di,stopY:hi,startAngle:Ot.ang+Math.PI/2*gr,endAngle:Tt.ang-Math.PI/2*gr,counterClockwise:un})}var lt={};lt.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"),l=s.units!=null&&o.units!=null,u=function(T,E,x,S){var C=S-E,P=x-T,B=Math.sqrt(P*P+C*C);return{x:-C/B,y:P/B}},v=t.pstyle("edge-distances").value;switch(v){case"node-position":i=r;break;case"intersection":i=a;break;case"endpoints":{if(l){var f=this.manualEndptToPx(t.source()[0],s),c=Je(f,2),h=c[0],d=c[1],y=this.manualEndptToPx(t.target()[0],o),p=Je(y,2),g=p[0],m=p[1],b={x1:h,y1:d,x2:g,y2:m};n=u(h,d,g,m),i=b}else Ae("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}};lt.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,l=s.position(),u=o.position(),v=s.width(),f=o.width(),c=s.height(),h=o.height(),d=r.pstyle("haystack-radius").value,y=d/2;n.haystackPts=n.allpts=[n.source.x*v*y+l.x,n.source.y*c*y+l.y,n.target.x*f*y+u.x,n.target.y*h*y+u.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)}};lt.findSegmentsPoints=function(t,e){var r=t._private.rscratch,a=t.pstyle("segment-weights"),n=t.pstyle("segment-distances"),i=t.pstyle("segment-radii"),s=t.pstyle("radius-type"),o=Math.min(a.pfValue.length,n.pfValue.length),l=i.pfValue[i.pfValue.length-1],u=s.pfValue[s.pfValue.length-1];r.edgeType="segments",r.segpts=[],r.radii=[],r.isArcRadius=[];for(var v=0;v<o;v++){var f=a.pfValue[v],c=n.pfValue[v],h=1-f,d=f,y=this.findMidptPtsEtc(t,e),p=y.midptPts,g=y.vectorNormInverse,m={x:p.x1*h+p.x2*d,y:p.y1*h+p.y2*d};r.segpts.push(m.x+g.x*c,m.y+g.y*c),r.radii.push(i.pfValue[v]!==void 0?i.pfValue[v]:l),r.isArcRadius.push((s.pfValue[v]!==void 0?s.pfValue[v]:u)==="arc-radius")}};lt.findLoopPoints=function(t,e,r,a){var n=t._private.rscratch,i=e.dirCounts,s=e.srcPos,o=t.pstyle("control-point-distances"),l=o?o.pfValue[0]:void 0,u=t.pstyle("loop-direction").pfValue,v=t.pstyle("loop-sweep").pfValue,f=t.pstyle("control-point-step-size").pfValue;n.edgeType="self";var c=r,h=f;a&&(c=0,h=l);var d=u-Math.PI/2,y=d-v/2,p=d+v/2,g=u+"_"+v;c=i[g]===void 0?i[g]=0:++i[g],n.ctrlpts=[s.x+Math.cos(y)*1.4*h*(c/3+1),s.y+Math.sin(y)*1.4*h*(c/3+1),s.x+Math.cos(p)*1.4*h*(c/3+1),s.y+Math.sin(p)*1.4*h*(c/3+1)]};lt.findCompoundLoopPoints=function(t,e,r,a){var n=t._private.rscratch;n.edgeType="compound";var i=e.srcPos,s=e.tgtPos,o=e.srcW,l=e.srcH,u=e.tgtW,v=e.tgtH,f=t.pstyle("control-point-step-size").pfValue,c=t.pstyle("control-point-distances"),h=c?c.pfValue[0]:void 0,d=r,y=f;a&&(d=0,y=h);var p=50,g={x:i.x-o/2,y:i.y-l/2},m={x:s.x-u/2,y:s.y-v/2},b={x:Math.min(g.x,m.x),y:Math.min(g.y,m.y)},w=.5,T=Math.max(w,Math.log(o*.01)),E=Math.max(w,Math.log(u*.01));n.ctrlpts=[b.x,b.y-(1+Math.pow(p,1.12)/100)*y*(d/3+1)*T,b.x-(1+Math.pow(p,1.12)/100)*y*(d/3+1)*E,b.y]};lt.findStraightEdgePoints=function(t){t._private.rscratch.edgeType="straight"};lt.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"),l=t.pstyle("control-point-weights"),u=o&&l?Math.min(o.value.length,l.value.length):1,v=o?o.pfValue[0]:void 0,f=l.value[0],c=a;i.edgeType=c?"multibezier":"bezier",i.ctrlpts=[];for(var h=0;h<u;h++){var d=(.5-e.eles.length/2+r)*s*(n?-1:1),y=void 0,p=Io(d);c&&(v=o?o.pfValue[h]:s,f=l.value[h]),a?y=v:y=v!==void 0?p*v:void 0;var g=y!==void 0?y:d,m=1-f,b=f,w=this.findMidptPtsEtc(t,e),T=w.midptPts,E=w.vectorNormInverse,x={x:T.x1*m+T.x2*b,y:T.y1*m+T.y2*b};i.ctrlpts.push(x.x+E.x*g,x.y+E.y*g)}};lt.findTaxiPoints=function(t,e){var r=t._private.rscratch;r.edgeType="segments";var a="vertical",n="horizontal",i="leftward",s="rightward",o="downward",l="upward",u="auto",v=e.posPts,f=e.srcW,c=e.srcH,h=e.tgtW,d=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"),w=b.units==="%",T=b.pfValue,E=T<0,x=t.pstyle("taxi-turn-min-distance").pfValue,S=p?(f+h)/2:0,C=p?(c+d)/2:0,P=v.x2-v.x1,B=v.y2-v.y1,k=function(Y,ne){return Y>0?Math.max(Y-ne,0):Math.min(Y+ne,0)},R=k(P,S),A=k(B,C),I=!1;m===u?g=Math.abs(R)>Math.abs(A)?n:a:m===l||m===o?(g=a,I=!0):(m===i||m===s)&&(g=n,I=!0);var L=g===a,M=L?A:R,O=L?B:P,q=Io(O),W=!1;!(I&&(w||E))&&(m===o&&O<0||m===l&&O>0||m===i&&O>0||m===s&&O<0)&&(q*=-1,M=q*Math.abs(M),W=!0);var V;if(w){var $=T<0?1+T:T;V=$*M}else{var X=T<0?M:0;V=X+T*q}var _=function(Y){return Math.abs(Y)<x||Math.abs(Y)>=Math.abs(M)},Q=_(V),Z=_(Math.abs(M)-Math.abs(V)),j=Q||Z;if(j&&!W)if(L){var te=Math.abs(O)<=c/2,G=Math.abs(P)<=h/2;if(te){var N=(v.x1+v.x2)/2,H=v.y1,ee=v.y2;r.segpts=[N,H,N,ee]}else if(G){var ie=(v.y1+v.y2)/2,ue=v.x1,Ce=v.x2;r.segpts=[ue,ie,Ce,ie]}else r.segpts=[v.x1,v.y2]}else{var Re=Math.abs(O)<=f/2,Le=Math.abs(B)<=d/2;if(Re){var le=(v.y1+v.y2)/2,oe=v.x1,pe=v.x2;r.segpts=[oe,le,pe,le]}else if(Le){var ye=(v.x1+v.x2)/2,he=v.y1,me=v.y2;r.segpts=[ye,he,ye,me]}else r.segpts=[v.x2,v.y1]}else if(L){var Ee=v.y1+V+(p?c/2*q:0),Se=v.x1,J=v.x2;r.segpts=[Se,Ee,J,Ee]}else{var D=v.x1+V+(p?f/2*q:0),z=v.y1,U=v.y2;r.segpts=[D,z,D,U]}if(r.isRound){var F=t.pstyle("taxi-radius").value,K=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(F),r.isArcRadius=new Array(r.segpts.length/2).fill(K)}};lt.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,l=e.tgtH,u=e.srcShape,v=e.tgtShape,f=e.srcCornerRadius,c=e.tgtCornerRadius,h=e.srcRs,d=e.tgtRs,y=!re(r.startX)||!re(r.startY),p=!re(r.arrowStartX)||!re(r.arrowStartY),g=!re(r.endX)||!re(r.endY),m=!re(r.arrowEndX)||!re(r.arrowEndY),b=3,w=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,T=b*w,E=mr({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),x=E<T,S=mr({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.endX,y:r.endY}),C=S<T,P=!1;if(y||p||x){P=!0;var B={x:r.ctrlpts[0]-a.x,y:r.ctrlpts[1]-a.y},k=Math.sqrt(B.x*B.x+B.y*B.y),R={x:B.x/k,y:B.y/k},A=Math.max(i,s),I={x:r.ctrlpts[0]+R.x*2*A,y:r.ctrlpts[1]+R.y*2*A},L=u.intersectLine(a.x,a.y,i,s,I.x,I.y,0,f,h);x?(r.ctrlpts[0]=r.ctrlpts[0]+R.x*(T-E),r.ctrlpts[1]=r.ctrlpts[1]+R.y*(T-E)):(r.ctrlpts[0]=L[0]+R.x*T,r.ctrlpts[1]=L[1]+R.y*T)}if(g||m||C){P=!0;var M={x:r.ctrlpts[0]-n.x,y:r.ctrlpts[1]-n.y},O=Math.sqrt(M.x*M.x+M.y*M.y),q={x:M.x/O,y:M.y/O},W=Math.max(i,s),V={x:r.ctrlpts[0]+q.x*2*W,y:r.ctrlpts[1]+q.y*2*W},$=v.intersectLine(n.x,n.y,o,l,V.x,V.y,0,c,d);C?(r.ctrlpts[0]=r.ctrlpts[0]+q.x*(T-S),r.ctrlpts[1]=r.ctrlpts[1]+q.y*(T-S)):(r.ctrlpts[0]=$[0]+q.x*T,r.ctrlpts[1]=$[1]+q.y*T)}P&&this.findEndpoints(t)}};lt.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=.5,e.midX=Qe(e.allpts[a],e.allpts[a+2],e.allpts[a+4],n),e.midY=Qe(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.isRound){e.roundCorners=[];for(var i=2;i+3<e.allpts.length;i+=2){var s=e.radii[i/2-1],o=e.isArcRadius[i/2-1];e.roundCorners.push(Vi({x:e.allpts[i-2],y:e.allpts[i-1]},{x:e.allpts[i],y:e.allpts[i+1],radius:s},{x:e.allpts[i+2],y:e.allpts[i+3]},s,o))}}if(e.segpts.length%4===0){var l=e.segpts.length/2,u=l-2;e.midX=(e.segpts[u]+e.segpts[l])/2,e.midY=(e.segpts[u+1]+e.segpts[l+1])/2}else{var v=e.segpts.length/2-1;if(!e.isRound)e.midX=e.segpts[v],e.midY=e.segpts[v+1];else{var f={x:e.segpts[v],y:e.segpts[v+1]},c=e.roundCorners[v/2],h=[f.x-c.cx,f.y-c.cy],d=c.radius/Math.sqrt(Math.pow(h[0],2)+Math.pow(h[1],2));h=h.map(function(y){return y*d}),e.midX=c.cx+h[0],e.midY=c.cy+h[1],e.midVector=h}}}};lt.checkForInvalidEdgeWarning=function(t){var e=t[0]._private.rscratch;e.nodesOverlap||re(e.startX)&&re(e.startY)&&re(e.endX)&&re(e.endY)?e.loggedErr=!1:e.loggedErr||(e.loggedErr=!0,Ae("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."))};lt.findEdgeControlPoints=function(t){var e=this;if(!(!t||t.length===0)){for(var r=this,a=r.cy,n=a.hasCompoundNodes(),i={map:new zt,get:function(x){var S=this.map.get(x[0]);return S!=null?S.get(x[1]):null},set:function(x,S){var C=this.map.get(x[0]);C==null&&(C=new zt,this.map.set(x[0],C)),C.set(x[1],S)}},s=[],o=[],l=0;l<t.length;l++){var u=t[l],v=u._private,f=u.pstyle("curve-style").value;if(!(u.removed()||!u.takesUpSpace())){if(f==="haystack"){o.push(u);continue}var c=f==="unbundled-bezier"||f.endsWith("segments")||f==="straight"||f==="straight-triangle"||f.endsWith("taxi"),h=f==="unbundled-bezier"||f==="bezier",d=v.source,y=v.target,p=d.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(u),c&&(b.hasUnbundled=!0),h&&(b.hasBezier=!0)}}for(var w=function(x){var S=s[x],C=i.get(S),P=void 0;if(!C.hasUnbundled){var B=C.eles[0].parallelEdges().filter(function(D){return D.isBundledBezier()});Ci(C.eles),B.forEach(function(D){return C.eles.push(D)}),C.eles.sort(function(D,z){return D.poolIndex()-z.poolIndex()})}var k=C.eles[0],R=k.source(),A=k.target();if(R.poolIndex()>A.poolIndex()){var I=R;R=A,A=I}var L=C.srcPos=R.position(),M=C.tgtPos=A.position(),O=C.srcW=R.outerWidth(),q=C.srcH=R.outerHeight(),W=C.tgtW=A.outerWidth(),V=C.tgtH=A.outerHeight(),$=C.srcShape=r.nodeShapes[e.getNodeShape(R)],X=C.tgtShape=r.nodeShapes[e.getNodeShape(A)],_=C.srcCornerRadius=R.pstyle("corner-radius").value==="auto"?"auto":R.pstyle("corner-radius").pfValue,Q=C.tgtCornerRadius=A.pstyle("corner-radius").value==="auto"?"auto":A.pstyle("corner-radius").pfValue,Z=C.tgtRs=A._private.rscratch,j=C.srcRs=R._private.rscratch;C.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var te=0;te<C.eles.length;te++){var G=C.eles[te],N=G[0]._private.rscratch,H=G.pstyle("curve-style").value,ee=H==="unbundled-bezier"||H.endsWith("segments")||H.endsWith("taxi"),ie=!R.same(G.source());if(!C.calculatedIntersection&&R!==A&&(C.hasBezier||C.hasUnbundled)){C.calculatedIntersection=!0;var ue=$.intersectLine(L.x,L.y,O,q,M.x,M.y,0,_,j),Ce=C.srcIntn=ue,Re=X.intersectLine(M.x,M.y,W,V,L.x,L.y,0,Q,Z),Le=C.tgtIntn=Re,le=C.intersectionPts={x1:ue[0],x2:Re[0],y1:ue[1],y2:Re[1]},oe=C.posPts={x1:L.x,x2:M.x,y1:L.y,y2:M.y},pe=Re[1]-ue[1],ye=Re[0]-ue[0],he=Math.sqrt(ye*ye+pe*pe),me=C.vector={x:ye,y:pe},Ee=C.vectorNorm={x:me.x/he,y:me.y/he},Se={x:-Ee.y,y:Ee.x};C.nodesOverlap=!re(he)||X.checkPoint(ue[0],ue[1],0,W,V,M.x,M.y,Q,Z)||$.checkPoint(Re[0],Re[1],0,O,q,L.x,L.y,_,j),C.vectorNormInverse=Se,P={nodesOverlap:C.nodesOverlap,dirCounts:C.dirCounts,calculatedIntersection:!0,hasBezier:C.hasBezier,hasUnbundled:C.hasUnbundled,eles:C.eles,srcPos:M,srcRs:Z,tgtPos:L,tgtRs:j,srcW:W,srcH:V,tgtW:O,tgtH:q,srcIntn:Le,tgtIntn:Ce,srcShape:X,tgtShape:$,posPts:{x1:oe.x2,y1:oe.y2,x2:oe.x1,y2:oe.y1},intersectionPts:{x1:le.x2,y1:le.y2,x2:le.x1,y2:le.y1},vector:{x:-me.x,y:-me.y},vectorNorm:{x:-Ee.x,y:-Ee.y},vectorNormInverse:{x:-Se.x,y:-Se.y}}}var J=ie?P:C;N.nodesOverlap=J.nodesOverlap,N.srcIntn=J.srcIntn,N.tgtIntn=J.tgtIntn,N.isRound=H.startsWith("round"),n&&(R.isParent()||R.isChild()||A.isParent()||A.isChild())&&(R.parents().anySame(A)||A.parents().anySame(R)||R.same(A)&&R.isParent())?e.findCompoundLoopPoints(G,J,te,ee):R===A?e.findLoopPoints(G,J,te,ee):H.endsWith("segments")?e.findSegmentsPoints(G,J):H.endsWith("taxi")?e.findTaxiPoints(G,J):H==="straight"||!ee&&C.eles.length%2===1&&te===Math.floor(C.eles.length/2)?e.findStraightEdgePoints(G):e.findBezierPoints(G,J,te,ee,ie),e.findEndpoints(G),e.tryToCorrectInvalidPoints(G,J),e.checkForInvalidEdgeWarning(G),e.storeAllpts(G),e.storeEdgeProjections(G),e.calculateArrowAngles(G),e.recalculateEdgeLabelProjections(G),e.calculateLabelAngles(G)}},T=0;T<s.length;T++)w(T);this.findHaystackPoints(o)}};function Ru(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}}lt.getSegmentPoints=function(t){var e=t[0]._private.rscratch;this.recalculateRenderedStyle(t);var r=e.edgeType;if(r==="segments")return Ru(e.segpts)};lt.getControlPoints=function(t){var e=t[0]._private.rscratch;this.recalculateRenderedStyle(t);var r=e.edgeType;if(r==="bezier"||r==="multibezier"||r==="self"||r==="compound")return Ru(e.ctrlpts)};lt.getEdgeMidpoint=function(t){var e=t[0]._private.rscratch;return this.recalculateRenderedStyle(t),{x:e.midX,y:e.midY}};var Oa={};Oa.manualEndptToPx=function(t,e){var r=this,a=t.position(),n=t.outerWidth(),i=t.outerHeight(),s=t._private.rscratch;if(e.value.length===2){var o=[e.pfValue[0],e.pfValue[1]];return e.units[0]==="%"&&(o[0]=o[0]*n),e.units[1]==="%"&&(o[1]=o[1]*i),o[0]+=a.x,o[1]+=a.y,o}else{var l=e.pfValue[0];l=-Math.PI/2+l;var u=2*Math.max(n,i),v=[a.x+Math.cos(l)*u,a.y+Math.sin(l)*u];return r.nodeShapes[this.getNodeShape(t)].intersectLine(a.x,a.y,n,i,v[0],v[1],0,t.pstyle("corner-radius").value==="auto"?"auto":t.pstyle("corner-radius").pfValue,s)}};Oa.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,l=t.pstyle("source-arrow-shape").value,u=t.pstyle("target-distance-from-node").pfValue,v=t.pstyle("source-distance-from-node").pfValue,f=a._private.rscratch,c=n._private.rscratch,h=t.pstyle("curve-style").value,d=t._private.rscratch,y=d.edgeType,p=h==="taxi",g=y==="self"||y==="compound",m=y==="bezier"||y==="multibezier"||g,b=y!=="bezier",w=y==="straight"||y==="segments",T=y==="segments",E=m||b||w,x=g||p,S=t.pstyle("source-endpoint"),C=x?"outside-to-node":S.value,P=a.pstyle("corner-radius").value==="auto"?"auto":a.pstyle("corner-radius").pfValue,B=t.pstyle("target-endpoint"),k=x?"outside-to-node":B.value,R=n.pstyle("corner-radius").value==="auto"?"auto":n.pstyle("corner-radius").pfValue;d.srcManEndpt=S,d.tgtManEndpt=B;var A,I,L,M;if(m){var O=[d.ctrlpts[0],d.ctrlpts[1]],q=b?[d.ctrlpts[d.ctrlpts.length-2],d.ctrlpts[d.ctrlpts.length-1]]:O;A=q,I=O}else if(w){var W=T?d.segpts.slice(0,2):[s.x,s.y],V=T?d.segpts.slice(d.segpts.length-2):[i.x,i.y];A=V,I=W}if(k==="inside-to-node")r=[s.x,s.y];else if(B.units)r=this.manualEndptToPx(n,B);else if(k==="outside-to-line")r=d.tgtIntn;else if(k==="outside-to-node"||k==="outside-to-node-or-label"?L=A:(k==="outside-to-line"||k==="outside-to-line-or-label")&&(L=[i.x,i.y]),r=e.nodeShapes[this.getNodeShape(n)].intersectLine(s.x,s.y,n.outerWidth(),n.outerHeight(),L[0],L[1],0,R,c),k==="outside-to-node-or-label"||k==="outside-to-line-or-label"){var $=n._private.rscratch,X=$.labelWidth,_=$.labelHeight,Q=$.labelX,Z=$.labelY,j=X/2,te=_/2,G=n.pstyle("text-valign").value;G==="top"?Z-=te:G==="bottom"&&(Z+=te);var N=n.pstyle("text-halign").value;N==="left"?Q-=j:N==="right"&&(Q+=j);var H=Ea(L[0],L[1],[Q-j,Z-te,Q+j,Z-te,Q+j,Z+te,Q-j,Z+te],s.x,s.y);if(H.length>0){var ee=i,ie=cr(ee,Lr(r)),ue=cr(ee,Lr(H)),Ce=ie;if(ue<ie&&(r=H,Ce=ue),H.length>2){var Re=cr(ee,{x:H[2],y:H[3]});Re<Ce&&(r=[H[2],H[3]])}}}var Le=Ka(r,A,e.arrowShapes[o].spacing(t)+u),le=Ka(r,A,e.arrowShapes[o].gap(t)+u);if(d.endX=le[0],d.endY=le[1],d.arrowEndX=Le[0],d.arrowEndY=Le[1],C==="inside-to-node")r=[i.x,i.y];else if(S.units)r=this.manualEndptToPx(a,S);else if(C==="outside-to-line")r=d.srcIntn;else if(C==="outside-to-node"||C==="outside-to-node-or-label"?M=I:(C==="outside-to-line"||C==="outside-to-line-or-label")&&(M=[s.x,s.y]),r=e.nodeShapes[this.getNodeShape(a)].intersectLine(i.x,i.y,a.outerWidth(),a.outerHeight(),M[0],M[1],0,P,f),C==="outside-to-node-or-label"||C==="outside-to-line-or-label"){var oe=a._private.rscratch,pe=oe.labelWidth,ye=oe.labelHeight,he=oe.labelX,me=oe.labelY,Ee=pe/2,Se=ye/2,J=a.pstyle("text-valign").value;J==="top"?me-=Se:J==="bottom"&&(me+=Se);var D=a.pstyle("text-halign").value;D==="left"?he-=Ee:D==="right"&&(he+=Ee);var z=Ea(M[0],M[1],[he-Ee,me-Se,he+Ee,me-Se,he+Ee,me+Se,he-Ee,me+Se],i.x,i.y);if(z.length>0){var U=s,F=cr(U,Lr(r)),K=cr(U,Lr(z)),ae=F;if(K<F&&(r=[z[0],z[1]],ae=K),z.length>2){var Y=cr(U,{x:z[2],y:z[3]});Y<ae&&(r=[z[2],z[3]])}}}var ne=Ka(r,I,e.arrowShapes[l].spacing(t)+v),ce=Ka(r,I,e.arrowShapes[l].gap(t)+v);d.startX=ce[0],d.startY=ce[1],d.arrowStartX=ne[0],d.arrowStartY=ne[1],E&&(!re(d.startX)||!re(d.startY)||!re(d.endX)||!re(d.endY)?d.badLine=!0:d.badLine=!1)};Oa.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}}};Oa.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 qi={};function ep(t,e,r){for(var a=function(u,v,f,c){return Qe(u,v,f,c)},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)})}}qi.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)ep(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};qi.recalculateEdgeProjections=function(t){this.findEdgeControlPoints(t)};var Vt={};Vt.recalculateNodeLabelProjection=function(t){var e=t.pstyle("label").strValue;if(!tr(e)){var r,a,n=t._private,i=t.width(),s=t.height(),o=t.padding(),l=t.position(),u=t.pstyle("text-halign").strValue,v=t.pstyle("text-valign").strValue,f=n.rscratch,c=n.rstyle;switch(u){case"left":r=l.x-i/2-o;break;case"right":r=l.x+i/2+o;break;default:r=l.x}switch(v){case"top":a=l.y-s/2-o;break;case"bottom":a=l.y+s/2+o;break;default:a=l.y}f.labelX=r,f.labelY=a,c.labelX=r,c.labelY=a,this.calculateLabelAngles(t),this.applyLabelDimensions(t)}};var Lu=function(e,r){var a=Math.atan(r/e);return e===0&&a<0&&(a=a*-1),a},Mu=function(e,r){var a=r.x-e.x,n=r.y-e.y;return Lu(a,n)},tp=function(e,r,a,n){var i=xa(0,n-.001,1),s=xa(0,n+.001,1),o=Ir(e,r,a,i),l=Ir(e,r,a,s);return Mu(o,l)};Vt.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(f,c,h){Qt(r.rscratch,f,c,h),Qt(r.rstyle,f,c,h)};s("labelX",null,e.x),s("labelY",null,e.y);var o=Lu(a.midDispX,a.midDispY);s("labelAutoAngle",null,o);var l=function v(){if(v.cache)return v.cache;for(var f=[],c=0;c+5<a.allpts.length;c+=4){var h={x:a.allpts[c],y:a.allpts[c+1]},d={x:a.allpts[c+2],y:a.allpts[c+3]},y={x:a.allpts[c+4],y:a.allpts[c+5]};f.push({p0:h,p1:d,p2:y,startDist:0,length:0,segments:[]})}var p=r.rstyle.bezierPts,g=n.bezierProjPcts.length;function m(x,S,C,P,B){var k=mr(S,C),R=x.segments[x.segments.length-1],A={p0:S,p1:C,t0:P,t1:B,startDist:R?R.startDist+R.length:0,length:k};x.segments.push(A),x.length+=k}for(var b=0;b<f.length;b++){var w=f[b],T=f[b-1];T&&(w.startDist=T.startDist+T.length),m(w,w.p0,p[b*g],0,n.bezierProjPcts[0]);for(var E=0;E<g-1;E++)m(w,p[b*g+E],p[b*g+E+1],n.bezierProjPcts[E],n.bezierProjPcts[E+1]);m(w,p[b*g+g-1],w.p2,n.bezierProjPcts[g-1],1)}return v.cache=f},u=function(f){var c,h=f==="source";if(i[f]){var d=t.pstyle(f+"-text-offset").pfValue;switch(a.edgeType){case"self":case"compound":case"bezier":case"multibezier":{for(var y=l(),p,g=0,m=0,b=0;b<y.length;b++){for(var w=y[h?b:y.length-1-b],T=0;T<w.segments.length;T++){var E=w.segments[h?T:w.segments.length-1-T],x=b===y.length-1&&T===w.segments.length-1;if(g=m,m+=E.length,m>=d||x){p={cp:w,segment:E};break}}if(p)break}var S=p.cp,C=p.segment,P=(d-g)/C.length,B=C.t1-C.t0,k=h?C.t0+B*P:C.t1-B*P;k=xa(0,k,1),e=Ir(S.p0,S.p1,S.p2,k),c=tp(S.p0,S.p1,S.p2,k);break}case"straight":case"segments":case"haystack":{for(var R=0,A,I,L,M,O=a.allpts.length,q=0;q+3<O&&(h?(L={x:a.allpts[q],y:a.allpts[q+1]},M={x:a.allpts[q+2],y:a.allpts[q+3]}):(L={x:a.allpts[O-2-q],y:a.allpts[O-1-q]},M={x:a.allpts[O-4-q],y:a.allpts[O-3-q]}),A=mr(L,M),I=R,R+=A,!(R>=d));q+=2);var W=d-I,V=W/A;V=xa(0,V,1),e=uf(L,M,V),c=Mu(L,M);break}}s("labelX",f,e.x),s("labelY",f,e.y),s("labelAutoAngle",f,c)}};u("source"),u("target"),this.applyLabelDimensions(t)}};Vt.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Vt.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=Bt(r.rscratch,"labelWrapCachedLines",e)||[],l=s!=="wrap"?1:Math.max(o.length,1),u=n.height/l,v=u*i,f=n.width,c=n.height+(l-1)*(i-1)*u;Qt(r.rstyle,"labelWidth",e,f),Qt(r.rscratch,"labelWidth",e,f),Qt(r.rstyle,"labelHeight",e,c),Qt(r.rscratch,"labelHeight",e,c),Qt(r.rscratch,"labelLineHeight",e,v)};Vt.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(X,_){return _?(Qt(r.rscratch,X,e,_),_):Bt(r.rscratch,X,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 l=s("labelKey");if(l!=null&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var u="",v=n.split(`
`),f=t.pstyle("text-max-width").pfValue,c=t.pstyle("text-overflow-wrap").value,h=c==="anywhere",d=[],y=/[\s\u200b]+|$/g,p=0;p<v.length;p++){var g=v[p],m=this.calculateLabelDimensions(t,g),b=m.width;if(h){var w=g.split("").join(u);g=w}if(b>f){var T=g.matchAll(y),E="",x=0,S=wt(T),C;try{for(S.s();!(C=S.n()).done;){var P=C.value,B=P[0],k=g.substring(x,P.index);x=P.index+B.length;var R=E.length===0?k:E+k+B,A=this.calculateLabelDimensions(t,R),I=A.width;I<=f?E+=k+B:(E&&d.push(E),E=k+B)}}catch($){S.e($)}finally{S.f()}E.match(/^[\s\u200b]+$/)||d.push(E)}else d.push(g)}s("labelWrapCachedLines",d),n=s("labelWrapCachedText",d.join(`
`)),s("labelWrapKey",l)}else if(o==="ellipsis"){var L=t.pstyle("text-max-width").pfValue,M="",O="…",q=!1;if(this.calculateLabelDimensions(t,n).width<L)return n;for(var W=0;W<n.length;W++){var V=this.calculateLabelDimensions(t,M+n[W]+O).width;if(V>L)break;M+=n[W],W===n.length-1&&(q=!0)}return q||(M+=O),M}return n};Vt.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};Vt.calculateLabelDimensions=function(t,e){var r=this,a=r.cy.window(),n=a.document,i=rr(e,t._private.labelDimsKey),s=r.labelDimCache||(r.labelDimCache=[]),o=s[i];if(o!=null)return o;var l=0,u=t.pstyle("font-style").strValue,v=t.pstyle("font-size").pfValue,f=t.pstyle("font-family").strValue,c=t.pstyle("font-weight").strValue,h=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!h){h=this.labelCalcCanvas=n.createElement("canvas"),d=this.labelCalcCanvasContext=h.getContext("2d");var y=h.style;y.position="absolute",y.left="-9999px",y.top="-9999px",y.zIndex="-1",y.visibility="hidden",y.pointerEvents="none"}d.font="".concat(u," ").concat(c," ").concat(v,"px ").concat(f);for(var p=0,g=0,m=e.split(`
`),b=0;b<m.length;b++){var w=m[b],T=d.measureText(w),E=Math.ceil(T.width),x=v;p=Math.max(E,p),g+=x}return p+=l,g+=l,s[i]={width:p,height:g}};Vt.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};Vt.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 Iu={},_s=28,Zs=!1;Iu.getNodeShape=function(t){var e=this,r=t.pstyle("shape").value;if(r==="cutrectangle"&&(t.width()<_s||t.height()<_s))return Zs||(Ae("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),Zs=!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 zn={};zn.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 l=0;l<s.length;l++){var u=s[l],v=u._private,f=v.rstyle;f.clean=!1,f.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 l=0;l<e.length;l++){var u=e[l],v=u._private.rstyle;u.isNode()&&!v.cleanConnected&&(a(u.connectedEdges()),v.cleanConnected=!0)}if(o)for(var f=0;f<o.length;f++){var c=o[f];c(s,e)}r.recalculateRenderedStyle(e),e=t.collection()}};r.flushRenderedStyleQueue=function(){n(!0)},r.beforeRender(n,r.beforeRenderPriorities.eleCalcs)};zn.onUpdateEleCalcs=function(t){var e=this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[];e.push(t)};zn.recalculateRenderedStyle=function(t,e){var r=function(w){return w._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,l=o.rstyle;s.isEdge()&&(!r(s.source())||!r(s.target()))&&(l.clean=!1),!(e&&l.clean||s.removed())&&s.pstyle("display").value!=="none"&&(o.group==="nodes"?n.push(s):a.push(s),l.clean=!0)}for(var u=0;u<n.length;u++){var v=n[u],f=v._private,c=f.rstyle,h=v.position();this.recalculateNodeLabelProjection(v),c.nodeX=h.x,c.nodeY=h.y,c.nodeW=v.pstyle("width").pfValue,c.nodeH=v.pstyle("height").pfValue}this.recalculateEdgeProjections(a);for(var d=0;d<a.length;d++){var y=a[d],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 Fn={};Fn.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)}}};Fn.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null};Fn.getCachedZSortedEles=function(t){if(t||!this.cachedZSortedEles){var e=this.cy.mutableElements().toArray();e.sort(yu),e.interactive=e.filter(function(r){return r.interactive()}),this.cachedZSortedEles=e,this.updateCachedGrabbedEles()}else e=this.cachedZSortedEles;return e};var Ou={};[Tr,bn,lt,Oa,qi,Vt,Iu,zn,Fn].forEach(function(t){de(Ou,t)});var Nu={};Nu.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:",l=t.substring(0,o.length).toLowerCase()===o;return l||(e=e==="null"?null:e,s.crossOrigin=e),s.src=t,s};var Zr={};Zr.registerBinding=function(t,e,r,a){var n=Array.prototype.slice.apply(arguments,[1]);if(Array.isArray(t)){for(var i=[],s=0;s<t.length;s++){var o=t[s];if(o!==void 0){var l=this.binder(o);i.push(l.on.apply(l,n))}}return i}var l=this.binder(t);return l.on.apply(l,n)};Zr.binder=function(t){var e=this,r=e.cy.window(),a=t===r||t===r.document||t===r.document.body||Pl(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(l,u,v){var f=Array.prototype.slice.call(arguments);return a&&e.supportsPassiveEvents&&(f[2]={capture:v??!1,passive:!1,once:!1}),e.bindings.push({target:t,args:f}),(t.addEventListener||t.on).apply(t,f),this};return{on:s,addEventListener:s,addListener:s,bind:s}};Zr.nodeIsDraggable=function(t){return t&&t.isNode()&&!t.locked()&&t.grabbable()};Zr.nodeIsGrabbable=function(t){return this.nodeIsDraggable(t)&&t.interactive()};Zr.load=function(){var t=this,e=t.cy.window(),r=function(D){return D.selected()},a=function(D){var z=D.getRootNode();if(z&&z.nodeType===11&&z.host!==void 0)return z},n=function(D,z,U,F){D==null&&(D=t.cy);for(var K=0;K<z.length;K++){var ae=z[K];D.emit({originalEvent:U,type:ae,position:F})}},i=function(D){return D.shiftKey||D.metaKey||D.ctrlKey},s=function(D,z){var U=!0;if(t.cy.hasCompoundNodes()&&D&&D.pannable())for(var F=0;z&&F<z.length;F++){var D=z[F];if(D.isNode()&&D.isParent()&&!D.pannable()){U=!1;break}}else U=!0;return U},o=function(D){D[0]._private.grabbed=!0},l=function(D){D[0]._private.grabbed=!1},u=function(D){D[0]._private.rscratch.inDragLayer=!0},v=function(D){D[0]._private.rscratch.inDragLayer=!1},f=function(D){D[0]._private.rscratch.isGrabTarget=!0},c=function(D){D[0]._private.rscratch.isGrabTarget=!1},h=function(D,z){var U=z.addToList,F=U.has(D);!F&&D.grabbable()&&!D.locked()&&(U.merge(D),o(D))},d=function(D,z){if(D.cy().hasCompoundNodes()&&!(z.inDragLayer==null&&z.addToList==null)){var U=D.descendants();z.inDragLayer&&(U.forEach(u),U.connectedEdges().forEach(u)),z.addToList&&h(U,z)}},y=function(D,z){z=z||{};var U=D.cy().hasCompoundNodes();z.inDragLayer&&(D.forEach(u),D.neighborhood().stdFilter(function(F){return!U||F.isEdge()}).forEach(u)),z.addToList&&D.forEach(function(F){h(F,z)}),d(D,z),m(D,{inDragLayer:z.inDragLayer}),t.updateCachedGrabbedEles()},p=y,g=function(D){D&&(t.getCachedZSortedEles().forEach(function(z){l(z),v(z),c(z)}),t.updateCachedGrabbedEles())},m=function(D,z){if(!(z.inDragLayer==null&&z.addToList==null)&&D.cy().hasCompoundNodes()){var U=D.ancestors().orphans();if(!U.same(D)){var F=U.descendants().spawnSelf().merge(U).unmerge(D).unmerge(D.descendants()),K=F.connectedEdges();z.inDragLayer&&(K.forEach(u),F.forEach(u)),z.addToList&&F.forEach(function(ae){h(ae,z)})}}},b=function(){document.activeElement!=null&&document.activeElement.blur!=null&&document.activeElement.blur()},w=typeof MutationObserver<"u",T=typeof ResizeObserver<"u";w?(t.removeObserver=new MutationObserver(function(J){for(var D=0;D<J.length;D++){var z=J[D],U=z.removedNodes;if(U)for(var F=0;F<U.length;F++){var K=U[F];if(K===t.container){t.destroy();break}}}}),t.container.parentNode&&t.removeObserver.observe(t.container.parentNode,{childList:!0})):t.registerBinding(t.container,"DOMNodeRemoved",function(J){t.destroy()});var E=Ra(function(){t.cy.resize()},100);w&&(t.styleObserver=new MutationObserver(E),t.styleObserver.observe(t.container,{attributes:!0})),t.registerBinding(e,"resize",E),T&&(t.resizeObserver=new ResizeObserver(E),t.resizeObserver.observe(t.container));var x=function(D,z){for(;D!=null;)z(D),D=D.parentNode},S=function(){t.invalidateContainerClientCoordsCache()};x(t.container,function(J){t.registerBinding(J,"transitionend",S),t.registerBinding(J,"animationend",S),t.registerBinding(J,"scroll",S)}),t.registerBinding(t.container,"contextmenu",function(J){J.preventDefault()});var C=function(){return t.selection[4]!==0},P=function(D){for(var z=t.findContainerClientCoords(),U=z[0],F=z[1],K=z[2],ae=z[3],Y=D.touches?D.touches:[D],ne=!1,ce=0;ce<Y.length;ce++){var xe=Y[ce];if(U<=xe.clientX&&xe.clientX<=U+K&&F<=xe.clientY&&xe.clientY<=F+ae){ne=!0;break}}if(!ne)return!1;for(var ve=t.container,be=D.target,we=be.parentNode,ge=!1;we;){if(we===ve){ge=!0;break}we=we.parentNode}return!!ge};t.registerBinding(t.container,"mousedown",function(D){if(P(D)&&!(t.hoverData.which===1&&D.which!==1)){D.preventDefault(),b(),t.hoverData.capture=!0,t.hoverData.which=D.which;var z=t.cy,U=[D.clientX,D.clientY],F=t.projectIntoViewport(U[0],U[1]),K=t.selection,ae=t.findNearestElements(F[0],F[1],!0,!1),Y=ae[0],ne=t.dragData.possibleDragElements;t.hoverData.mdownPos=F,t.hoverData.mdownGPos=U;var ce=function(){t.hoverData.tapholdCancelled=!1,clearTimeout(t.hoverData.tapholdTimeout),t.hoverData.tapholdTimeout=setTimeout(function(){if(!t.hoverData.tapholdCancelled){var Oe=t.hoverData.down;Oe?Oe.emit({originalEvent:D,type:"taphold",position:{x:F[0],y:F[1]}}):z.emit({originalEvent:D,type:"taphold",position:{x:F[0],y:F[1]}})}},t.tapholdDuration)};if(D.which==3){t.hoverData.cxtStarted=!0;var xe={originalEvent:D,type:"cxttapstart",position:{x:F[0],y:F[1]}};Y?(Y.activate(),Y.emit(xe),t.hoverData.down=Y):z.emit(xe),t.hoverData.downTime=new Date().getTime(),t.hoverData.cxtDragged=!1}else if(D.which==1){Y&&Y.activate();{if(Y!=null&&t.nodeIsGrabbable(Y)){var ve=function(Oe){return{originalEvent:D,type:Oe,position:{x:F[0],y:F[1]}}},be=function(Oe){Oe.emit(ve("grab"))};if(f(Y),!Y.selected())ne=t.dragData.possibleDragElements=z.collection(),p(Y,{addToList:ne}),Y.emit(ve("grabon")).emit(ve("grab"));else{ne=t.dragData.possibleDragElements=z.collection();var we=z.$(function(ge){return ge.isNode()&&ge.selected()&&t.nodeIsGrabbable(ge)});y(we,{addToList:ne}),Y.emit(ve("grabon")),we.forEach(be)}t.redrawHint("eles",!0),t.redrawHint("drag",!0)}t.hoverData.down=Y,t.hoverData.downs=ae,t.hoverData.downTime=new Date().getTime()}n(Y,["mousedown","tapstart","vmousedown"],D,{x:F[0],y:F[1]}),Y==null?(K[4]=1,t.data.bgActivePosistion={x:F[0],y:F[1]},t.redrawHint("select",!0),t.redraw()):Y.pannable()&&(K[4]=1),ce()}K[0]=K[2]=F[0],K[1]=K[3]=F[1]}},!1);var B=a(t.container);t.registerBinding([e,B],"mousemove",function(D){var z=t.hoverData.capture;if(!(!z&&!P(D))){var U=!1,F=t.cy,K=F.zoom(),ae=[D.clientX,D.clientY],Y=t.projectIntoViewport(ae[0],ae[1]),ne=t.hoverData.mdownPos,ce=t.hoverData.mdownGPos,xe=t.selection,ve=null;!t.hoverData.draggingEles&&!t.hoverData.dragging&&!t.hoverData.selecting&&(ve=t.findNearestElement(Y[0],Y[1],!0,!1));var be=t.hoverData.last,we=t.hoverData.down,ge=[Y[0]-xe[2],Y[1]-xe[3]],Oe=t.dragData.possibleDragElements,Ve;if(ce){var yt=ae[0]-ce[0],mt=yt*yt,Ge=ae[1]-ce[1],Ye=Ge*Ge,_e=mt+Ye;t.hoverData.isOverThresholdDrag=Ve=_e>=t.desktopTapThreshold2}var vt=i(D);Ve&&(t.hoverData.tapholdCancelled=!0);var ft=function(){var Mt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];Mt.length===0?(Mt.push(ge[0]),Mt.push(ge[1])):(Mt[0]+=ge[0],Mt[1]+=ge[1])};U=!0,n(ve,["mousemove","vmousemove","tapdrag"],D,{x:Y[0],y:Y[1]});var Rt=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||F.emit({originalEvent:D,type:"boxstart",position:{x:Y[0],y:Y[1]}}),xe[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(t.hoverData.which===3){if(Ve){var Et={originalEvent:D,type:"cxtdrag",position:{x:Y[0],y:Y[1]}};we?we.emit(Et):F.emit(Et),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||ve!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:D,type:"cxtdragout",position:{x:Y[0],y:Y[1]}}),t.hoverData.cxtOver=ve,ve&&ve.emit({originalEvent:D,type:"cxtdragover",position:{x:Y[0],y:Y[1]}}))}}else if(t.hoverData.dragging){if(U=!0,F.panningEnabled()&&F.userPanningEnabled()){var Lt;if(t.hoverData.justStartedPan){var $t=t.hoverData.mdownPos;Lt={x:(Y[0]-$t[0])*K,y:(Y[1]-$t[1])*K},t.hoverData.justStartedPan=!1}else Lt={x:ge[0]*K,y:ge[1]*K};F.panBy(Lt),F.emit("dragpan"),t.hoverData.dragged=!0}Y=t.projectIntoViewport(D.clientX,D.clientY)}else if(xe[4]==1&&(we==null||we.pannable())){if(Ve){if(!t.hoverData.dragging&&F.boxSelectionEnabled()&&(vt||!F.panningEnabled()||!F.userPanningEnabled()))Rt();else if(!t.hoverData.selecting&&F.panningEnabled()&&F.userPanningEnabled()){var Kt=s(we,t.hoverData.downs);Kt&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,xe[4]=0,t.data.bgActivePosistion=Lr(ne),t.redrawHint("select",!0),t.redraw())}we&&we.pannable()&&we.active()&&we.unactivate()}}else{if(we&&we.pannable()&&we.active()&&we.unactivate(),(!we||!we.grabbed())&&ve!=be&&(be&&n(be,["mouseout","tapdragout"],D,{x:Y[0],y:Y[1]}),ve&&n(ve,["mouseover","tapdragover"],D,{x:Y[0],y:Y[1]}),t.hoverData.last=ve),we)if(Ve){if(F.boxSelectionEnabled()&&vt)we&&we.grabbed()&&(g(Oe),we.emit("freeon"),Oe.emit("free"),t.dragData.didDrag&&(we.emit("dragfreeon"),Oe.emit("dragfree"))),Rt();else if(we&&we.grabbed()&&t.nodeIsDraggable(we)){var nt=!t.dragData.didDrag;nt&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||y(Oe,{inDragLayer:!0});var Ze={x:0,y:0};if(re(ge[0])&&re(ge[1])&&(Ze.x+=ge[0],Ze.y+=ge[1],nt)){var ht=t.hoverData.dragDelta;ht&&re(ht[0])&&re(ht[1])&&(Ze.x+=ht[0],Ze.y+=ht[1])}t.hoverData.draggingEles=!0,Oe.silentShift(Ze).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else ft();U=!0}if(xe[2]=Y[0],xe[3]=Y[1],U)return D.stopPropagation&&D.stopPropagation(),D.preventDefault&&D.preventDefault(),!1}},!1);var k,R,A;t.registerBinding(e,"mouseup",function(D){if(!(t.hoverData.which===1&&D.which!==1&&t.hoverData.capture)){var z=t.hoverData.capture;if(z){t.hoverData.capture=!1;var U=t.cy,F=t.projectIntoViewport(D.clientX,D.clientY),K=t.selection,ae=t.findNearestElement(F[0],F[1],!0,!1),Y=t.dragData.possibleDragElements,ne=t.hoverData.down,ce=i(D);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,ne&&ne.unactivate(),t.hoverData.which===3){var xe={originalEvent:D,type:"cxttapend",position:{x:F[0],y:F[1]}};if(ne?ne.emit(xe):U.emit(xe),!t.hoverData.cxtDragged){var ve={originalEvent:D,type:"cxttap",position:{x:F[0],y:F[1]}};ne?ne.emit(ve):U.emit(ve)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(n(ae,["mouseup","tapend","vmouseup"],D,{x:F[0],y:F[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(n(ne,["click","tap","vclick"],D,{x:F[0],y:F[1]}),R=!1,D.timeStamp-A<=U.multiClickDebounceTime()?(k&&clearTimeout(k),R=!0,A=null,n(ne,["dblclick","dbltap","vdblclick"],D,{x:F[0],y:F[1]})):(k=setTimeout(function(){R||n(ne,["oneclick","onetap","voneclick"],D,{x:F[0],y:F[1]})},U.multiClickDebounceTime()),A=D.timeStamp)),ne==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!i(D)&&(U.$(r).unselect(["tapunselect"]),Y.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Y=U.collection()),ae==ne&&!t.dragData.didDrag&&!t.hoverData.selecting&&ae!=null&&ae._private.selectable&&(t.hoverData.dragging||(U.selectionType()==="additive"||ce?ae.selected()?ae.unselect(["tapunselect"]):ae.select(["tapselect"]):ce||(U.$(r).unmerge(ae).unselect(["tapunselect"]),ae.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var be=U.collection(t.getAllInBox(K[0],K[1],K[2],K[3]));t.redrawHint("select",!0),be.length>0&&t.redrawHint("eles",!0),U.emit({type:"boxend",originalEvent:D,position:{x:F[0],y:F[1]}});var we=function(Ve){return Ve.selectable()&&!Ve.selected()};U.selectionType()==="additive"||ce||U.$(r).unmerge(be).unselect(),be.emit("box").stdFilter(we).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!K[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var ge=ne&&ne.grabbed();g(Y),ge&&(ne.emit("freeon"),Y.emit("free"),t.dragData.didDrag&&(ne.emit("dragfreeon"),Y.emit("dragfree")))}}K[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,t.hoverData.which=null}}},!1);var I=function(D){if(!t.scrollingPage){var z=t.cy,U=z.zoom(),F=z.pan(),K=t.projectIntoViewport(D.clientX,D.clientY),ae=[K[0]*U+F.x,K[1]*U+F.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||C()){D.preventDefault();return}if(z.panningEnabled()&&z.userPanningEnabled()&&z.zoomingEnabled()&&z.userZoomingEnabled()){D.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 Y;D.deltaY!=null?Y=D.deltaY/-250:D.wheelDeltaY!=null?Y=D.wheelDeltaY/1e3:Y=D.wheelDelta/1e3,Y=Y*t.wheelSensitivity;var ne=D.deltaMode===1;ne&&(Y*=33);var ce=z.zoom()*Math.pow(10,Y);D.type==="gesturechange"&&(ce=t.gestureStartZoom*D.scale),z.zoom({level:ce,renderedPosition:{x:ae[0],y:ae[1]}}),z.emit(D.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",I,!0),t.registerBinding(e,"scroll",function(D){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(D){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||D.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(J){t.hasTouchStarted||I(J)},!0),t.registerBinding(t.container,"mouseout",function(D){var z=t.projectIntoViewport(D.clientX,D.clientY);t.cy.emit({originalEvent:D,type:"mouseout",position:{x:z[0],y:z[1]}})},!1),t.registerBinding(t.container,"mouseover",function(D){var z=t.projectIntoViewport(D.clientX,D.clientY);t.cy.emit({originalEvent:D,type:"mouseover",position:{x:z[0],y:z[1]}})},!1);var L,M,O,q,W,V,$,X,_,Q,Z,j,te,G=function(D,z,U,F){return Math.sqrt((U-D)*(U-D)+(F-z)*(F-z))},N=function(D,z,U,F){return(U-D)*(U-D)+(F-z)*(F-z)},H;t.registerBinding(t.container,"touchstart",H=function(D){if(t.hasTouchStarted=!0,!!P(D)){b(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var z=t.cy,U=t.touchData.now,F=t.touchData.earlier;if(D.touches[0]){var K=t.projectIntoViewport(D.touches[0].clientX,D.touches[0].clientY);U[0]=K[0],U[1]=K[1]}if(D.touches[1]){var K=t.projectIntoViewport(D.touches[1].clientX,D.touches[1].clientY);U[2]=K[0],U[3]=K[1]}if(D.touches[2]){var K=t.projectIntoViewport(D.touches[2].clientX,D.touches[2].clientY);U[4]=K[0],U[5]=K[1]}if(D.touches[1]){t.touchData.singleTouchMoved=!0,g(t.dragData.touchDragEles);var ae=t.findContainerClientCoords();_=ae[0],Q=ae[1],Z=ae[2],j=ae[3],L=D.touches[0].clientX-_,M=D.touches[0].clientY-Q,O=D.touches[1].clientX-_,q=D.touches[1].clientY-Q,te=0<=L&&L<=Z&&0<=O&&O<=Z&&0<=M&&M<=j&&0<=q&&q<=j;var Y=z.pan(),ne=z.zoom();W=G(L,M,O,q),V=N(L,M,O,q),$=[(L+O)/2,(M+q)/2],X=[($[0]-Y.x)/ne,($[1]-Y.y)/ne];var ce=200,xe=ce*ce;if(V<xe&&!D.touches[2]){var ve=t.findNearestElement(U[0],U[1],!0,!0),be=t.findNearestElement(U[2],U[3],!0,!0);ve&&ve.isNode()?(ve.activate().emit({originalEvent:D,type:"cxttapstart",position:{x:U[0],y:U[1]}}),t.touchData.start=ve):be&&be.isNode()?(be.activate().emit({originalEvent:D,type:"cxttapstart",position:{x:U[0],y:U[1]}}),t.touchData.start=be):z.emit({originalEvent:D,type:"cxttapstart",position:{x:U[0],y:U[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(D.touches[2])z.boxSelectionEnabled()&&D.preventDefault();else if(!D.touches[1]){if(D.touches[0]){var we=t.findNearestElements(U[0],U[1],!0,!0),ge=we[0];if(ge!=null&&(ge.activate(),t.touchData.start=ge,t.touchData.starts=we,t.nodeIsGrabbable(ge))){var Oe=t.dragData.touchDragEles=z.collection(),Ve=null;t.redrawHint("eles",!0),t.redrawHint("drag",!0),ge.selected()?(Ve=z.$(function(_e){return _e.selected()&&t.nodeIsGrabbable(_e)}),y(Ve,{addToList:Oe})):p(ge,{addToList:Oe}),f(ge);var yt=function(vt){return{originalEvent:D,type:vt,position:{x:U[0],y:U[1]}}};ge.emit(yt("grabon")),Ve?Ve.forEach(function(_e){_e.emit(yt("grab"))}):ge.emit(yt("grab"))}n(ge,["touchstart","tapstart","vmousedown"],D,{x:U[0],y:U[1]}),ge==null&&(t.data.bgActivePosistion={x:K[0],y:K[1]},t.redrawHint("select",!0),t.redraw()),t.touchData.singleTouchMoved=!1,t.touchData.singleTouchStartTime=+new Date,clearTimeout(t.touchData.tapholdTimeout),t.touchData.tapholdTimeout=setTimeout(function(){t.touchData.singleTouchMoved===!1&&!t.pinching&&!t.touchData.selecting&&n(t.touchData.start,["taphold"],D,{x:U[0],y:U[1]})},t.tapholdDuration)}}if(D.touches.length>=1){for(var mt=t.touchData.startPosition=[null,null,null,null,null,null],Ge=0;Ge<U.length;Ge++)mt[Ge]=F[Ge]=U[Ge];var Ye=D.touches[0];t.touchData.startGPosition=[Ye.clientX,Ye.clientY]}}},!1);var ee;t.registerBinding(e,"touchmove",ee=function(D){var z=t.touchData.capture;if(!(!z&&!P(D))){var U=t.selection,F=t.cy,K=t.touchData.now,ae=t.touchData.earlier,Y=F.zoom();if(D.touches[0]){var ne=t.projectIntoViewport(D.touches[0].clientX,D.touches[0].clientY);K[0]=ne[0],K[1]=ne[1]}if(D.touches[1]){var ne=t.projectIntoViewport(D.touches[1].clientX,D.touches[1].clientY);K[2]=ne[0],K[3]=ne[1]}if(D.touches[2]){var ne=t.projectIntoViewport(D.touches[2].clientX,D.touches[2].clientY);K[4]=ne[0],K[5]=ne[1]}var ce=t.touchData.startGPosition,xe;if(z&&D.touches[0]&&ce){for(var ve=[],be=0;be<K.length;be++)ve[be]=K[be]-ae[be];var we=D.touches[0].clientX-ce[0],ge=we*we,Oe=D.touches[0].clientY-ce[1],Ve=Oe*Oe,yt=ge+Ve;xe=yt>=t.touchTapThreshold2}if(z&&t.touchData.cxt){D.preventDefault();var mt=D.touches[0].clientX-_,Ge=D.touches[0].clientY-Q,Ye=D.touches[1].clientX-_,_e=D.touches[1].clientY-Q,vt=N(mt,Ge,Ye,_e),ft=vt/V,Rt=150,Et=Rt*Rt,Lt=1.5,$t=Lt*Lt;if(ft>=$t||vt>=Et){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Kt={originalEvent:D,type:"cxttapend",position:{x:K[0],y:K[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(Kt),t.touchData.start=null):F.emit(Kt)}}if(z&&t.touchData.cxt){var Kt={originalEvent:D,type:"cxtdrag",position:{x:K[0],y:K[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(Kt):F.emit(Kt),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var nt=t.findNearestElement(K[0],K[1],!0,!0);(!t.touchData.cxtOver||nt!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:D,type:"cxtdragout",position:{x:K[0],y:K[1]}}),t.touchData.cxtOver=nt,nt&&nt.emit({originalEvent:D,type:"cxtdragover",position:{x:K[0],y:K[1]}}))}else if(z&&D.touches[2]&&F.boxSelectionEnabled())D.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||F.emit({originalEvent:D,type:"boxstart",position:{x:K[0],y:K[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,U[4]=1,!U||U.length===0||U[0]===void 0?(U[0]=(K[0]+K[2]+K[4])/3,U[1]=(K[1]+K[3]+K[5])/3,U[2]=(K[0]+K[2]+K[4])/3+1,U[3]=(K[1]+K[3]+K[5])/3+1):(U[2]=(K[0]+K[2]+K[4])/3,U[3]=(K[1]+K[3]+K[5])/3),t.redrawHint("select",!0),t.redraw();else if(z&&D.touches[1]&&!t.touchData.didSelect&&F.zoomingEnabled()&&F.panningEnabled()&&F.userZoomingEnabled()&&F.userPanningEnabled()){D.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Ze=t.dragData.touchDragEles;if(Ze){t.redrawHint("drag",!0);for(var ht=0;ht<Ze.length;ht++){var Fa=Ze[ht]._private;Fa.grabbed=!1,Fa.rscratch.inDragLayer=!1}}var Mt=t.touchData.start,mt=D.touches[0].clientX-_,Ge=D.touches[0].clientY-Q,Ye=D.touches[1].clientX-_,_e=D.touches[1].clientY-Q,Wi=G(mt,Ge,Ye,_e),sl=Wi/W;if(te){var ol=mt-L,ul=Ge-M,ll=Ye-O,vl=_e-q,fl=(ol+ll)/2,cl=(ul+vl)/2,jr=F.zoom(),Vn=jr*sl,Va=F.pan(),Hi=X[0]*jr+Va.x,Ui=X[1]*jr+Va.y,dl={x:-Vn/jr*(Hi-Va.x-fl)+Hi,y:-Vn/jr*(Ui-Va.y-cl)+Ui};if(Mt&&Mt.active()){var Ze=t.dragData.touchDragEles;g(Ze),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Mt.unactivate().emit("freeon"),Ze.emit("free"),t.dragData.didDrag&&(Mt.emit("dragfreeon"),Ze.emit("dragfree"))}F.viewport({zoom:Vn,pan:dl,cancelOnFailedZoom:!0}),F.emit("pinchzoom"),W=Wi,L=mt,M=Ge,O=Ye,q=_e,t.pinching=!0}if(D.touches[0]){var ne=t.projectIntoViewport(D.touches[0].clientX,D.touches[0].clientY);K[0]=ne[0],K[1]=ne[1]}if(D.touches[1]){var ne=t.projectIntoViewport(D.touches[1].clientX,D.touches[1].clientY);K[2]=ne[0],K[3]=ne[1]}if(D.touches[2]){var ne=t.projectIntoViewport(D.touches[2].clientX,D.touches[2].clientY);K[4]=ne[0],K[5]=ne[1]}}else if(D.touches[0]&&!t.touchData.didSelect){var Dt=t.touchData.start,qn=t.touchData.last,nt;if(!t.hoverData.draggingEles&&!t.swipePanning&&(nt=t.findNearestElement(K[0],K[1],!0,!0)),z&&Dt!=null&&D.preventDefault(),z&&Dt!=null&&t.nodeIsDraggable(Dt))if(xe){var Ze=t.dragData.touchDragEles,Xi=!t.dragData.didDrag;Xi&&y(Ze,{inDragLayer:!0}),t.dragData.didDrag=!0;var ea={x:0,y:0};if(re(ve[0])&&re(ve[1])&&(ea.x+=ve[0],ea.y+=ve[1],Xi)){t.redrawHint("eles",!0);var kt=t.touchData.dragDelta;kt&&re(kt[0])&&re(kt[1])&&(ea.x+=kt[0],ea.y+=kt[1])}t.hoverData.draggingEles=!0,Ze.silentShift(ea).emit("position drag"),t.redrawHint("drag",!0),t.touchData.startPosition[0]==ae[0]&&t.touchData.startPosition[1]==ae[1]&&t.redrawHint("eles",!0),t.redraw()}else{var kt=t.touchData.dragDelta=t.touchData.dragDelta||[];kt.length===0?(kt.push(ve[0]),kt.push(ve[1])):(kt[0]+=ve[0],kt[1]+=ve[1])}if(n(Dt||nt,["touchmove","tapdrag","vmousemove"],D,{x:K[0],y:K[1]}),(!Dt||!Dt.grabbed())&&nt!=qn&&(qn&&qn.emit({originalEvent:D,type:"tapdragout",position:{x:K[0],y:K[1]}}),nt&&nt.emit({originalEvent:D,type:"tapdragover",position:{x:K[0],y:K[1]}})),t.touchData.last=nt,z)for(var ht=0;ht<K.length;ht++)K[ht]&&t.touchData.startPosition[ht]&&xe&&(t.touchData.singleTouchMoved=!0);if(z&&(Dt==null||Dt.pannable())&&F.panningEnabled()&&F.userPanningEnabled()){var hl=s(Dt,t.touchData.starts);hl&&(D.preventDefault(),t.data.bgActivePosistion||(t.data.bgActivePosistion=Lr(t.touchData.startPosition)),t.swipePanning?(F.panBy({x:ve[0]*Y,y:ve[1]*Y}),F.emit("dragpan")):xe&&(t.swipePanning=!0,F.panBy({x:we*Y,y:Oe*Y}),F.emit("dragpan"),Dt&&(Dt.unactivate(),t.redrawHint("select",!0),t.touchData.start=null)));var ne=t.projectIntoViewport(D.touches[0].clientX,D.touches[0].clientY);K[0]=ne[0],K[1]=ne[1]}}for(var be=0;be<K.length;be++)ae[be]=K[be];z&&D.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 ie;t.registerBinding(e,"touchcancel",ie=function(D){var z=t.touchData.start;t.touchData.capture=!1,z&&z.unactivate()});var ue,Ce,Re,Le;if(t.registerBinding(e,"touchend",ue=function(D){var z=t.touchData.start,U=t.touchData.capture;if(U)D.touches.length===0&&(t.touchData.capture=!1),D.preventDefault();else return;var F=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var K=t.cy,ae=K.zoom(),Y=t.touchData.now,ne=t.touchData.earlier;if(D.touches[0]){var ce=t.projectIntoViewport(D.touches[0].clientX,D.touches[0].clientY);Y[0]=ce[0],Y[1]=ce[1]}if(D.touches[1]){var ce=t.projectIntoViewport(D.touches[1].clientX,D.touches[1].clientY);Y[2]=ce[0],Y[3]=ce[1]}if(D.touches[2]){var ce=t.projectIntoViewport(D.touches[2].clientX,D.touches[2].clientY);Y[4]=ce[0],Y[5]=ce[1]}z&&z.unactivate();var xe;if(t.touchData.cxt){if(xe={originalEvent:D,type:"cxttapend",position:{x:Y[0],y:Y[1]}},z?z.emit(xe):K.emit(xe),!t.touchData.cxtDragged){var ve={originalEvent:D,type:"cxttap",position:{x:Y[0],y:Y[1]}};z?z.emit(ve):K.emit(ve)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!D.touches[2]&&K.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var be=K.collection(t.getAllInBox(F[0],F[1],F[2],F[3]));F[0]=void 0,F[1]=void 0,F[2]=void 0,F[3]=void 0,F[4]=0,t.redrawHint("select",!0),K.emit({type:"boxend",originalEvent:D,position:{x:Y[0],y:Y[1]}});var we=function(Et){return Et.selectable()&&!Et.selected()};be.emit("box").stdFilter(we).select().emit("boxselect"),be.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(z!=null&&z.unactivate(),D.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!D.touches[1]){if(!D.touches[0]){if(!D.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ge=t.dragData.touchDragEles;if(z!=null){var Oe=z._private.grabbed;g(ge),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Oe&&(z.emit("freeon"),ge.emit("free"),t.dragData.didDrag&&(z.emit("dragfreeon"),ge.emit("dragfree"))),n(z,["touchend","tapend","vmouseup","tapdragout"],D,{x:Y[0],y:Y[1]}),z.unactivate(),t.touchData.start=null}else{var Ve=t.findNearestElement(Y[0],Y[1],!0,!0);n(Ve,["touchend","tapend","vmouseup","tapdragout"],D,{x:Y[0],y:Y[1]})}var yt=t.touchData.startPosition[0]-Y[0],mt=yt*yt,Ge=t.touchData.startPosition[1]-Y[1],Ye=Ge*Ge,_e=mt+Ye,vt=_e*ae*ae;t.touchData.singleTouchMoved||(z||K.$(":selected").unselect(["tapunselect"]),n(z,["tap","vclick"],D,{x:Y[0],y:Y[1]}),Ce=!1,D.timeStamp-Le<=K.multiClickDebounceTime()?(Re&&clearTimeout(Re),Ce=!0,Le=null,n(z,["dbltap","vdblclick"],D,{x:Y[0],y:Y[1]})):(Re=setTimeout(function(){Ce||n(z,["onetap","voneclick"],D,{x:Y[0],y:Y[1]})},K.multiClickDebounceTime()),Le=D.timeStamp)),z!=null&&!t.dragData.didDrag&&z._private.selectable&&vt<t.touchTapThreshold2&&!t.pinching&&(K.selectionType()==="single"?(K.$(r).unmerge(z).unselect(["tapunselect"]),z.select(["tapselect"])):z.selected()?z.unselect(["tapunselect"]):z.select(["tapselect"]),t.redrawHint("eles",!0)),t.touchData.singleTouchMoved=!0}}}for(var ft=0;ft<Y.length;ft++)ne[ft]=Y[ft];t.dragData.didDrag=!1,D.touches.length===0&&(t.touchData.dragDelta=[],t.touchData.startPosition=[null,null,null,null,null,null],t.touchData.startGPosition=null,t.touchData.didSelect=!1),D.touches.length<2&&(D.touches.length===1&&(t.touchData.startGPosition=[D.touches[0].clientX,D.touches[0].clientY]),t.pinching=!1,t.redrawHint("eles",!0),t.redraw())},!1),typeof TouchEvent>"u"){var le=[],oe=function(D){return{clientX:D.clientX,clientY:D.clientY,force:1,identifier:D.pointerId,pageX:D.pageX,pageY:D.pageY,radiusX:D.width/2,radiusY:D.height/2,screenX:D.screenX,screenY:D.screenY,target:D.target}},pe=function(D){return{event:D,touch:oe(D)}},ye=function(D){le.push(pe(D))},he=function(D){for(var z=0;z<le.length;z++){var U=le[z];if(U.event.pointerId===D.pointerId){le.splice(z,1);return}}},me=function(D){var z=le.filter(function(U){return U.event.pointerId===D.pointerId})[0];z.event=D,z.touch=oe(D)},Ee=function(D){D.touches=le.map(function(z){return z.touch})},Se=function(D){return D.pointerType==="mouse"||D.pointerType===4};t.registerBinding(t.container,"pointerdown",function(J){Se(J)||(J.preventDefault(),ye(J),Ee(J),H(J))}),t.registerBinding(t.container,"pointerup",function(J){Se(J)||(he(J),Ee(J),ue(J))}),t.registerBinding(t.container,"pointercancel",function(J){Se(J)||(he(J),Ee(J),ie(J))}),t.registerBinding(t.container,"pointermove",function(J){Se(J)||(J.preventDefault(),me(J),Ee(J),ee(J))})}};var Xt={};Xt.generatePolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,draw:function(a,n,i,s,o,l){this.renderer.nodeShapeImpl("polygon",a,n,i,s,o,this.points)},intersectLine:function(a,n,i,s,o,l,u,v){return Ea(o,l,this.points,a,n,i/2,s/2,u)},checkPoint:function(a,n,i,s,o,l,u,v){return Ht(a,n,this.points,l,u,s,o,[0,-1],i)}}};Xt.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,r,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,r,a,n,i)},intersectLine:function(e,r,a,n,i,s,o,l){return xf(i,s,e,r,a/2+o,n/2+o)},checkPoint:function(e,r,a,n,i,s,o,l){return pr(e,r,n,i,s,o,a)}}};Xt.generateRoundPolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,getOrCreateCorners:function(a,n,i,s,o,l,u){if(l[u]!==void 0&&l[u+"-cx"]===a&&l[u+"-cy"]===n)return l[u];l[u]=new Array(e.length/2),l[u+"-cx"]=a,l[u+"-cy"]=n;var v=i/2,f=s/2;o=o==="auto"?Vo(i,s):o;for(var c=new Array(e.length/2),h=0;h<e.length/2;h++)c[h]={x:a+v*e[h*2],y:n+f*e[h*2+1]};var d,y,p,g,m=c.length;for(y=c[m-1],d=0;d<m;d++)p=c[d%m],g=c[(d+1)%m],l[u][d]=Vi(y,p,g,o),y=p,p=g;return l[u]},draw:function(a,n,i,s,o,l,u){this.renderer.nodeShapeImpl("round-polygon",a,n,i,s,o,this.points,this.getOrCreateCorners(n,i,s,o,l,u,"drawCorners"))},intersectLine:function(a,n,i,s,o,l,u,v,f){return Ef(o,l,this.points,a,n,i,s,u,this.getOrCreateCorners(a,n,i,s,v,f,"corners"))},checkPoint:function(a,n,i,s,o,l,u,v,f){return wf(a,n,this.points,l,u,s,o,this.getOrCreateCorners(l,u,s,o,v,f,"corners"))}}};Xt.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:ct(4,0),draw:function(e,r,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,r,a,n,i,this.points,s)},intersectLine:function(e,r,a,n,i,s,o,l){return zo(i,s,e,r,a,n,o,l)},checkPoint:function(e,r,a,n,i,s,o,l){var u=n/2,v=i/2;l=l==="auto"?br(n,i):l,l=Math.min(u,v,l);var f=l*2;return!!(Ht(e,r,this.points,s,o,n,i-f,[0,-1],a)||Ht(e,r,this.points,s,o,n-f,i,[0,-1],a)||pr(e,r,f,f,s-u+l,o-v+l,a)||pr(e,r,f,f,s+u-l,o-v+l,a)||pr(e,r,f,f,s+u-l,o+v-l,a)||pr(e,r,f,f,s-u+l,o+v-l,a))}}};Xt.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:ki(),points:ct(4,0),draw:function(e,r,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,r,a,n,i,null,s)},generateCutTrianglePts:function(e,r,a,n,i){var s=i==="auto"?this.cornerLength:i,o=r/2,l=e/2,u=a-l,v=a+l,f=n-o,c=n+o;return{topLeft:[u,f+s,u+s,f,u+s,f+s],topRight:[v-s,f,v,f+s,v-s,f+s],bottomRight:[v,c-s,v-s,c,v-s,c-s],bottomLeft:[u+s,c,u,c-s,u+s,c-s]}},intersectLine:function(e,r,a,n,i,s,o,l){var u=this.generateCutTrianglePts(a+2*o,n+2*o,e,r,l),v=[].concat.apply([],[u.topLeft.splice(0,4),u.topRight.splice(0,4),u.bottomRight.splice(0,4),u.bottomLeft.splice(0,4)]);return Ea(i,s,v,e,r)},checkPoint:function(e,r,a,n,i,s,o,l){var u=l==="auto"?this.cornerLength:l;if(Ht(e,r,this.points,s,o,n,i-2*u,[0,-1],a)||Ht(e,r,this.points,s,o,n-2*u,i,[0,-1],a))return!0;var v=this.generateCutTrianglePts(n,i,s,o);return gt(e,r,v.topLeft)||gt(e,r,v.topRight)||gt(e,r,v.bottomRight)||gt(e,r,v.bottomLeft)}}};Xt.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:ct(4,0),draw:function(e,r,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,r,a,n,i)},intersectLine:function(e,r,a,n,i,s,o,l){var u=.15,v=.5,f=.85,c=this.generateBarrelBezierPts(a+2*o,n+2*o,e,r),h=function(p){var g=Ir({x:p[0],y:p[1]},{x:p[2],y:p[3]},{x:p[4],y:p[5]},u),m=Ir({x:p[0],y:p[1]},{x:p[2],y:p[3]},{x:p[4],y:p[5]},v),b=Ir({x:p[0],y:p[1]},{x:p[2],y:p[3]},{x:p[4],y:p[5]},f);return[p[0],p[1],g.x,g.y,m.x,m.y,b.x,b.y,p[4],p[5]]},d=[].concat(h(c.topLeft),h(c.topRight),h(c.bottomRight),h(c.bottomLeft));return Ea(i,s,d,e,r)},generateBarrelBezierPts:function(e,r,a,n){var i=r/2,s=e/2,o=a-s,l=a+s,u=n-i,v=n+i,f=ni(e,r),c=f.heightOffset,h=f.widthOffset,d=f.ctrlPtOffsetPct*e,y={topLeft:[o,u+c,o+d,u,o+h,u],topRight:[l-h,u,l-d,u,l,u+c],bottomRight:[l,v-c,l-d,v,l-h,v],bottomLeft:[o+h,v,o+d,v,o,v-c]};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,l){var u=ni(n,i),v=u.heightOffset,f=u.widthOffset;if(Ht(e,r,this.points,s,o,n,i-2*v,[0,-1],a)||Ht(e,r,this.points,s,o,n-2*f,i,[0,-1],a))return!0;for(var c=this.generateBarrelBezierPts(n,i,s,o),h=function(S,C,P){var B=P[4],k=P[2],R=P[0],A=P[5],I=P[1],L=Math.min(B,R),M=Math.max(B,R),O=Math.min(A,I),q=Math.max(A,I);if(L<=S&&S<=M&&O<=C&&C<=q){var W=Tf(B,k,R),V=pf(W[0],W[1],W[2],S),$=V.filter(function(X){return 0<=X&&X<=1});if($.length>0)return $[0]}return null},d=Object.keys(c),y=0;y<d.length;y++){var p=d[y],g=c[p],m=h(e,r,g);if(m!=null){var b=g[5],w=g[3],T=g[1],E=Qe(b,w,T,m);if(g.isTop&&E<=r||g.isBottom&&r<=E)return!0}}return!1}}};Xt.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:ct(4,0),draw:function(e,r,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,r,a,n,i,this.points,s)},intersectLine:function(e,r,a,n,i,s,o,l){var u=e-(a/2+o),v=r-(n/2+o),f=v,c=e+(a/2+o),h=Jt(i,s,e,r,u,v,c,f,!1);return h.length>0?h:zo(i,s,e,r,a,n,o,l)},checkPoint:function(e,r,a,n,i,s,o,l){l=l==="auto"?br(n,i):l;var u=2*l;if(Ht(e,r,this.points,s,o,n,i-u,[0,-1],a)||Ht(e,r,this.points,s,o,n-u,i,[0,-1],a))return!0;var v=n/2+2*a,f=i/2+2*a,c=[s-v,o-f,s-v,o,s+v,o,s+v,o-f];return!!(gt(e,r,c)||pr(e,r,u,u,s+n/2-l,o+i/2-l,a)||pr(e,r,u,u,s-n/2+l,o+i/2-l,a))}}};Xt.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",ct(3,0)),this.generateRoundPolygon("round-triangle",ct(3,0)),this.generatePolygon("rectangle",ct(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",ct(5,0)),this.generateRoundPolygon("round-pentagon",ct(5,0)),this.generatePolygon("hexagon",ct(6,0)),this.generateRoundPolygon("round-hexagon",ct(6,0)),this.generatePolygon("heptagon",ct(7,0)),this.generateRoundPolygon("round-heptagon",ct(7,0)),this.generatePolygon("octagon",ct(8,0)),this.generateRoundPolygon("round-octagon",ct(8,0));var a=new Array(20);{var n=ai(5,0),i=ai(5,Math.PI/5),s=.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=Fo(a),this.generatePolygon("star",a),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);{var l=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",l),this.generateRoundPolygon("round-tag",l)}t.makePolygon=function(u){var v=u.join("$"),f="polygon-"+v,c;return(c=this[f])?c:e.generatePolygon(f,u)}};var Na={};Na.timeToRender=function(){return this.redrawTotalTime/this.redrawCount};Na.redraw=function(t){t=t||Lo();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};Na.beforeRender=function(t,e){if(!this.destroyed){e==null&&qe("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 Qs=function(e,r,a){for(var n=e.beforeRenderCallbacks,i=0;i<n.length;i++)n[i].fn(r,a)};Na.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){Qs(t,!0,n);var i=Wt();t.render(t.renderOptions);var s=t.lastDrawTime=Wt();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 Qs(t,!1,n);t.skipFrame=!1,fn(a)}};fn(r)}};var rp=function(e){this.init(e)},zu=rp,Qr=zu.prototype;Qr.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"];Qr.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",l=n.getElementById(s)!=null;if(r.className.indexOf(o)<0&&(r.className=(r.className||"")+" "+o),!l){var u=n.createElement("style");u.id=s,u.textContent="."+o+" { position: relative; }",i.insertBefore(u,i.children[0])}var v=a.getComputedStyle(r),f=v.getPropertyValue("position");f==="static"&&Ae("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=[.05,.225,.4,.5,.6,.775,.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,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.webgl=t.webgl,e.hideEdgesOnViewport=t.hideEdgesOnViewport,e.textureOnViewport=t.textureOnViewport,e.wheelSensitivity=t.wheelSensitivity,e.motionBlurEnabled=t.motionBlur,e.forcedPixelRatio=re(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={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},e.registerNodeShapes(),e.registerArrowShapes(),e.registerCalculationListeners()};Qr.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==="gc"&&r.redrawHint("gc",!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()}};Qr.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{}};Qr.isHeadless=function(){return!1};[Fi,Ou,Nu,Zr,Xt,Na].forEach(function(t){de(Qr,t)});var Qn=1e3/60,Fu={setupDequeueing:function(e){return function(){var a=this,n=this.renderer;if(!a.dequeueingSetup){a.dequeueingSetup=!0;var i=Ra(function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()},e.deqRedrawThreshold),s=function(u,v){var f=Wt(),c=n.averageRedrawTime,h=n.lastRedrawTime,d=[],y=n.cy.extent(),p=n.getPixelRatio();for(u||n.flushRenderedStyleQueue();;){var g=Wt(),m=g-f,b=g-v;if(h<Qn){var w=Qn-(u?c:0);if(b>=e.deqFastCost*w)break}else if(u){if(m>=e.deqCost*h||m>=e.deqAvgCost*c)break}else if(b>=e.deqNoDrawCost*Qn)break;var T=e.deq(a,p,y);if(T.length>0)for(var E=0;E<T.length;E++)d.push(T[E]);else break}d.length>0&&(e.onDeqd(a,d),!u&&e.shouldRedraw(a,d,p,y)&&i())},o=e.priority||Ti;n.beforeRender(s,o(a))}}}},ap=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:cn;or(this,t),this.idsByKey=new zt,this.keyForId=new zt,this.cachesByLvl=new zt,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return ur(t,[{key:"getIdsFor",value:function(r){r==null&&qe("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(r);return n||(n=new Gr,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 zt,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)})}},{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}(),Js=25,Qa=50,ln=-4,gi=3,Vu=7.99,np=8,ip=1024,sp=1024,op=1024,up=.2,lp=.8,vp=10,fp=.15,cp=.1,dp=.9,hp=.9,gp=100,pp=1,Mr={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},yp=je({getKey:null,doesEleInvalidateKey:cn,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Bo,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),ca=function(e,r){var a=this;a.renderer=e,a.onDequeues=[];var n=yp(r);de(a,n),a.lookup=new ap(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},Xe=ca.prototype;Xe.reasons=Mr;Xe.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};Xe.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=r[t]=r[t]||[];return a};Xe.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new La(function(r,a){return a.reqs-r.reqs});return e};Xe.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};Xe.getElement=function(t,e,r,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),l=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(Si(o*r))),a<ln)a=ln;else if(o>=Vu||a>gi)return null;var u=Math.pow(2,a),v=e.h*u,f=e.w*u,c=s.eleTextBiggerThanMin(t,u);if(!this.isVisible(t,c))return null;var h=l.get(t,a);if(h&&h.invalidated&&(h.invalidated=!1,h.texture.invalidatedWidth-=h.width),h)return h;var d;if(v<=Js?d=Js:v<=Qa?d=Qa:d=Math.ceil(v/Qa)*Qa,v>op||f>sp)return null;var y=i.getTextureQueue(d),p=y[y.length-2],g=function(){return i.recycleTexture(d,f)||i.addTexture(d,f)};p||(p=y[y.length-1]),p||(p=g()),p.width-p.usedWidth<f&&(p=g());for(var m=function(L){return L&&L.scaledLabelShown===c},b=n&&n===Mr.dequeue,w=n&&n===Mr.highQuality,T=n&&n===Mr.downscale,E,x=a+1;x<=gi;x++){var S=l.get(t,x);if(S){E=S;break}}var C=E&&E.level===a+1?E:null,P=function(){p.context.drawImage(C.texture.canvas,C.x,0,C.width,C.height,p.usedWidth,0,f,v)};if(p.context.setTransform(1,0,0,1,0,0),p.context.clearRect(p.usedWidth,0,f,d),m(C))P();else if(m(E))if(w){for(var B=E.level;B>a;B--)C=i.getElement(t,e,r,B,Mr.downscale);P()}else return i.queueElement(t,E.level-1),E;else{var k;if(!b&&!w&&!T)for(var R=a-1;R>=ln;R--){var A=l.get(t,R);if(A){k=A;break}}if(m(k))return i.queueElement(t,a),k;p.context.translate(p.usedWidth,0),p.context.scale(u,u),this.drawElement(p.context,t,e,c,!1),p.context.scale(1/u,1/u),p.context.translate(-p.usedWidth,0)}return h={x:p.usedWidth,texture:p,level:a,scale:u,width:f,height:v,scaledLabelShown:c},p.usedWidth+=Math.ceil(f+np),p.eleCaches.push(h),l.set(t,a,h),i.checkTextureFullness(p),h};Xe.invalidateElements=function(t){for(var e=0;e<t.length;e++)this.invalidateElement(t[e])};Xe.invalidateElement=function(t){var e=this,r=e.lookup,a=[],n=r.isInvalid(t);if(n){for(var i=ln;i<=gi;i++){var s=r.getForCachedKey(t,i);s&&a.push(s)}var o=r.invalidate(t);if(o)for(var l=0;l<a.length;l++){var u=a[l],v=u.texture;v.invalidatedWidth+=u.width,u.invalidated=!0,e.checkTextureUtility(v)}e.removeFromQueue(t)}};Xe.checkTextureUtility=function(t){t.invalidatedWidth>=up*t.width&&this.retireTexture(t)};Xe.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>lp&&t.fullnessChecks>=vp?ar(r,t):t.fullnessChecks++};Xe.retireTexture=function(t){var e=this,r=t.height,a=e.getTextureQueue(r),n=this.lookup;ar(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)}Ci(i);var l=e.getRetiredTextureQueue(r);l.push(t)};Xe.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(ip,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};Xe.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,Ci(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),ar(n,s),a.push(s),s}};Xe.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}};Xe.dequeue=function(t){for(var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s<pp&&r.size()>0;s++){var o=r.pop(),l=o.key,u=o.eles[0],v=i.hasCache(u,o.level);if(a[l]=null,v)continue;n.push(o);var f=e.getBoundingBox(u);e.getElement(u,f,t,o.level,Mr.dequeue)}return n};Xe.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=Ei,r.updateItem(i),r.pop(),a[n]=null):i.eles.unmerge(t))};Xe.onDequeue=function(t){this.onDequeues.push(t)};Xe.offDequeue=function(t){ar(this.onDequeues,t)};Xe.setupDequeueing=Fu.setupDequeueing({deqRedrawThreshold:gp,deqCost:fp,deqAvgCost:cp,deqNoDrawCost:dp,deqFastCost:hp,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 l=s[o].boundingBox();if(Di(l,n))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var mp=1,ha=-4,wn=2,bp=3.99,wp=50,xp=50,Ep=.15,Tp=.1,Cp=.9,Sp=.9,Dp=1,js=250,kp=4e3*4e3,eo=32767,Pp=!0,qu=function(e){var r=this,a=r.renderer=e,n=a.cy;r.layersByLevel={},r.firstGet=!0,r.lastInvalidationTime=Wt()-2*js,r.skipping=!1,r.eleTxrDeqs=n.collection(),r.scheduleElementRefinement=Ra(function(){r.refineElementTextures(r.eleTxrDeqs),r.eleTxrDeqs.unmerge(r.eleTxrDeqs)},xp),a.beforeRender(function(s,o){o-r.lastInvalidationTime<=js?r.skipping=!0:r.skipping=!1},a.beforeRenderPriorities.lyrTxrSkip);var i=function(o,l){return l.reqs-o.reqs};r.layersQueue=new La(i),r.setupDequeueing()},at=qu.prototype,to=0,Bp=Math.pow(2,53)-1;at.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:to=++to%Bp,bb:t,level:e,width:a,height:n,canvas:i,context:i.getContext("2d"),eles:[],elesQueue:[],reqs:0},o=s.context,l=-s.bb.x1,u=-s.bb.y1;return o.scale(r,r),o.translate(l,u),s};at.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(Si(s*e)),r<ha)r=ha;else if(s>=bp||r>wn)return null}a.validateLayersElesOrdering(r,t);var l=a.layersByLevel,u=Math.pow(2,r),v=l[r]=l[r]||[],f,c=a.levelIsComplete(r,t),h,d=function(){var P=function(I){if(a.validateLayersElesOrdering(I,t),a.levelIsComplete(I,t))return h=l[I],!0},B=function(I){if(!h)for(var L=r+I;ha<=L&&L<=wn&&!P(L);L+=I);};B(1),B(-1);for(var k=v.length-1;k>=0;k--){var R=v[k];R.invalid&&ar(v,R)}};if(!c)d();else return v;var y=function(){if(!f){f=pt();for(var P=0;P<t.length;P++)Oo(f,t[P].boundingBox())}return f},p=function(P){P=P||{};var B=P.after;y();var k=Math.ceil(f.w*u),R=Math.ceil(f.h*u);if(k>eo||R>eo)return null;var A=k*R;if(A>kp)return null;var I=a.makeLayer(f,r);if(B!=null){var L=v.indexOf(B)+1;v.splice(L,0,I)}else(P.insert===void 0||P.insert)&&v.unshift(I);return I};if(a.skipping&&!o)return null;for(var g=null,m=t.length/mp,b=!o,w=0;w<t.length;w++){var T=t[w],E=T._private.rscratch,x=E.imgLayerCaches=E.imgLayerCaches||{},S=x[r];if(S){g=S;continue}if((!g||g.eles.length>=m||!No(g.bb,T.boundingBox()))&&(g=p({insert:!0,after:g}),!g))return null;h||b?a.queueLayer(g,T):a.drawEleInLayer(g,T,r,e),g.eles.push(T),x[r]=g}return h||(b?null:v)};at.getEleLevelForLayerLevel=function(t,e){return t};at.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,Pp),i.setImgSmoothing(s,!0))};at.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};at.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}}};at.updateElementsInLayers=function(t,e){for(var r=this,a=Ba(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,l=o.imgLayerCaches=o.imgLayerCaches||{},u=ha;u<=wn;u++){var v=l[u];v&&(i&&r.getEleLevelForLayerLevel(v.level)!==i.level||e(v,s,i))}};at.haveLayers=function(){for(var t=this,e=!1,r=ha;r<=wn;r++){var a=t.layersByLevel[r];if(a&&a.length>0){e=!0;break}}return e};at.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Wt(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,function(a,n,i){e.invalidateLayer(a)}))};at.invalidateLayer=function(t){if(this.lastInvalidationTime=Wt(),!t.invalid){var e=t.level,r=t.eles,a=this.layersByLevel[e];ar(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)}}};at.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])})};at.enqueueElementRefinement=function(t){this.eleTxrDeqs.merge(t),this.scheduleElementRefinement()};at.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))}};at.dequeue=function(t){for(var e=this,r=e.layersQueue,a=[],n=0;n<Dp&&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};at.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()}};at.requestRedraw=Ra(function(){var t=this.renderer;t.redrawHint("eles",!0),t.redrawHint("drag",!0),t.redraw()},100);at.setupDequeueing=Fu.setupDequeueing({deqRedrawThreshold:wp,deqCost:Ep,deqAvgCost:Tp,deqNoDrawCost:Cp,deqFastCost:Sp,deq:function(e,r){return e.dequeue(r)},onDeqd:Ti,shouldRedraw:Bo,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var $u={},ro;function Ap(t,e){for(var r=0;r<e.length;r++){var a=e[r];t.lineTo(a.x,a.y)}}function Rp(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 ao(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 Lp(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 l=i[o];t.lineTo(l.x,l.y)}t.closePath&&t.closePath()}function Mp(t,e,r,a){t.arc(e,r,a,0,Math.PI*2,!1)}$u.arrowShapeImpl=function(t){return(ro||(ro={polygon:Ap,"triangle-backcurve":Rp,"triangle-tee":ao,"circle-triangle":Lp,"triangle-cross":ao,circle:Mp}))[t]};var qt={};qt.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)};qt.drawElementOverlay=function(t,e){var r=this;e.isNode()?r.drawNodeOverlay(t,e):r.drawEdgeOverlay(t,e)};qt.drawElementUnderlay=function(t,e){var r=this;e.isNode()?r.drawNodeUnderlay(t,e):r.drawEdgeUnderlay(t,e)};qt.drawCachedElementPortion=function(t,e,r,a,n,i,s,o){var l=this,u=r.getBoundingBox(e);if(!(u.w===0||u.h===0)){var v=r.getElement(e,u,a,n,i);if(v!=null){var f=o(l,e);if(f===0)return;var c=s(l,e),h=u.x1,d=u.y1,y=u.w,p=u.h,g,m,b,w,T;if(c!==0){var E=r.getRotationPoint(e);b=E.x,w=E.y,t.translate(b,w),t.rotate(c),T=l.getImgSmoothing(t),T||l.setImgSmoothing(t,!0);var x=r.getRotationOffset(e);g=x.x,m=x.y}else g=h,m=d;var S;f!==1&&(S=t.globalAlpha,t.globalAlpha=S*f),t.drawImage(v.texture.canvas,v.x,0,v.width,v.height,g,m,y,p),f!==1&&(t.globalAlpha=S),c!==0&&(t.rotate(-c),t.translate(-b,-w),T||l.setImgSmoothing(t,!1))}else r.drawElement(t,e)}};var Ip=function(){return 0},Op=function(e,r){return e.getTextAngle(r,null)},Np=function(e,r){return e.getTextAngle(r,"source")},zp=function(e,r){return e.getTextAngle(r,"target")},Fp=function(e,r){return r.effectiveOpacity()},Jn=function(e,r){return r.pstyle("text-opacity").pfValue*r.effectiveOpacity()};qt.drawCachedElement=function(t,e,r,a,n,i){var s=this,o=s.data,l=o.eleTxrCache,u=o.lblTxrCache,v=o.slbTxrCache,f=o.tlbTxrCache,c=e.boundingBox(),h=i===!0?l.reasons.highQuality:null;if(!(c.w===0||c.h===0||!e.visible())&&(!a||Di(c,a))){var d=e.isEdge(),y=e.element()._private.rscratch.badLine;s.drawElementUnderlay(t,e),s.drawCachedElementPortion(t,e,l,r,n,h,Ip,Fp),(!d||!y)&&s.drawCachedElementPortion(t,e,u,r,n,h,Op,Jn),d&&!y&&(s.drawCachedElementPortion(t,e,v,r,n,h,Np,Jn),s.drawCachedElementPortion(t,e,f,r,n,h,zp,Jn)),s.drawElementOverlay(t,e)}};qt.drawElements=function(t,e){for(var r=this,a=0;a<e.length;a++){var n=e[a];r.drawElement(t,n)}};qt.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)}};qt.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)}};qt.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],l=o.bb;l.w===0||l.h===0||t.drawImage(o.canvas,l.x1,l.y1,l.w,l.h)}else n.drawCachedElements(t,e,r,a)};var Yt={};Yt.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 l;r&&(l=r,t.translate(-l.x1,-l.y1));var u=i?e.pstyle("opacity").value:1,v=i?e.pstyle("line-opacity").value:1,f=e.pstyle("curve-style").value,c=e.pstyle("line-style").value,h=e.pstyle("width").pfValue,d=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,p=e.pstyle("line-outline-color").value,g=u*v,m=u*v,b=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g;f==="straight-triangle"?(s.eleStrokeStyle(t,e,I),s.drawEdgeTrianglePath(e,t,o.allpts)):(t.lineWidth=h,t.lineCap=d,s.eleStrokeStyle(t,e,I),s.drawEdgePath(e,t,o.allpts,c),t.lineCap="butt")},w=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g;if(t.lineWidth=h+y,t.lineCap=d,y>0)s.colorStrokeStyle(t,p[0],p[1],p[2],I);else{t.lineCap="butt";return}f==="straight-triangle"?s.drawEdgeTrianglePath(e,t,o.allpts):(s.drawEdgePath(e,t,o.allpts,c),t.lineCap="butt")},T=function(){n&&s.drawEdgeOverlay(t,e)},E=function(){n&&s.drawEdgeUnderlay(t,e)},x=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;s.drawArrowheads(t,e,I)},S=function(){s.drawElementText(t,e,null,a)};t.lineJoin="round";var C=e.pstyle("ghost").value==="yes";if(C){var P=e.pstyle("ghost-offset-x").pfValue,B=e.pstyle("ghost-offset-y").pfValue,k=e.pstyle("ghost-opacity").value,R=g*k;t.translate(P,B),b(R),x(R),t.translate(-P,-B)}else w();E(),b(),x(),T(),S(),r&&t.translate(l.x1,l.y1)}};var Ku=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,l=a.pstyle("".concat(e,"-padding")).pfValue,u=2*l,v=a.pstyle("".concat(e,"-color")).value;r.lineWidth=u,o.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",i.colorStrokeStyle(r,v[0],v[1],v[2],n),i.drawEdgePath(a,r,o.allpts,"solid")}}}};Yt.drawEdgeOverlay=Ku("overlay");Yt.drawEdgeUnderlay=Ku("underlay");Yt.drawEdgePath=function(t,e,r,a){var n=t._private.rscratch,i=e,s,o=!1,l=this.usePaths(),u=t.pstyle("line-dash-pattern").pfValue,v=t.pstyle("line-dash-offset").pfValue;if(l){var f=r.join("$"),c=n.pathCacheKey&&n.pathCacheKey===f;c?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=f,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=v;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 h=2;h+3<r.length;h+=4)e.quadraticCurveTo(r[h],r[h+1],r[h+2],r[h+3]);break;case"straight":case"haystack":for(var d=2;d+1<r.length;d+=2)e.lineTo(r[d],r[d+1]);break;case"segments":if(n.isRound){var y=wt(n.roundCorners),p;try{for(y.s();!(p=y.n()).done;){var g=p.value;Au(e,g)}}catch(b){y.e(b)}finally{y.f()}e.lineTo(r[r.length-2],r[r.length-1])}else for(var m=2;m+1<r.length;m+=2)e.lineTo(r[m],r[m+1]);break}e=i,l?e.stroke(s):e.stroke(),e.setLineDash&&e.setLineDash([])};Yt.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],l=[o[0]*a/2,o[1]*a/2];e.beginPath(),e.moveTo(r[n]-l[0],r[n+1]-l[1]),e.lineTo(r[n]+l[0],r[n+1]+l[1]),e.lineTo(r[n+2],r[n+3]),e.closePath(),e.fill()}};Yt.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)};Yt.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,l=e.pstyle(r+"-arrow-shape").value;if(l!=="none"){var u=e.pstyle(r+"-arrow-fill").value==="hollow"?"both":"filled",v=e.pstyle(r+"-arrow-fill").value,f=e.pstyle("width").pfValue,c=e.pstyle(r+"-arrow-width"),h=c.value==="match-line"?f:c.pfValue;c.units==="%"&&(h*=f);var d=e.pstyle("opacity").value;s===void 0&&(s=d);var y=t.globalCompositeOperation;(s!==1||v==="hollow")&&(t.globalCompositeOperation="destination-out",o.colorFillStyle(t,255,255,255,1),o.colorStrokeStyle(t,255,255,255,1),o.drawArrowShape(e,t,u,f,l,h,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,v,f,l,h,a,n,i)}}};Yt.drawArrowShape=function(t,e,r,a,n,i,s,o,l){var u=this,v=this.usePaths()&&n!=="triangle-cross",f=!1,c,h=e,d={x:s,y:o},y=t.pstyle("arrow-scale").value,p=this.getArrowWidth(a,y),g=u.arrowShapes[n];if(v){var m=u.arrowPathCache=u.arrowPathCache||[],b=rr(n),w=m[b];w!=null?(c=e=w,f=!0):(c=e=new Path2D,m[b]=c)}f||(e.beginPath&&e.beginPath(),v?g.draw(e,1,0,{x:0,y:0},1):g.draw(e,p,l,d,a),e.closePath&&e.closePath()),e=h,v&&(e.translate(s,o),e.rotate(l),e.scale(p,p)),(r==="filled"||r==="both")&&(v?e.fill(c):e.fill()),(r==="hollow"||r==="both")&&(e.lineWidth=i/(v?p:1),e.lineJoin="miter",v?e.stroke(c):e.stroke()),v&&(e.scale(1/p,1/p),e.rotate(-l),e.translate(-s,-o))};var $i={};$i.safeDrawImage=function(t,e,r,a,n,i,s,o,l,u){if(!(n<=0||i<=0||l<=0||u<=0))try{t.drawImage(e,r,a,n,i,s,o,l,u)}catch(v){Ae(v)}};$i.drawInscribedImage=function(t,e,r,a,n){var i=this,s=r.position(),o=s.x,l=s.y,u=r.cy().style(),v=u.getIndexedStyle.bind(u),f=v(r,"background-fit","value",a),c=v(r,"background-repeat","value",a),h=r.width(),d=r.height(),y=r.padding()*2,p=h+(v(r,"background-width-relative-to","value",a)==="inner"?0:y),g=d+(v(r,"background-height-relative-to","value",a)==="inner"?0:y),m=r._private.rscratch,b=v(r,"background-clip","value",a),w=b==="node",T=v(r,"background-image-opacity","value",a)*n,E=v(r,"background-image-smoothing","value",a),x=r.pstyle("corner-radius").value;x!=="auto"&&(x=r.pstyle("corner-radius").pfValue);var S=e.width||e.cachedW,C=e.height||e.cachedH;(S==null||C==null)&&(document.body.appendChild(e),S=e.cachedW=e.width||e.offsetWidth,C=e.cachedH=e.height||e.offsetHeight,document.body.removeChild(e));var P=S,B=C;if(v(r,"background-width","value",a)!=="auto"&&(v(r,"background-width","units",a)==="%"?P=v(r,"background-width","pfValue",a)*p:P=v(r,"background-width","pfValue",a)),v(r,"background-height","value",a)!=="auto"&&(v(r,"background-height","units",a)==="%"?B=v(r,"background-height","pfValue",a)*g:B=v(r,"background-height","pfValue",a)),!(P===0||B===0)){if(f==="contain"){var k=Math.min(p/P,g/B);P*=k,B*=k}else if(f==="cover"){var k=Math.max(p/P,g/B);P*=k,B*=k}var R=o-p/2,A=v(r,"background-position-x","units",a),I=v(r,"background-position-x","pfValue",a);A==="%"?R+=(p-P)*I:R+=I;var L=v(r,"background-offset-x","units",a),M=v(r,"background-offset-x","pfValue",a);L==="%"?R+=(p-P)*M:R+=M;var O=l-g/2,q=v(r,"background-position-y","units",a),W=v(r,"background-position-y","pfValue",a);q==="%"?O+=(g-B)*W:O+=W;var V=v(r,"background-offset-y","units",a),$=v(r,"background-offset-y","pfValue",a);V==="%"?O+=(g-B)*$:O+=$,m.pathCache&&(R-=o,O-=l,o=0,l=0);var X=t.globalAlpha;t.globalAlpha=T;var _=i.getImgSmoothing(t),Q=!1;if(E==="no"&&_?(i.setImgSmoothing(t,!1),Q=!0):E==="yes"&&!_&&(i.setImgSmoothing(t,!0),Q=!0),c==="no-repeat")w&&(t.save(),m.pathCache?t.clip(m.pathCache):(i.nodeShapes[i.getNodeShape(r)].draw(t,o,l,p,g,x,m),t.clip())),i.safeDrawImage(t,e,0,0,S,C,R,O,P,B),w&&t.restore();else{var Z=t.createPattern(e,c);t.fillStyle=Z,i.nodeShapes[i.getNodeShape(r)].draw(t,o,l,p,g,x,m),t.translate(R,O),t.fill(),t.translate(-R,-O)}t.globalAlpha=X,Q&&i.setImgSmoothing(t,_)}};var Cr={};Cr.eleTextBiggerThanMin=function(t,e){if(!e){var r=t.cy().zoom(),a=this.getPixelRatio(),n=Math.ceil(Si(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)};Cr.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 l=s.getLabelJustification(e);t.textAlign=l,t.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,v=e.pstyle("label"),f=e.pstyle("source-label"),c=e.pstyle("target-label");if(u||(!v||!v.value)&&(!f||!f.value)&&(!c||!c.value))return;t.textAlign="center",t.textBaseline="bottom"}var h=!r,d;r&&(d=r,t.translate(-d.x1,-d.y1)),n==null?(s.drawText(t,e,null,h,i),e.isEdge()&&(s.drawText(t,e,"source",h,i),s.drawText(t,e,"target",h,i))):s.drawText(t,e,n,h,i),r&&t.translate(d.x1,d.y1)};Cr.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};Cr.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,l=e.pstyle("text-outline-opacity").value*o,u=e.pstyle("color").value,v=e.pstyle("text-outline-color").value;t.font=a+" "+s+" "+n+" "+i,t.lineJoin="round",this.colorFillStyle(t,u[0],u[1],u[2],o),this.colorStrokeStyle(t,v[0],v[1],v[2],l)};function jn(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()}Cr.getTextAngle=function(t,e){var r,a=t._private,n=a.rscratch,i=e?e+"-":"",s=t.pstyle(i+"text-rotation");if(s.strValue==="autorotate"){var o=Bt(n,"labelAngle",e);r=t.isEdge()?o:0}else s.strValue==="none"?r=0:r=s.pfValue;return r};Cr.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 l=Bt(s,"labelX",r),u=Bt(s,"labelY",r),v,f,c=this.getLabelText(e,r);if(c!=null&&c!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(t,e,n);var h=r?r+"-":"",d=Bt(s,"labelWidth",r),y=Bt(s,"labelHeight",r),p=e.pstyle(h+"text-margin-x").pfValue,g=e.pstyle(h+"text-margin-y").pfValue,m=e.isEdge(),b=e.pstyle("text-halign").value,w=e.pstyle("text-valign").value;m&&(b="center",w="center"),l+=p,u+=g;var T;switch(a?T=this.getTextAngle(e,r):T=0,T!==0&&(v=l,f=u,t.translate(v,f),t.rotate(T),l=0,u=0),w){case"top":break;case"center":u+=y/2;break;case"bottom":u+=y;break}var E=e.pstyle("text-background-opacity").value,x=e.pstyle("text-border-opacity").value,S=e.pstyle("text-border-width").pfValue,C=e.pstyle("text-background-padding").pfValue,P=e.pstyle("text-background-shape").strValue,B=P.indexOf("round")===0,k=2;if(E>0||S>0&&x>0){var R=l-C;switch(b){case"left":R-=d;break;case"center":R-=d/2;break}var A=u-y-C,I=d+2*C,L=y+2*C;if(E>0){var M=t.fillStyle,O=e.pstyle("text-background-color").value;t.fillStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+E*o+")",B?jn(t,R,A,I,L,k):t.fillRect(R,A,I,L),t.fillStyle=M}if(S>0&&x>0){var q=t.strokeStyle,W=t.lineWidth,V=e.pstyle("text-border-color").value,$=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+V[0]+","+V[1]+","+V[2]+","+x*o+")",t.lineWidth=S,t.setLineDash)switch($){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=S/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(B?jn(t,R,A,I,L,k,"stroke"):t.strokeRect(R,A,I,L),$==="double"){var X=S/2;B?jn(t,R+X,A+X,I-X*2,L-X*2,k,"stroke"):t.strokeRect(R+X,A+X,I-X*2,L-X*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=W,t.strokeStyle=q}}var _=2*e.pstyle("text-outline-width").pfValue;if(_>0&&(t.lineWidth=_),e.pstyle("text-wrap").value==="wrap"){var Q=Bt(s,"labelWrapCachedLines",r),Z=Bt(s,"labelLineHeight",r),j=d/2,te=this.getLabelJustification(e);switch(te==="auto"||(b==="left"?te==="left"?l+=-d:te==="center"&&(l+=-j):b==="center"?te==="left"?l+=-j:te==="right"&&(l+=j):b==="right"&&(te==="center"?l+=j:te==="right"&&(l+=d))),w){case"top":u-=(Q.length-1)*Z;break;case"center":case"bottom":u-=(Q.length-1)*Z;break}for(var G=0;G<Q.length;G++)_>0&&t.strokeText(Q[G],l,u),t.fillText(Q[G],l,u),u+=Z}else _>0&&t.strokeText(c,l,u),t.fillText(c,l,u);T!==0&&(t.rotate(-T),t.translate(-v,-f))}}};var Jr={};Jr.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,l,u=e._private,v=u.rscratch,f=e.position();if(!(!re(f.x)||!re(f.y))&&!(i&&!e.visible())){var c=i?e.effectiveOpacity():1,h=s.usePaths(),d,y=!1,p=e.padding();o=e.width()+2*p,l=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,w=new Array(b.length),T=new Array(b.length),E=0,x=0;x<b.length;x++){var S=b[x],C=w[x]=S!=null&&S!=="none";if(C){var P=e.cy().style().getIndexedStyle(e,"background-image-crossorigin","value",x);E++,T[x]=s.getCachedImage(S,P,function(){u.backgroundTimestamp=Date.now(),e.emitAndNotify("background")})}}var B=e.pstyle("background-blacken").value,k=e.pstyle("border-width").pfValue,R=e.pstyle("background-opacity").value*c,A=e.pstyle("border-color").value,I=e.pstyle("border-style").value,L=e.pstyle("border-join").value,M=e.pstyle("border-cap").value,O=e.pstyle("border-position").value,q=e.pstyle("border-dash-pattern").pfValue,W=e.pstyle("border-dash-offset").pfValue,V=e.pstyle("border-opacity").value*c,$=e.pstyle("outline-width").pfValue,X=e.pstyle("outline-color").value,_=e.pstyle("outline-style").value,Q=e.pstyle("outline-opacity").value*c,Z=e.pstyle("outline-offset").value,j=e.pstyle("corner-radius").value;j!=="auto"&&(j=e.pstyle("corner-radius").pfValue);var te=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:R;s.eleFillStyle(t,e,F)},G=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:V;s.colorStrokeStyle(t,A[0],A[1],A[2],F)},N=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Q;s.colorStrokeStyle(t,X[0],X[1],X[2],F)},H=function(F,K,ae,Y){var ne=s.nodePathCache=s.nodePathCache||[],ce=Po(ae==="polygon"?ae+","+Y.join(","):ae,""+K,""+F,""+j),xe=ne[ce],ve,be=!1;return xe!=null?(ve=xe,be=!0,v.pathCache=ve):(ve=new Path2D,ne[ce]=v.pathCache=ve),{path:ve,cacheHit:be}},ee=e.pstyle("shape").strValue,ie=e.pstyle("shape-polygon-points").pfValue;if(h){t.translate(f.x,f.y);var ue=H(o,l,ee,ie);d=ue.path,y=ue.cacheHit}var Ce=function(){if(!y){var F=f;h&&(F={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(d||t,F.x,F.y,o,l,j,v)}h?t.fill(d):t.fill()},Re=function(){for(var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ae=u.backgrounding,Y=0,ne=0;ne<T.length;ne++){var ce=e.cy().style().getIndexedStyle(e,"background-image-containment","value",ne);if(K&&ce==="over"||!K&&ce==="inside"){Y++;continue}w[ne]&&T[ne].complete&&!T[ne].error&&(Y++,s.drawInscribedImage(t,T[ne],e,ne,F))}u.backgrounding=Y!==E,ae!==u.backgrounding&&e.updateStyle(!1)},Le=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;s.hasPie(e)&&(s.drawPie(t,e,K),F&&(h||s.nodeShapes[s.getNodeShape(e)].draw(t,f.x,f.y,o,l,j,v)))},le=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,K=(B>0?B:-B)*F,ae=B>0?0:255;B!==0&&(s.colorFillStyle(t,ae,ae,ae,K),h?t.fill(d):t.fill())},oe=function(){if(k>0){if(t.lineWidth=k,t.lineCap=M,t.lineJoin=L,t.setLineDash)switch(I){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(q),t.lineDashOffset=W;break;case"solid":case"double":t.setLineDash([]);break}if(O!=="center"){if(t.save(),t.lineWidth*=2,O==="inside")h?t.clip(d):t.clip();else{var F=new Path2D;F.rect(-o/2-k,-l/2-k,o+2*k,l+2*k),F.addPath(d),t.clip(F,"evenodd")}h?t.stroke(d):t.stroke(),t.restore()}else h?t.stroke(d):t.stroke();if(I==="double"){t.lineWidth=k/3;var K=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",h?t.stroke(d):t.stroke(),t.globalCompositeOperation=K}t.setLineDash&&t.setLineDash([])}},pe=function(){if($>0){if(t.lineWidth=$,t.lineCap="butt",t.setLineDash)switch(_){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var F=f;h&&(F={x:0,y:0});var K=s.getNodeShape(e),ae=k;O==="inside"&&(ae=0),O==="outside"&&(ae*=2);var Y=(o+ae+($+Z))/o,ne=(l+ae+($+Z))/l,ce=o*Y,xe=l*ne,ve=s.nodeShapes[K].points,be;if(h){var we=H(ce,xe,K,ve);be=we.path}if(K==="ellipse")s.drawEllipsePath(be||t,F.x,F.y,ce,xe);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(K)){var ge=0,Oe=0,Ve=0;K==="round-diamond"?ge=(ae+Z+$)*1.4:K==="round-heptagon"?(ge=(ae+Z+$)*1.075,Ve=-(ae/2+Z+$)/35):K==="round-hexagon"?ge=(ae+Z+$)*1.12:K==="round-pentagon"?(ge=(ae+Z+$)*1.13,Ve=-(ae/2+Z+$)/15):K==="round-tag"?(ge=(ae+Z+$)*1.12,Oe=(ae/2+$+Z)*.07):K==="round-triangle"&&(ge=(ae+Z+$)*(Math.PI/2),Ve=-(ae+Z/2+$)/Math.PI),ge!==0&&(Y=(o+ge)/o,ce=o*Y,["round-hexagon","round-tag"].includes(K)||(ne=(l+ge)/l,xe=l*ne)),j=j==="auto"?Vo(ce,xe):j;for(var yt=ce/2,mt=xe/2,Ge=j+(ae+$+Z)/2,Ye=new Array(ve.length/2),_e=new Array(ve.length/2),vt=0;vt<ve.length/2;vt++)Ye[vt]={x:F.x+Oe+yt*ve[vt*2],y:F.y+Ve+mt*ve[vt*2+1]};var ft,Rt,Et,Lt,$t=Ye.length;for(Rt=Ye[$t-1],ft=0;ft<$t;ft++)Et=Ye[ft%$t],Lt=Ye[(ft+1)%$t],_e[ft]=Vi(Rt,Et,Lt,Ge),Rt=Et,Et=Lt;s.drawRoundPolygonPath(be||t,F.x+Oe,F.y+Ve,o*Y,l*ne,ve,_e)}else if(["roundrectangle","round-rectangle"].includes(K))j=j==="auto"?br(ce,xe):j,s.drawRoundRectanglePath(be||t,F.x,F.y,ce,xe,j+(ae+$+Z)/2);else if(["cutrectangle","cut-rectangle"].includes(K))j=j==="auto"?ki():j,s.drawCutRectanglePath(be||t,F.x,F.y,ce,xe,null,j+(ae+$+Z)/4);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(K))j=j==="auto"?br(ce,xe):j,s.drawBottomRoundRectanglePath(be||t,F.x,F.y,ce,xe,j+(ae+$+Z)/2);else if(K==="barrel")s.drawBarrelPath(be||t,F.x,F.y,ce,xe);else if(K.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(K)){var Kt=(ae+$+Z)/o;ve=dn(hn(ve,Kt)),s.drawPolygonPath(be||t,F.x,F.y,o,l,ve)}else{var nt=(ae+$+Z)/o;ve=dn(hn(ve,-nt)),s.drawPolygonPath(be||t,F.x,F.y,o,l,ve)}if(h?t.stroke(be):t.stroke(),_==="double"){t.lineWidth=ae/3;var Ze=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",h?t.stroke(be):t.stroke(),t.globalCompositeOperation=Ze}t.setLineDash&&t.setLineDash([])}},ye=function(){n&&s.drawNodeOverlay(t,e,f,o,l)},he=function(){n&&s.drawNodeUnderlay(t,e,f,o,l)},me=function(){s.drawElementText(t,e,null,a)},Ee=e.pstyle("ghost").value==="yes";if(Ee){var Se=e.pstyle("ghost-offset-x").pfValue,J=e.pstyle("ghost-offset-y").pfValue,D=e.pstyle("ghost-opacity").value,z=D*c;t.translate(Se,J),N(),pe(),te(D*R),Ce(),Re(z,!0),G(D*V),oe(),Le(B!==0||k!==0),Re(z,!1),le(z),t.translate(-Se,-J)}h&&t.translate(-f.x,-f.y),he(),h&&t.translate(f.x,f.y),N(),pe(),te(),Ce(),Re(c,!0),G(),oe(),Le(B!==0||k!==0),Re(c,!1),le(),h&&t.translate(-f.x,-f.y),me(),ye(),r&&t.translate(g.x1,g.y1)}};var Gu=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 l=a.pstyle("".concat(e,"-padding")).pfValue,u=a.pstyle("".concat(e,"-opacity")).value,v=a.pstyle("".concat(e,"-color")).value,f=a.pstyle("".concat(e,"-shape")).value,c=a.pstyle("".concat(e,"-corner-radius")).value;if(u>0){if(n=n||a.position(),i==null||s==null){var h=a.padding();i=a.width()+2*h,s=a.height()+2*h}o.colorFillStyle(r,v[0],v[1],v[2],u),o.nodeShapes[f].draw(r,n.x,n.y,i+l*2,s+l*2,c),r.fill()}}}};Jr.drawNodeOverlay=Gu("overlay");Jr.drawNodeUnderlay=Gu("underlay");Jr.hasPie=function(t){return t=t[0],t._private.hasPie};Jr.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,l=e.width(),u=e.height(),v=Math.min(l,u)/2,f=0,c=this.usePaths();c&&(s=0,o=0),i.units==="%"?v=v*i.pfValue:i.pfValue!==void 0&&(v=i.pfValue/2);for(var h=1;h<=n.pieBackgroundN;h++){var d=e.pstyle("pie-"+h+"-background-size").value,y=e.pstyle("pie-"+h+"-background-color").value,p=e.pstyle("pie-"+h+"-background-opacity").value*r,g=d/100;g+f>1&&(g=1-f);var m=1.5*Math.PI+2*Math.PI*f,b=2*Math.PI*g,w=m+b;d===0||f>=1||f+g>1||(t.beginPath(),t.moveTo(s,o),t.arc(s,o,v,m,w),t.closePath(),this.colorFillStyle(t,y[0],y[1],y[2],p),t.fill(),f+=g)}};var dt={},Vp=100;dt.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};dt.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};dt.createGradientStyleFor=function(t,e,r,a,n){var i,s=this.usePaths(),o=r.pstyle(e+"-gradient-stop-colors").value,l=r.pstyle(e+"-gradient-stop-positions").pfValue;if(a==="radial-gradient")if(r.isEdge()){var u=r.sourceEndpoint(),v=r.targetEndpoint(),f=r.midpoint(),c=mr(u,f),h=mr(v,f);i=t.createRadialGradient(f.x,f.y,0,f.x,f.y,Math.max(c,h))}else{var d=s?{x:0,y:0}:r.position(),y=r.paddedWidth(),p=r.paddedHeight();i=t.createRadialGradient(d.x,d.y,0,d.x,d.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(),w=r.paddedWidth(),T=r.paddedHeight(),E=w/2,x=T/2,S=r.pstyle("background-gradient-direction").value;switch(S){case"to-bottom":i=t.createLinearGradient(b.x,b.y-x,b.x,b.y+x);break;case"to-top":i=t.createLinearGradient(b.x,b.y+x,b.x,b.y-x);break;case"to-left":i=t.createLinearGradient(b.x+E,b.y,b.x-E,b.y);break;case"to-right":i=t.createLinearGradient(b.x-E,b.y,b.x+E,b.y);break;case"to-bottom-right":case"to-right-bottom":i=t.createLinearGradient(b.x-E,b.y-x,b.x+E,b.y+x);break;case"to-top-right":case"to-right-top":i=t.createLinearGradient(b.x-E,b.y+x,b.x+E,b.y-x);break;case"to-bottom-left":case"to-left-bottom":i=t.createLinearGradient(b.x+E,b.y-x,b.x-E,b.y+x);break;case"to-top-left":case"to-left-top":i=t.createLinearGradient(b.x+E,b.y+x,b.x-E,b.y-x);break}}if(!i)return null;for(var C=l.length===o.length,P=o.length,B=0;B<P;B++)i.addColorStop(C?l[B]:B/(P-1),"rgba("+o[B][0]+","+o[B][1]+","+o[B][2]+","+n+")");return i};dt.gradientFillStyle=function(t,e,r,a){var n=this.createGradientStyleFor(t,"background",e,r,a);if(!n)return null;t.fillStyle=n};dt.colorFillStyle=function(t,e,r,a,n){t.fillStyle="rgba("+e+","+r+","+a+","+n+")"};dt.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)}};dt.gradientStrokeStyle=function(t,e,r,a){var n=this.createGradientStyleFor(t,"line",e,r,a);if(!n)return null;t.strokeStyle=n};dt.colorStrokeStyle=function(t,e,r,a,n){t.strokeStyle="rgba("+e+","+r+","+a+","+n+")"};dt.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)}};dt.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 l=n*s,u=i*s,v;if(!(l===e.canvasWidth&&u===e.canvasHeight)){e.fontCaches=null;var f=r.canvasContainer;f.style.width=n+"px",f.style.height=i+"px";for(var c=0;c<e.CANVAS_LAYERS;c++)v=r.canvases[c],v.width=l,v.height=u,v.style.width=n+"px",v.style.height=i+"px";for(var c=0;c<e.BUFFER_COUNT;c++)v=r.bufferCanvases[c],v.width=l,v.height=u,v.style.width=n+"px",v.style.height=i+"px";e.textureMult=1,s<=1&&(v=r.bufferCanvases[e.TEXTURE_BUFFER],e.textureMult=2,v.width=l*e.textureMult,v.height=u*e.textureMult),e.canvasWidth=l,e.canvasHeight=u,e.pixelRatio=s}};dt.renderTo=function(t,e,r,a){this.render({forcedContext:t,forcedZoom:e,forcedPan:r,drawAllLayers:!0,forcedPxRatio:a})};dt.clearCanvas=function(){var t=this,e=t.data;function r(a){a.clearRect(0,0,t.canvasWidth,t.canvasHeight)}r(e.contexts[t.NODE]),r(e.contexts[t.DRAG])};dt.render=function(t){var e=this;t=t||Lo();var r=e.cy,a=t.forcedContext,n=t.drawAllLayers,i=t.drawOnlyNodeLayer,s=t.forcedZoom,o=t.forcedPan,l=t.forcedPxRatio===void 0?this.getPixelRatio():t.forcedPxRatio,u=e.data,v=u.canvasNeedsRedraw,f=e.textureOnViewport&&!a&&(e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming),c=t.motionBlur!==void 0?t.motionBlur:e.motionBlur,h=e.motionBlurPxRatio,d=r.hasCompoundNodes(),y=e.hoverData.draggingEles,p=!!(e.hoverData.selecting||e.touchData.selecting);c=c&&!a&&e.motionBlurEnabled&&!p;var g=c;a||(e.prevPxRatio!==l&&(e.invalidateContainerClientCoordsCache(),e.matchCanvasSize(e.container),e.redrawHint("eles",!0),e.redrawHint("drag",!0)),e.prevPxRatio=l),!a&&e.motionBlurTimeout&&clearTimeout(e.motionBlurTimeout),c&&(e.mbFrames==null&&(e.mbFrames=0),e.mbFrames++,e.mbFrames<3&&(g=!1),e.mbFrames>e.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!f&&(v[e.NODE]=!0,v[e.SELECT_BOX]=!0);var m=r.style(),b=r.zoom(),w=s!==void 0?s:b,T=r.pan(),E={x:T.x,y:T.y},x={zoom:b,pan:{x:T.x,y:T.y}},S=e.prevViewport,C=S===void 0||x.zoom!==S.zoom||x.pan.x!==S.pan.x||x.pan.y!==S.pan.y;!C&&!(y&&!d)&&(e.motionBlurPxRatio=1),o&&(E=o),w*=l,E.x*=l,E.y*=l;var P=e.getCachedZSortedEles();function B(G,N,H,ee,ie){var ue=G.globalCompositeOperation;G.globalCompositeOperation="destination-out",e.colorFillStyle(G,255,255,255,e.motionBlurTransparency),G.fillRect(N,H,ee,ie),G.globalCompositeOperation=ue}function k(G,N){var H,ee,ie,ue;!e.clearingMotionBlur&&(G===u.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||G===u.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG])?(H={x:T.x*h,y:T.y*h},ee=b*h,ie=e.canvasWidth*h,ue=e.canvasHeight*h):(H=E,ee=w,ie=e.canvasWidth,ue=e.canvasHeight),G.setTransform(1,0,0,1,0,0),N==="motionBlur"?B(G,0,0,ie,ue):!a&&(N===void 0||N)&&G.clearRect(0,0,ie,ue),n||(G.translate(H.x,H.y),G.scale(ee,ee)),o&&G.translate(o.x,o.y),s&&G.scale(s,s)}if(f||(e.textureDrawLastFrame=!1),f){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=r.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var R=e.data.bufferContexts[e.TEXTURE_BUFFER];R.setTransform(1,0,0,1,0,0),R.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:R,drawOnlyNodeLayer:!0,forcedPxRatio:l*e.textureMult});var x=e.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:e.canvasWidth,height:e.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}v[e.DRAG]=!1,v[e.NODE]=!1;var A=u.contexts[e.NODE],I=e.textureCache.texture,x=e.textureCache.viewport;A.setTransform(1,0,0,1,0,0),c?B(A,0,0,x.width,x.height):A.clearRect(0,0,x.width,x.height);var L=m.core("outside-texture-bg-color").value,M=m.core("outside-texture-bg-opacity").value;e.colorFillStyle(A,L[0],L[1],L[2],M),A.fillRect(0,0,x.width,x.height);var b=r.zoom();k(A,!1),A.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l),A.drawImage(I,x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l)}else e.textureOnViewport&&!a&&(e.textureCache=null);var O=r.extent(),q=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),W=e.hideEdgesOnViewport&&q,V=[];if(V[e.NODE]=!v[e.NODE]&&c&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,V[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),V[e.DRAG]=!v[e.DRAG]&&c&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,V[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),v[e.NODE]||n||i||V[e.NODE]){var $=c&&!V[e.NODE]&&h!==1,A=a||($?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:u.contexts[e.NODE]),X=c&&!$?"motionBlur":void 0;k(A,X),W?e.drawCachedNodes(A,P.nondrag,l,O):e.drawLayeredElements(A,P.nondrag,l,O),e.debug&&e.drawDebugPoints(A,P.nondrag),!n&&!c&&(v[e.NODE]=!1)}if(!i&&(v[e.DRAG]||n||V[e.DRAG])){var $=c&&!V[e.DRAG]&&h!==1,A=a||($?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:u.contexts[e.DRAG]);k(A,c&&!$?"motionBlur":void 0),W?e.drawCachedNodes(A,P.drag,l,O):e.drawCachedElements(A,P.drag,l,O),e.debug&&e.drawDebugPoints(A,P.drag),!n&&!c&&(v[e.DRAG]=!1)}if(this.drawSelectionRectangle(t,k),c&&h!==1){var _=u.contexts[e.NODE],Q=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],Z=u.contexts[e.DRAG],j=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],te=function(N,H,ee){N.setTransform(1,0,0,1,0,0),ee||!g?N.clearRect(0,0,e.canvasWidth,e.canvasHeight):B(N,0,0,e.canvasWidth,e.canvasHeight);var ie=h;N.drawImage(H,0,0,e.canvasWidth*ie,e.canvasHeight*ie,0,0,e.canvasWidth,e.canvasHeight)};(v[e.NODE]||V[e.NODE])&&(te(_,Q,V[e.NODE]),v[e.NODE]=!1),(v[e.DRAG]||V[e.DRAG])&&(te(Z,j,V[e.DRAG]),v[e.DRAG]=!1)}e.prevViewport=x,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),c&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!f,e.mbFrames=0,v[e.NODE]=!0,v[e.DRAG]=!0,e.redraw()},Vp)),a||r.emit("render")};var sa;dt.drawSelectionRectangle=function(t,e){var r=this,a=r.cy,n=r.data,i=a.style(),s=t.drawOnlyNodeLayer,o=t.drawAllLayers,l=n.canvasNeedsRedraw,u=t.forcedContext;if(r.showFps||!s&&l[r.SELECT_BOX]&&!o){var v=u||n.contexts[r.SELECT_BOX];if(e(v),r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var f=r.cy.zoom(),c=i.core("selection-box-border-width").value/f;v.lineWidth=c,v.fillStyle="rgba("+i.core("selection-box-color").value[0]+","+i.core("selection-box-color").value[1]+","+i.core("selection-box-color").value[2]+","+i.core("selection-box-opacity").value+")",v.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]),c>0&&(v.strokeStyle="rgba("+i.core("selection-box-border-color").value[0]+","+i.core("selection-box-border-color").value[1]+","+i.core("selection-box-border-color").value[2]+","+i.core("selection-box-opacity").value+")",v.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]))}if(n.bgActivePosistion&&!r.hoverData.selecting){var f=r.cy.zoom(),h=n.bgActivePosistion;v.fillStyle="rgba("+i.core("active-bg-color").value[0]+","+i.core("active-bg-color").value[1]+","+i.core("active-bg-color").value[2]+","+i.core("active-bg-opacity").value+")",v.beginPath(),v.arc(h.x,h.y,i.core("active-bg-size").pfValue/f,0,2*Math.PI),v.fill()}var d=r.lastRedrawTime;if(r.showFps&&d){d=Math.round(d);var y=Math.round(1e3/d),p="1 frame = "+d+" ms = "+y+" fps";if(v.setTransform(1,0,0,1,0,0),v.fillStyle="rgba(255, 0, 0, 0.75)",v.strokeStyle="rgba(255, 0, 0, 0.75)",v.font="30px Arial",!sa){var g=v.measureText(p);sa=g.actualBoundingBoxAscent}v.fillText(p,0,sa);var m=60;v.strokeRect(0,sa+10,250,20),v.fillRect(0,sa+10,250*Math.min(y/m,1),20)}o||(l[r.SELECT_BOX]=!1)}};function no(t,e,r){var a=t.createShader(e);if(t.shaderSource(a,r),t.compileShader(a),!t.getShaderParameter(a,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(a));return a}function qp(t,e,r){var a=no(t,t.VERTEX_SHADER,e),n=no(t,t.FRAGMENT_SHADER,r),i=t.createProgram();if(t.attachShader(i,a),t.attachShader(i,n),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS))throw new Error("Could not initialize shaders");return i}function $p(t,e,r){r===void 0&&(r=e);var a=t.makeOffscreenCanvas(e,r),n=a.context=a.getContext("2d");return a.clear=function(){return n.clearRect(0,0,a.width,a.height)},a.clear(),a}function Ki(t){var e=t.pixelRatio,r=t.cy.zoom(),a=t.cy.pan();return{zoom:r*e,pan:{x:a.x*e,y:a.y*e}}}function Kp(t,e,r,a,n){var i=a*r+e.x,s=n*r+e.y;return s=Math.round(t.canvasHeight-s),[i,s]}function Ja(t,e,r){var a=t[0]/255,n=t[1]/255,i=t[2]/255,s=e,o=r||new Array(4);return o[0]=a*s,o[1]=n*s,o[2]=i*s,o[3]=s,o}function ja(t,e){var r=e||new Array(4);return r[0]=(t>>0&255)/255,r[1]=(t>>8&255)/255,r[2]=(t>>16&255)/255,r[3]=(t>>24&255)/255,r}function Gp(t){return t[0]+(t[1]<<8)+(t[2]<<16)+(t[3]<<24)}function Wp(t,e){var r=t.createTexture();return r.buffer=function(a){t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_NEAREST),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,a),t.generateMipmap(t.TEXTURE_2D),t.bindTexture(t.TEXTURE_2D,null)},r.deleteTexture=function(){t.deleteTexture(r)},r}function Wu(t,e){switch(e){case"float":return[1,t.FLOAT,4];case"vec2":return[2,t.FLOAT,4];case"vec3":return[3,t.FLOAT,4];case"vec4":return[4,t.FLOAT,4];case"int":return[1,t.INT,4];case"ivec2":return[2,t.INT,4]}}function Hu(t,e,r){switch(e){case t.FLOAT:return new Float32Array(r);case t.INT:return new Int32Array(r)}}function Hp(t,e,r,a,n,i){switch(e){case t.FLOAT:return new Float32Array(r.buffer,i*a,n);case t.INT:return new Int32Array(r.buffer,i*a,n)}}function Up(t,e,r,a){var n=Wu(t,e),i=Je(n,2),s=i[0],o=i[1],l=Hu(t,o,a),u=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,u),t.bufferData(t.ARRAY_BUFFER,l,t.STATIC_DRAW),o===t.FLOAT?t.vertexAttribPointer(r,s,o,!1,0,0):o===t.INT&&t.vertexAttribIPointer(r,s,o,0,0),t.enableVertexAttribArray(r),t.bindBuffer(t.ARRAY_BUFFER,null),u}function bt(t,e,r,a){var n=Wu(t,r),i=Je(n,3),s=i[0],o=i[1],l=i[2],u=Hu(t,o,e*s),v=s*l,f=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,f),t.bufferData(t.ARRAY_BUFFER,e*v,t.DYNAMIC_DRAW),t.enableVertexAttribArray(a),o===t.FLOAT?t.vertexAttribPointer(a,s,o,!1,v,0):o===t.INT&&t.vertexAttribIPointer(a,s,o,v,0),t.vertexAttribDivisor(a,1),t.bindBuffer(t.ARRAY_BUFFER,null);for(var c=new Array(e),h=0;h<e;h++)c[h]=Hp(t,o,u,v,s,h);return f.dataArray=u,f.stride=v,f.size=s,f.getView=function(d){return c[d]},f.setPoint=function(d,y,p){var g=c[d];g[0]=y,g[1]=p},f.bufferSubData=function(d){t.bindBuffer(t.ARRAY_BUFFER,f),d?t.bufferSubData(t.ARRAY_BUFFER,0,u,0,d*s):t.bufferSubData(t.ARRAY_BUFFER,0,u)},f}function Xp(t){var e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0),t.bindFramebuffer(t.FRAMEBUFFER,null),e.setFramebufferAttachmentSizes=function(a,n){t.bindTexture(t.TEXTURE_2D,r),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,a,n,0,t.RGBA,t.UNSIGNED_BYTE,null)},e}var io=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});function ga(){var t=new io(9);return io!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function Uu(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function Yp(t,e,r){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],v=e[7],f=e[8],c=r[0],h=r[1],d=r[2],y=r[3],p=r[4],g=r[5],m=r[6],b=r[7],w=r[8];return t[0]=c*a+h*s+d*u,t[1]=c*n+h*o+d*v,t[2]=c*i+h*l+d*f,t[3]=y*a+p*s+g*u,t[4]=y*n+p*o+g*v,t[5]=y*i+p*l+g*f,t[6]=m*a+b*s+w*u,t[7]=m*n+b*o+w*v,t[8]=m*i+b*l+w*f,t}function xn(t,e,r){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],v=e[7],f=e[8],c=r[0],h=r[1];return t[0]=a,t[1]=n,t[2]=i,t[3]=s,t[4]=o,t[5]=l,t[6]=c*a+h*s+u,t[7]=c*n+h*o+v,t[8]=c*i+h*l+f,t}function Xu(t,e,r){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],v=e[7],f=e[8],c=Math.sin(r),h=Math.cos(r);return t[0]=h*a+c*s,t[1]=h*n+c*o,t[2]=h*i+c*l,t[3]=h*s-c*a,t[4]=h*o-c*n,t[5]=h*l-c*i,t[6]=u,t[7]=v,t[8]=f,t}function Gi(t,e,r){var a=r[0],n=r[1];return t[0]=a*e[0],t[1]=a*e[1],t[2]=a*e[2],t[3]=n*e[3],t[4]=n*e[4],t[5]=n*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function _p(t,e,r){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/r,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t}var pa={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},oa=je({getKey:null,drawElement:null,getBoundingBox:null,getRotation:null,getRotationPoint:null,getRotationOffset:null,isVisible:null,getPadding:null}),Zp=function(){function t(e,r){or(this,t),this.debugID=Math.floor(Math.random()*1e4),this.r=e,this.atlasSize=r.webglTexSize,this.rows=r.webglTexRows,this.enableWrapping=r.enableWrapping,this.texHeight=Math.floor(this.atlasSize/this.rows),this.maxTexWidth=this.atlasSize,this.texture=null,this.canvas=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=r.createTextureCanvas(e,this.atlasSize,this.atlasSize),this.scratch=r.createTextureCanvas(e,this.atlasSize,this.texHeight,"scratch")}return ur(t,[{key:"getKeys",value:function(){return new Set(this.keyToLocation.keys())}},{key:"getScale",value:function(r){var a=r.w,n=r.h,i=this.texHeight,s=this.maxTexWidth,o=i/n,l=a*o,u=n*o;return l>s&&(o=s/a,l=a*o,u=n*o),{scale:o,texW:l,texH:u}}},{key:"draw",value:function(r,a,n){var i=this,s=this.atlasSize,o=this.rows,l=this.texHeight,u=this.getScale(a),v=u.scale,f=u.texW,c=u.texH,h=[null,null],d=function(b,w){if(n&&w){var T=w.context,E=b.x,x=b.row,S=E,C=l*x;T.save(),T.translate(S,C),T.scale(v,v),n(T,a),T.restore()}},y=function(){d(i.freePointer,i.canvas),h[0]={x:i.freePointer.x,y:i.freePointer.row*l,w:f,h:c},h[1]={x:i.freePointer.x+f,y:i.freePointer.row*l,w:0,h:c},i.freePointer.x+=f,i.freePointer.x==s&&(i.freePointer.x=0,i.freePointer.row++)},p=function(){var b=i.scratch,w=i.canvas;b.clear(),d({x:0,row:0},b);var T=s-i.freePointer.x,E=f-T,x=l;{var S=i.freePointer.x,C=i.freePointer.row*l,P=T;w.context.drawImage(b,0,0,P,x,S,C,P,x),h[0]={x:S,y:C,w:P,h:c}}{var B=T,k=(i.freePointer.row+1)*l,R=E;w&&w.context.drawImage(b,B,0,R,x,0,k,R,x),h[1]={x:0,y:k,w:R,h:c}}i.freePointer.x=E,i.freePointer.row++},g=function(){i.freePointer.x=0,i.freePointer.row++};if(this.freePointer.x+f<=s)y();else{if(this.freePointer.row>=o-1)return!1;this.freePointer.x===s?(g(),y()):this.enableWrapping?p():(g(),y())}return this.keyToLocation.set(r,h),this.needsBuffer=!0,h}},{key:"getOffsets",value:function(r){return this.keyToLocation.get(r)}},{key:"isEmpty",value:function(){return this.freePointer.x===0&&this.freePointer.row===0}},{key:"canFit",value:function(r){var a=this.atlasSize,n=this.rows,i=this.getScale(r),s=i.texW;return this.freePointer.x+s>a?this.freePointer.row<n-1:!0}},{key:"bufferIfNeeded",value:function(r){this.texture||(this.texture=Wp(r,this.debugID)),this.needsBuffer&&(this.texture.buffer(this.canvas),this.needsBuffer=!1)}},{key:"dispose",value:function(){this.texture&&(this.texture.deleteTexture(),this.texture=null,this.needsBuffer=!0)}}]),t}(),Qp=function(){function t(e,r){or(this,t),this.r=e,this.opts=r,this.keyToIds=new Map,this.idToKey=new Map,this.atlases=[],this.styleKeyToAtlas=new Map,this.styleKeyNeedsRedraw=new Set,this.forceGC=!1}return ur(t,[{key:"getKeys",value:function(){return new Set(this.styleKeyToAtlas.keys())}},{key:"getIdsFor",value:function(r){var a=this.keyToIds.get(r);return a||(a=new Set,this.keyToIds.set(r,a)),a}},{key:"_createAtlas",value:function(){var r=this.r,a=this.opts;return new Zp(r,a)}},{key:"_getScratchCanvas",value:function(){if(!this.scratch){var r=this.r,a=this.opts,n=a.webglTexSize,i=Math.floor(n/a.webglTexRows);this.scratch=a.createTextureCanvas(r,n,i,"scratch")}return this.scratch}},{key:"draw",value:function(r,a,n,i){if(this.styleKeyNeedsRedraw.has(a)){this.styleKeyNeedsRedraw.delete(a),this.deleteKey(r,a);var s=this.styleKeyToAtlas.get(a);s&&(s.forceGC=!0),this.styleKeyToAtlas.delete(a)}var o=this.styleKeyToAtlas.get(a);return o||(o=this.atlases[this.atlases.length-1],(!o||!o.canFit(n))&&(o=this._createAtlas(),this.atlases.push(o)),o.draw(a,n,i),this.styleKeyToAtlas.set(a,o),this.getIdsFor(a).add(r),this.idToKey.set(r,a)),o}},{key:"getAtlas",value:function(r){return this.styleKeyToAtlas.get(r)}},{key:"hasAtlas",value:function(r){return this.styleKeyToAtlas.has(r)}},{key:"deleteKey",value:function(r,a){this.idToKey.delete(r),this.getIdsFor(a).delete(r)}},{key:"checkKeyIsInvalid",value:function(r,a){if(!this.idToKey.has(r))return!1;var n=this.idToKey.get(r);return n!=a?(this.deleteKey(r,n),!0):!1}},{key:"_getKeysToCollect",value:function(){var r=new Set,a=wt(this.styleKeyToAtlas.keys()),n;try{for(a.s();!(n=a.n()).done;){var i=n.value;this.getIdsFor(i).size==0&&r.add(i)}}catch(s){a.e(s)}finally{a.f()}return r}},{key:"gc",value:function(){var r=this,a=this.atlases.some(function(c){return c.forceGC}),n=this._getKeysToCollect();if(n.size===0&&!a){console.log("nothing to garbage collect");return}var i=[],s=new Map,o=null,l=wt(this.atlases),u;try{var v=function(){var h=u.value,d=h.getKeys(),y=Jp(n,d);if(y.size===0&&!h.forceGC)return i.push(h),d.forEach(function(x){return s.set(x,h)}),"continue";o||(o=r._createAtlas(),i.push(o));var p=wt(d),g;try{for(p.s();!(g=p.n()).done;){var m=g.value;if(!y.has(m)){var b=h.getOffsets(m),w=Je(b,2),T=w[0],E=w[1];o.canFit({w:T.w+E.w,h:T.h})||(o=r._createAtlas(),i.push(o)),r._copyTextureToNewAtlas(m,h,o),s.set(m,o)}}}catch(x){p.e(x)}finally{p.f()}};for(l.s();!(u=l.n()).done;)var f=v()}catch(c){l.e(c)}finally{l.f()}this.atlases=i,this.styleKeyToAtlas=s}},{key:"_copyTextureToNewAtlas",value:function(r,a,n){var i=a.getOffsets(r),s=Je(i,2),o=s[0],l=s[1];if(l.w===0)n.draw(r,o,function(c){c.drawImage(a.canvas,o.x,o.y,o.w,o.h,0,0,o.w,o.h)});else{var u=this._getScratchCanvas();u.clear(),u.context.drawImage(a.canvas,o.x,o.y,o.w,o.h,0,0,o.w,o.h),u.context.drawImage(a.canvas,l.x,l.y,l.w,l.h,o.w,0,l.w,l.h);var v=o.w+l.w,f=o.h;n.draw(r,{w:v,h:f},function(c){c.drawImage(u,0,0,v,f,0,0,v,f)})}}},{key:"getCounts",value:function(){return{keyCount:this.styleKeyToAtlas.size,atlasCount:new Set(this.styleKeyToAtlas.values()).size}}}]),t}();function Jp(t,e){return t.intersection?t.intersection(e):new Set(ho(t).filter(function(r){return e.has(r)}))}var jp=function(){function t(e,r){or(this,t),this.r=e;var a=r;this.globalOptions=a,this.maxAtlases=a.webglTexPerBatch,this.atlasSize=a.webglTexSize,this.renderTypes=new Map,this.maxAtlasesPerBatch=r.webglTexPerBatch,this.batchAtlases=[],this._cacheScratchCanvas(a)}return ur(t,[{key:"_cacheScratchCanvas",value:function(r){var a=-1,n=-1,i=null,s=r.createTextureCanvas;r.createTextureCanvas=function(o,l,u,v){return v?((!i||l!=a||u!=n)&&(a=l,n=u,i=s(o,l,u)),i):s(o,l,u)}}},{key:"addRenderType",value:function(r,a){var n=new Qp(this.r,this.globalOptions),i=a;this.renderTypes.set(r,de({type:r,atlasCollection:n},i))}},{key:"getRenderTypes",value:function(){return ho(this.renderTypes.values())}},{key:"getRenderTypeOpts",value:function(r){return this.renderTypes.get(r)}},{key:"invalidate",value:function(r){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=a.forceRedraw,i=n===void 0?!1:n,s=a.filterEle,o=s===void 0?function(){return!0}:s,l=a.filterType,u=l===void 0?function(){return!0}:l,v=!1,f=wt(r),c;try{for(f.s();!(c=f.n()).done;){var h=c.value;if(o(h)){var d=h.id(),y=wt(this.getRenderTypes()),p;try{for(y.s();!(p=y.n()).done;){var g=p.value;if(u(g.type)){var m=g.getKey(h);i?(g.atlasCollection.deleteKey(d,m),g.atlasCollection.styleKeyNeedsRedraw.add(m),v=!0):v|=g.atlasCollection.checkKeyIsInvalid(d,m)}}}catch(b){y.e(b)}finally{y.f()}}}}catch(b){f.e(b)}finally{f.f()}return v}},{key:"gc",value:function(){var r=wt(this.getRenderTypes()),a;try{for(r.s();!(a=r.n()).done;){var n=a.value;n.atlasCollection.gc()}}catch(i){r.e(i)}finally{r.f()}}},{key:"isRenderable",value:function(r,a){var n=this.getRenderTypeOpts(a);return n&&n.isVisible(r)}},{key:"startBatch",value:function(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function(){return this.batchAtlases.length}},{key:"getAtlases",value:function(){return this.batchAtlases}},{key:"getOrCreateAtlas",value:function(r,a,n){var i=this.renderTypes.get(n),s=i.getKey(r),o=r.id();return i.atlasCollection.draw(o,s,a,function(l){i.drawElement(l,r,a,!0,!0)})}},{key:"getAtlasIndexForBatch",value:function(r){var a=this.batchAtlases.indexOf(r);if(a<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)return;this.batchAtlases.push(r),a=this.batchAtlases.length-1}return a}},{key:"getIndexArray",value:function(){return Array.from({length:this.maxAtlases},function(r,a){return a})}},{key:"getAtlasInfo",value:function(r,a){var n=this.renderTypes.get(a),i=n.getBoundingBox(r),s=this.getOrCreateAtlas(r,i,a),o=this.getAtlasIndexForBatch(s);if(o!==void 0){var l=n.getKey(r),u=s.getOffsets(l),v=Je(u,2),f=v[0],c=v[1];return{atlasID:o,tex:f,tex1:f,tex2:c,bb:i,type:a,styleKey:l}}}},{key:"canAddToCurrentBatch",value:function(r,a){if(this.batchAtlases.length===this.maxAtlasesPerBatch){var n=this.renderTypes.get(a),i=n.getKey(r),s=n.atlasCollection.getAtlas(i);return s&&this.batchAtlases.includes(s)}return!0}},{key:"setTransformMatrix",value:function(r,a,n){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,s=a.bb,o=a.type,l=a.tex1,u=a.tex2,v=this.getRenderTypeOpts(o),f=v.getPadding?v.getPadding(n):0,c=l.w/(l.w+u.w);i||(c=1-c);var h=this.getAdjustedBB(s,f,i,c),d,y;Uu(r);var p=v.getRotation?v.getRotation(n):0;if(p!==0){var g=v.getRotationPoint(n),m=g.x,b=g.y;xn(r,r,[m,b]),Xu(r,r,p);var w=v.getRotationOffset(n);d=w.x+h.xOffset,y=w.y}else d=h.x1,y=h.y1;xn(r,r,[d,y]),Gi(r,r,[h.w,h.h])}},{key:"getTransformMatrix",value:function(r,a){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=ga();return this.setTransformMatrix(i,r,a,n),i}},{key:"getAdjustedBB",value:function(r,a,n,i){var s=r.x1,o=r.y1,l=r.w,u=r.h;a&&(s-=a,o-=a,l+=2*a,u+=2*a);var v=0,f=l*i;return n&&i<1?l=f:!n&&i<1&&(v=l-f,s+=v,l=f),{x1:s,y1:o,w:l,h:u,xOffset:v}}},{key:"getDebugInfo",value:function(){var r=[],a=wt(this.renderTypes),n;try{for(a.s();!(n=a.n()).done;){var i=Je(n.value,2),s=i[0],o=i[1],l=o.atlasCollection.getCounts(),u=l.keyCount,v=l.atlasCount;r.push({type:s,keyCount:u,atlasCount:v})}}catch(f){a.e(f)}finally{a.f()}return r}}]),t}(),ei=0,so=1,oo=2,ti=3,ey=function(){function t(e,r,a){or(this,t),this.r=e,this.gl=r,this.maxInstances=a.webglBatchSize,this.maxAtlases=a.webglTexPerBatch,this.atlasSize=a.webglTexSize,this.bgColor=a.bgColor,a.enableWrapping=!0,a.createTextureCanvas=$p,this.atlasManager=new jp(e,a),this.program=this.createShaderProgram(pa.SCREEN),this.pickingProgram=this.createShaderProgram(pa.PICKING),this.vao=this.createVAO(),this.debugInfo=[]}return ur(t,[{key:"addTextureRenderType",value:function(r,a){this.atlasManager.addRenderType(r,a)}},{key:"invalidate",value:function(r){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=a.type,i=this.atlasManager;return n?i.invalidate(r,{filterType:function(o){return o===n},forceRedraw:!0}):i.invalidate(r)}},{key:"gc",value:function(){this.atlasManager.gc()}},{key:"createShaderProgram",value:function(r){var a=this.gl,n=`#version 300 es
precision highp float;
uniform mat3 uPanZoomMatrix;
uniform int uAtlasSize;
// instanced
in vec2 aPosition;
// what are we rendering?
in int aVertType;
// for picking
in vec4 aIndex;
// For textures
in int aAtlasId; // which shader unit/atlas to use
in vec4 aTex1; // x/y/w/h of texture in atlas
in vec4 aTex2;
// for any transforms that are needed
in vec4 aScaleRotate1; // vectors use fewer attributes than matrices
in vec2 aTranslate1;
in vec4 aScaleRotate2;
in vec2 aTranslate2;
// for edges
in vec4 aPointAPointB;
in vec4 aPointCPointD;
in float aLineWidth;
in vec4 aEdgeColor;
out vec2 vTexCoord;
out vec4 vEdgeColor;
flat out int vAtlasId;
flat out vec4 vIndex;
flat out int vVertType;
void main(void) {
int vid = gl_VertexID;
vec2 position = aPosition;
if(aVertType == `.concat(ei,`) {
float texX;
float texY;
float texW;
float texH;
mat3 texMatrix;
int vid = gl_VertexID;
if(vid <= 5) {
texX = aTex1.x;
texY = aTex1.y;
texW = aTex1.z;
texH = aTex1.w;
texMatrix = mat3(
vec3(aScaleRotate1.xy, 0.0),
vec3(aScaleRotate2.zw, 0.0),
vec3(aTranslate1, 1.0)
);
} else {
texX = aTex2.x;
texY = aTex2.y;
texW = aTex2.z;
texH = aTex2.w;
texMatrix = mat3(
vec3(aScaleRotate2.xy, 0.0),
vec3(aScaleRotate2.zw, 0.0),
vec3(aTranslate2, 1.0)
);
}
if(vid == 1 || vid == 2 || vid == 4 || vid == 7 || vid == 8 || vid == 10) {
texX += texW;
}
if(vid == 2 || vid == 4 || vid == 5 || vid == 8 || vid == 10 || vid == 11) {
texY += texH;
}
float d = float(uAtlasSize);
vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1
gl_Position = vec4(uPanZoomMatrix * texMatrix * vec3(position, 1.0), 1.0);
}
else if(aVertType == `).concat(so,` && vid < 6) {
vec2 source = aPointAPointB.xy;
vec2 target = aPointAPointB.zw;
// adjust the geometry so that the line is centered on the edge
position.y = position.y - 0.5;
vec2 xBasis = target - source;
vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x));
vec2 point = source + xBasis * position.x + yBasis * aLineWidth * position.y;
gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0);
vEdgeColor = aEdgeColor;
}
else if(aVertType == `).concat(oo,` && vid < 6) {
vec2 pointA = aPointAPointB.xy;
vec2 pointB = aPointAPointB.zw;
vec2 pointC = aPointCPointD.xy;
vec2 pointD = aPointCPointD.zw;
// adjust the geometry so that the line is centered on the edge
position.y = position.y - 0.5;
vec2 p0 = pointA;
vec2 p1 = pointB;
vec2 p2 = pointC;
vec2 pos = position;
if(position.x == 1.0) {
p0 = pointD;
p1 = pointC;
p2 = pointB;
pos = vec2(0.0, -position.y);
}
vec2 p01 = p1 - p0;
vec2 p12 = p2 - p1;
vec2 p21 = p1 - p2;
// Find the normal vector.
vec2 tangent = normalize(normalize(p12) + normalize(p01));
vec2 normal = vec2(-tangent.y, tangent.x);
// Find the vector perpendicular to p0 -> p1.
vec2 p01Norm = normalize(vec2(-p01.y, p01.x));
// Determine the bend direction.
float sigma = sign(dot(p01 + p21, normal));
float width = aLineWidth;
if(sign(pos.y) == -sigma) {
// This is an intersecting vertex. Adjust the position so that there's no overlap.
vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm);
gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);
} else {
// This is a non-intersecting vertex. Treat it like a mitre join.
vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm);
gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);
}
vEdgeColor = aEdgeColor;
}
else if(aVertType == `).concat(ti,` && vid < 3) {
// massage the first triangle into an edge arrow
if(vid == 0)
position = vec2(-0.15, -0.3);
if(vid == 1)
position = vec2( 0.0, 0.0);
if(vid == 2)
position = vec2( 0.15, -0.3);
mat3 transform = mat3(
vec3(aScaleRotate1.xy, 0.0),
vec3(aScaleRotate1.zw, 0.0),
vec3(aTranslate1, 1.0)
);
gl_Position = vec4(uPanZoomMatrix * transform * vec3(position, 1.0), 1.0);
vEdgeColor = aEdgeColor;
} else {
gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space
}
vAtlasId = aAtlasId;
vIndex = aIndex;
vVertType = aVertType;
}
`),i=this.atlasManager.getIndexArray(),s=`#version 300 es
precision highp float;
// define texture unit for each node in the batch
`.concat(i.map(function(u){return"uniform sampler2D uTexture".concat(u,";")}).join(`
`),`
uniform vec4 uBGColor;
in vec2 vTexCoord;
in vec4 vEdgeColor;
flat in int vAtlasId;
flat in vec4 vIndex;
flat in int vVertType;
out vec4 outColor;
void main(void) {
if(vVertType == `).concat(ei,`) {
`).concat(i.map(function(u){return"if(vAtlasId == ".concat(u,") outColor = texture(uTexture").concat(u,", vTexCoord);")}).join(`
else `),`
} else if(vVertType == `).concat(ti,`) {
// blend arrow color with background (using premultiplied alpha)
outColor.rgb = vEdgeColor.rgb + (uBGColor.rgb * (1.0 - vEdgeColor.a));
outColor.a = 1.0; // make opaque, masks out line under arrow
} else {
outColor = vEdgeColor;
}
`).concat(r.picking?`if(outColor.a == 0.0) discard;
else outColor = vIndex;`:"",`
}
`),o=qp(a,n,s);o.aPosition=a.getAttribLocation(o,"aPosition"),o.aIndex=a.getAttribLocation(o,"aIndex"),o.aVertType=a.getAttribLocation(o,"aVertType"),o.aAtlasId=a.getAttribLocation(o,"aAtlasId"),o.aTex1=a.getAttribLocation(o,"aTex1"),o.aTex2=a.getAttribLocation(o,"aTex2"),o.aScaleRotate1=a.getAttribLocation(o,"aScaleRotate1"),o.aTranslate1=a.getAttribLocation(o,"aTranslate1"),o.aScaleRotate2=a.getAttribLocation(o,"aScaleRotate2"),o.aTranslate2=a.getAttribLocation(o,"aTranslate2"),o.aPointAPointB=a.getAttribLocation(o,"aPointAPointB"),o.aPointCPointD=a.getAttribLocation(o,"aPointCPointD"),o.aLineWidth=a.getAttribLocation(o,"aLineWidth"),o.aEdgeColor=a.getAttribLocation(o,"aEdgeColor"),o.uPanZoomMatrix=a.getUniformLocation(o,"uPanZoomMatrix"),o.uAtlasSize=a.getUniformLocation(o,"uAtlasSize"),o.uBGColor=a.getUniformLocation(o,"uBGColor"),o.uTextures=[];for(var l=0;l<this.atlasManager.maxAtlases;l++)o.uTextures.push(a.getUniformLocation(o,"uTexture".concat(l)));return o}},{key:"createVAO",value:function(){var r=[0,0,1,0,1,1,0,0,1,1,0,1],a=[].concat(r,r);this.vertexCount=a.length/2;var n=this.maxInstances,i=this.gl,s=this.program,o=i.createVertexArray();return i.bindVertexArray(o),Up(i,"vec2",s.aPosition,a),this.indexBuffer=bt(i,n,"vec4",s.aIndex),this.vertTypeBuffer=bt(i,n,"int",s.aVertType),this.atlasIdBuffer=bt(i,n,"int",s.aAtlasId),this.tex1Buffer=bt(i,n,"vec4",s.aTex1),this.tex2Buffer=bt(i,n,"vec4",s.aTex2),this.scaleRotate1Buffer=bt(i,n,"vec4",s.aScaleRotate1),this.translate1Buffer=bt(i,n,"vec2",s.aTranslate1),this.scaleRotate2Buffer=bt(i,n,"vec4",s.aScaleRotate2),this.translate2Buffer=bt(i,n,"vec2",s.aTranslate2),this.pointAPointBBuffer=bt(i,n,"vec4",s.aPointAPointB),this.pointCPointDBuffer=bt(i,n,"vec4",s.aPointCPointD),this.lineWidthBuffer=bt(i,n,"float",s.aLineWidth),this.edgeColorBuffer=bt(i,n,"vec4",s.aEdgeColor),i.bindVertexArray(null),o}},{key:"buffers",get:function(){var r=this;return this._buffers||(this._buffers=Object.keys(this).filter(function(a){return a.endsWith("Buffer")}).map(function(a){return r[a]})),this._buffers}},{key:"startFrame",value:function(r,a){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:pa.SCREEN;this.panZoomMatrix=r,this.debugInfo=a,this.renderTarget=n,this.startBatch()}},{key:"startBatch",value:function(){this.instanceCount=0,this.atlasManager.startBatch()}},{key:"endFrame",value:function(){this.endBatch()}},{key:"getTempMatrix",value:function(){return this.tempMatrix=this.tempMatrix||ga()}},{key:"drawTexture",value:function(r,a,n){var i=this.atlasManager;if(i.isRenderable(r,n)){i.canAddToCurrentBatch(r,n)||this.endBatch();var s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=ei;var o=this.indexBuffer.getView(s);ja(a,o);var l=i.getAtlasInfo(r,n,l),u=l.atlasID,v=l.tex1,f=l.tex2,c=this.atlasIdBuffer.getView(s);c[0]=u;var h=this.tex1Buffer.getView(s);h[0]=v.x,h[1]=v.y,h[2]=v.w,h[3]=v.h;var d=this.tex2Buffer.getView(s);d[0]=f.x,d[1]=f.y,d[2]=f.w,d[3]=f.h;for(var y=this.getTempMatrix(),p=0,g=[1,2];p<g.length;p++){var m=g[p];i.setTransformMatrix(y,l,r,m===1);var b=this["scaleRotate".concat(m,"Buffer")].getView(s);b[0]=y[0],b[1]=y[1],b[2]=y[3],b[3]=y[4];var w=this["translate".concat(m,"Buffer")].getView(s);w[0]=y[6],w[1]=y[7]}this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},{key:"drawEdgeArrow",value:function(r,a,n){var i=r._private.rscratch,s,o,l;if(n==="source"?(s=i.arrowStartX,o=i.arrowStartY,l=i.srcArrowAngle):(s=i.arrowEndX,o=i.arrowEndY,l=i.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(o)||o==null||isNaN(l)||l==null)){var u=r.pstyle(n+"-arrow-shape").value;if(u!=="none"){var v=r.pstyle(n+"-arrow-color").value,f=r.pstyle("opacity").value,c=r.pstyle("line-opacity").value,h=f*c,d=r.pstyle("width").pfValue,y=r.pstyle("arrow-scale").value,p=this.r.getArrowWidth(d,y),g=this.getTempMatrix();Uu(g),xn(g,g,[s,o]),Gi(g,g,[p,p]),Xu(g,g,l);var m=this.instanceCount;this.vertTypeBuffer.getView(m)[0]=ti;var b=this.indexBuffer.getView(m);ja(a,b);var w=this.edgeColorBuffer.getView(m);Ja(v,h,w);var T=this.scaleRotate1Buffer.getView(m);T[0]=g[0],T[1]=g[1],T[2]=g[3],T[3]=g[4];var E=this.translate1Buffer.getView(m);E[0]=g[6],E[1]=g[7],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},{key:"drawEdgeLine",value:function(r,a){var n=r.pstyle("opacity").value,i=r.pstyle("line-opacity").value,s=r.pstyle("width").pfValue,o=r.pstyle("line-color").value,l=n*i,u=this.getEdgePoints(r);if(u.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),u.length==4){var v=this.instanceCount;this.vertTypeBuffer.getView(v)[0]=so;var f=this.indexBuffer.getView(v);ja(a,f);var c=this.edgeColorBuffer.getView(v);Ja(o,l,c);var h=this.lineWidthBuffer.getView(v);h[0]=s;var d=this.pointAPointBBuffer.getView(v);d[0]=u[0],d[1]=u[1],d[2]=u[2],d[3]=u[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y<u.length-2;y+=2){var p=this.instanceCount;this.vertTypeBuffer.getView(p)[0]=oo;var g=this.indexBuffer.getView(p);ja(a,g);var m=this.edgeColorBuffer.getView(p);Ja(o,l,m);var b=this.lineWidthBuffer.getView(p);b[0]=s;var w=u[y-2],T=u[y-1],E=u[y],x=u[y+1],S=u[y+2],C=u[y+3],P=u[y+4],B=u[y+5];y==0&&(w=2*E-S+.001,T=2*x-C+.001),y==u.length-4&&(P=2*S-E+.001,B=2*C-x+.001);var k=this.pointAPointBBuffer.getView(p);k[0]=w,k[1]=T,k[2]=E,k[3]=x;var R=this.pointCPointDBuffer.getView(p);R[0]=S,R[1]=C,R[2]=P,R[3]=B,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},{key:"getEdgePoints",value:function(r){var a=r._private.rscratch,n=a.allpts;if(n.length==4)return n;var i=this.getNumSegments(r);return this.getCurveSegmentPoints(n,i)}},{key:"getNumSegments",value:function(r){var a=15;return Math.min(Math.max(a,5),this.maxInstances)}},{key:"getCurveSegmentPoints",value:function(r,a){if(r.length==4)return r;for(var n=Array((a+1)*2),i=0;i<=a;i++)if(i==0)n[0]=r[0],n[1]=r[1];else if(i==a)n[i*2]=r[r.length-2],n[i*2+1]=r[r.length-1];else{var s=i/a;this.setCurvePoint(r,s,n,i*2)}return n}},{key:"setCurvePoint",value:function(r,a,n,i){if(r.length<=2)n[i]=r[0],n[i+1]=r[1];else{for(var s=Array(r.length-2),o=0;o<s.length;o+=2){var l=(1-a)*r[o]+a*r[o+2],u=(1-a)*r[o+1]+a*r[o+3];s[o]=l,s[o+1]=u}return this.setCurvePoint(s,a,n,i)}}},{key:"endBatch",value:function(){var r=this.gl,a=this.vao,n=this.vertexCount,i=this.instanceCount;if(i!==0){var s=this.renderTarget.picking?this.pickingProgram:this.program;r.useProgram(s),r.bindVertexArray(a);var o=wt(this.buffers),l;try{for(o.s();!(l=o.n()).done;){var u=l.value;u.bufferSubData(i)}}catch(d){o.e(d)}finally{o.f()}for(var v=this.atlasManager.getAtlases(),f=0;f<v.length;f++)v[f].bufferIfNeeded(r);for(var c=0;c<v.length;c++)r.activeTexture(r.TEXTURE0+c),r.bindTexture(r.TEXTURE_2D,v[c].texture),r.uniform1i(s.uTextures[c],c);r.uniformMatrix3fv(s.uPanZoomMatrix,!1,this.panZoomMatrix),r.uniform1i(s.uAtlasSize,this.atlasManager.atlasSize);var h=Ja(this.bgColor,1);r.uniform4fv(s.uBGColor,h),r.drawArraysInstanced(r.TRIANGLES,0,n,i),r.bindVertexArray(null),r.bindTexture(r.TEXTURE_2D,null),this.debugInfo&&this.debugInfo.push({count:i,atlasCount:v.length}),this.startBatch()}}},{key:"getDebugInfo",value:function(){return this.debugInfo}},{key:"getAtlasDebugInfo",value:function(){return this.atlasManager.getDebugInfo()}}]),t}();function uo(t,e){return"rgba(".concat(t[0],", ").concat(t[1],", ").concat(t[2],", ").concat(e,")")}var ty=function(){function t(e){or(this,t),this.r=e}return ur(t,[{key:"getStyleKey",value:function(r,a){var n=this.getStyle(r,a),i=n.shape,s=n.opacity,o=n.color;if(!i)return null;var l=a.width(),u=a.height(),v=uo(o,s);return rr("".concat(i,"-").concat(l,"-").concat(u,"-").concat(v))}},{key:"isVisible",value:function(r,a){var n=a.pstyle("".concat(r,"-opacity")).value;return n>0}},{key:"getStyle",value:function(r,a){var n=a.pstyle("".concat(r,"-opacity")).value,i=a.pstyle("".concat(r,"-color")).value,s=a.pstyle("".concat(r,"-shape")).value;return{opacity:n,color:i,shape:s}}},{key:"getPadding",value:function(r,a){return a.pstyle("".concat(r,"-padding")).pfValue}},{key:"draw",value:function(r,a,n,i){if(this.isVisible(r,n)){var s=this.r,o=i.w,l=i.h,u=o/2,v=l/2,f=this.getStyle(r,n),c=f.shape,h=f.color,d=f.opacity;a.save(),a.fillStyle=uo(h,d),c==="round-rectangle"||c==="roundrectangle"?s.drawRoundRectanglePath(a,u,v,o,l,"auto"):c==="ellipse"&&s.drawEllipsePath(a,u,v,o,l),a.fill(),a.restore()}}}]),t}();function ry(t){var e=t&&t.style&&t.style.backgroundColor||"white";return wo(e)}var Yu={};Yu.initWebgl=function(t,e){var r=this,a=r.data.contexts[r.WEBGL],n=t.cy.container();t.bgColor=ry(n),t.webglTexSize=Math.min(t.webglTexSize,a.getParameter(a.MAX_TEXTURE_SIZE)),t.webglTexRows=Math.min(t.webglTexRows,54),t.webglBatchSize=Math.min(t.webglBatchSize,16384),t.webglTexPerBatch=Math.min(t.webglTexPerBatch,a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS)),r.webglDebug=t.webglDebug,r.webglDebugShowAtlases=t.webglDebugShowAtlases,console.log("max texture units",a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS)),console.log("max texture size",a.getParameter(a.MAX_TEXTURE_SIZE)),console.log("webgl options",t),r.pickingFrameBuffer=Xp(a),r.pickingFrameBuffer.needsDraw=!0;var i=function(v){return r.getTextAngle(v,null)},s=function(v){var f=v.pstyle("label");return f&&f.value};r.eleDrawing=new ey(r,a,t);var o=new ty(r);r.eleDrawing.addTextureRenderType("node-body",oa({getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement,isVisible:function(v){return v.visible()}})),r.eleDrawing.addTextureRenderType("node-label",oa({getKey:e.getLabelKey,getBoundingBox:e.getLabelBox,drawElement:e.drawLabel,getRotation:i,getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:s})),r.eleDrawing.addTextureRenderType("node-overlay",oa({getBoundingBox:e.getElementBox,getKey:function(v){return o.getStyleKey("overlay",v)},drawElement:function(v,f,c){return o.draw("overlay",v,f,c)},isVisible:function(v){return o.isVisible("overlay",v)},getPadding:function(v){return o.getPadding("overlay",v)}})),r.eleDrawing.addTextureRenderType("node-underlay",oa({getBoundingBox:e.getElementBox,getKey:function(v){return o.getStyleKey("underlay",v)},drawElement:function(v,f,c){return o.draw("underlay",v,f,c)},isVisible:function(v){return o.isVisible("underlay",v)},getPadding:function(v){return o.getPadding("underlay",v)}})),r.eleDrawing.addTextureRenderType("edge-label",oa({getKey:e.getLabelKey,getBoundingBox:e.getLabelBox,drawElement:e.drawLabel,getRotation:i,getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:s}));var l=Ra(function(){console.log("garbage collect flag set"),r.data.gc=!0},1e4);r.onUpdateEleCalcs(function(u,v){var f=!1;v&&v.length>0&&(f|=r.eleDrawing.invalidate(v)),f&&l()}),ay(r)};function ay(t){{var e=t.render;t.render=function(i){i=i||{};var s=t.cy;t.webgl&&(s.zoom()>Vu?(ny(t),e.call(t,i)):(iy(t),Zu(t,i,pa.SCREEN)))}}{var r=t.matchCanvasSize;t.matchCanvasSize=function(i){r.call(t,i),t.pickingFrameBuffer.setFramebufferAttachmentSizes(t.canvasWidth,t.canvasHeight),t.pickingFrameBuffer.needsDraw=!0}}t.findNearestElements=function(i,s,o,l){return fy(t,i,s)};{var a=t.invalidateCachedZSortedEles;t.invalidateCachedZSortedEles=function(){a.call(t),t.pickingFrameBuffer.needsDraw=!0}}{var n=t.notify;t.notify=function(i,s){n.call(t,i,s),i==="viewport"||i==="bounds"?t.pickingFrameBuffer.needsDraw=!0:i==="background"&&t.eleDrawing.invalidate(s,{type:"node-body"})}}}function ny(t){var e=t.data.contexts[t.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function iy(t){var e=function(a){a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,t.canvasWidth,t.canvasHeight),a.restore()};e(t.data.contexts[t.NODE]),e(t.data.contexts[t.DRAG])}function sy(t){var e=t.canvasWidth,r=t.canvasHeight,a=Ki(t),n=a.pan,i=a.zoom,s=ga();xn(s,s,[n.x,n.y]),Gi(s,s,[i,i]);var o=ga();_p(o,e,r);var l=ga();return Yp(l,o,s),l}function _u(t,e){var r=t.canvasWidth,a=t.canvasHeight,n=Ki(t),i=n.pan,s=n.zoom;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,r,a),e.translate(i.x,i.y),e.scale(s,s)}function oy(t,e){t.drawSelectionRectangle(e,function(r){return _u(t,r)})}function uy(t){var e=t.data.contexts[t.NODE];e.save(),_u(t,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1e3,0),e.lineTo(1e3,0),e.stroke(),e.beginPath(),e.moveTo(0,-1e3),e.lineTo(0,1e3),e.stroke(),e.restore()}function ly(t){var e=function(n,i,s){for(var o=n.atlasManager.getRenderTypeOpts(i),l=t.data.contexts[t.NODE],u=.125,v=o.atlasCollection.atlases,f=0;f<v.length;f++){var c=v[f],h=c.canvas,d=h.width,y=h.height,p=d*f,g=h.height*s;l.save(),l.scale(u,u),l.drawImage(h,p,g),l.strokeStyle="black",l.rect(p,g,d,y),l.stroke(),l.restore()}},r=0;e(t.eleDrawing,"node-body",r++),e(t.eleDrawing,"node-label",r++)}function vy(t,e,r,a,n){var i,s,o,l,u=Ki(t),v=u.pan,f=u.zoom;{var c=Kp(t,v,f,e,r),h=Je(c,2),d=h[0],y=h[1],p=6;i=d-p/2,s=y-p/2,o=p,l=p}if(o===0||l===0)return[];var g=t.data.contexts[t.WEBGL];g.bindFramebuffer(g.FRAMEBUFFER,t.pickingFrameBuffer),t.pickingFrameBuffer.needsDraw&&(g.viewport(0,0,g.canvas.width,g.canvas.height),Zu(t,null,pa.PICKING),t.pickingFrameBuffer.needsDraw=!1);var m=o*l,b=new Uint8Array(m*4);g.readPixels(i,s,o,l,g.RGBA,g.UNSIGNED_BYTE,b),g.bindFramebuffer(g.FRAMEBUFFER,null);for(var w=new Set,T=0;T<m;T++){var E=b.slice(T*4,T*4+4),x=Gp(E)-1;x>=0&&w.add(x)}return w}function fy(t,e,r){var a=vy(t,e,r),n=t.getCachedZSortedEles(),i,s,o=wt(a),l;try{for(o.s();!(l=o.n()).done;){var u=l.value,v=n[u];if(!i&&v.isNode()&&(i=v),!s&&v.isEdge()&&(s=v),i&&s)break}}catch(f){o.e(f)}finally{o.f()}return[i,s].filter(Boolean)}function Zu(t,e,r){var a,n;t.webglDebug&&(n=[],a=performance.now());var i=t.eleDrawing,s=0;if(r.screen&&t.data.canvasNeedsRedraw[t.SELECT_BOX]&&oy(t,e),t.data.canvasNeedsRedraw[t.NODE]||r.picking){var o=function(k,R){R+=1,k.isNode()?(i.drawTexture(k,R,"node-underlay"),i.drawTexture(k,R,"node-body"),i.drawTexture(k,R,"node-label"),i.drawTexture(k,R,"node-overlay")):(i.drawEdgeLine(k,R),i.drawEdgeArrow(k,R,"source"),i.drawEdgeArrow(k,R,"target"),i.drawTexture(k,R,"edge-label"))},l=t.data.contexts[t.WEBGL];r.screen?(l.clearColor(0,0,0,0),l.enable(l.BLEND),l.blendFunc(l.ONE,l.ONE_MINUS_SRC_ALPHA)):l.disable(l.BLEND),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT),l.viewport(0,0,l.canvas.width,l.canvas.height);var u=sy(t),v=t.getCachedZSortedEles();if(s=v.length,i.startFrame(u,n,r),r.screen){for(var f=0;f<v.nondrag.length;f++)o(v.nondrag[f],f);for(var c=0;c<v.drag.length;c++)o(v.drag[c],-1)}else if(r.picking)for(var h=0;h<v.length;h++)o(v[h],h);i.endFrame(),t.data.gc&&(console.log("Garbage Collect!"),t.data.gc=!1,i.gc()),r.screen&&t.webglDebugShowAtlases&&(uy(t),ly(t)),t.data.canvasNeedsRedraw[t.NODE]=!1,t.data.canvasNeedsRedraw[t.DRAG]=!1}if(t.webglDebug){var d=performance.now(),y=!0,p=0,g=0,m=wt(n),b;try{for(m.s();!(b=m.n()).done;){var w=b.value;p++,g+=w.count}}catch(B){m.e(B)}finally{m.f()}var T=Math.ceil(d-a),E="".concat(s," elements, ").concat(g," rectangles, ").concat(p," batches");if(y)console.log("WebGL (".concat(r.name,") - ").concat(E));else{console.log("WebGL render (".concat(r.name,") - frame time ").concat(T,"ms")),console.log(" ".concat(E)),console.log("Texture Atlases Used:");var x=i.getAtlasDebugInfo(),S=wt(x),C;try{for(S.s();!(C=S.n()).done;){var P=C.value;console.log(" ".concat(P.type,": ").concat(P.keyCount," keys, ").concat(P.atlasCount," atlases"))}}catch(B){S.e(B)}finally{S.f()}console.log("")}}}var vr={};vr.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 l=1;l<i.length/2;l++)t.lineTo(e+s*i[l*2],r+o*i[l*2+1]);t.closePath()};vr.drawRoundPolygonPath=function(t,e,r,a,n,i,s){s.forEach(function(o){return Au(t,o)}),t.closePath()};vr.drawRoundRectanglePath=function(t,e,r,a,n,i){var s=a/2,o=n/2,l=i==="auto"?br(a,n):Math.min(i,o,s);t.beginPath&&t.beginPath(),t.moveTo(e,r-o),t.arcTo(e+s,r-o,e+s,r,l),t.arcTo(e+s,r+o,e,r+o,l),t.arcTo(e-s,r+o,e-s,r,l),t.arcTo(e-s,r-o,e,r-o,l),t.lineTo(e,r-o),t.closePath()};vr.drawBottomRoundRectanglePath=function(t,e,r,a,n,i){var s=a/2,o=n/2,l=i==="auto"?br(a,n):i;t.beginPath&&t.beginPath(),t.moveTo(e,r-o),t.lineTo(e+s,r-o),t.lineTo(e+s,r),t.arcTo(e+s,r+o,e,r+o,l),t.arcTo(e-s,r+o,e-s,r,l),t.lineTo(e-s,r-o),t.lineTo(e,r-o),t.closePath()};vr.drawCutRectanglePath=function(t,e,r,a,n,i,s){var o=a/2,l=n/2,u=s==="auto"?ki():s;t.beginPath&&t.beginPath(),t.moveTo(e-o+u,r-l),t.lineTo(e+o-u,r-l),t.lineTo(e+o,r-l+u),t.lineTo(e+o,r+l-u),t.lineTo(e+o-u,r+l),t.lineTo(e-o+u,r+l),t.lineTo(e-o,r+l-u),t.lineTo(e-o,r-l+u),t.closePath()};vr.drawBarrelPath=function(t,e,r,a,n){var i=a/2,s=n/2,o=e-i,l=e+i,u=r-s,v=r+s,f=ni(a,n),c=f.widthOffset,h=f.heightOffset,d=f.ctrlPtOffsetPct*c;t.beginPath&&t.beginPath(),t.moveTo(o,u+h),t.lineTo(o,v-h),t.quadraticCurveTo(o+d,v,o+c,v),t.lineTo(l-c,v),t.quadraticCurveTo(l-d,v,l,v-h),t.lineTo(l,u+h),t.quadraticCurveTo(l-d,u,l-c,u),t.lineTo(o+c,u),t.quadraticCurveTo(o+d,u,o,u+h),t.closePath()};var lo=Math.sin(0),vo=Math.cos(0),pi={},yi={},Qu=Math.PI/40;for(var Ar=0*Math.PI;Ar<2*Math.PI;Ar+=Qu)pi[Ar]=Math.sin(Ar),yi[Ar]=Math.cos(Ar);vr.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,l=n/2,u=0*Math.PI;u<2*Math.PI;u+=Qu)i=e-o*pi[u]*lo+o*yi[u]*vo,s=r+l*yi[u]*lo+l*pi[u]*vo,u===0?t.moveTo(i,s):t.lineTo(i,s);t.closePath()};var za={};za.createBuffer=function(t,e){var r=document.createElement("canvas");return r.width=t,r.height=e,[r,r.getContext("2d")]};za.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=re(t.maxWidth)||re(t.maxHeight),l=this.getPixelRatio(),u=1;if(t.scale!==void 0)i*=t.scale,s*=t.scale,u=t.scale;else if(o){var v=1/0,f=1/0;re(t.maxWidth)&&(v=u*t.maxWidth/i),re(t.maxHeight)&&(f=u*t.maxHeight/s),u=Math.min(v,f),i*=u,s*=u}o||(i*=l,s*=l,u*=l);var c=document.createElement("canvas");c.width=i,c.height=s,c.style.width=i+"px",c.style.height=s+"px";var h=c.getContext("2d");if(i>0&&s>0){h.clearRect(0,0,i,s),h.globalCompositeOperation="source-over";var d=this.getCachedZSortedEles();if(t.full)h.translate(-a.x1*u,-a.y1*u),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(a.x1*u,a.y1*u);else{var y=e.pan(),p={x:y.x*u,y:y.y*u};u*=e.zoom(),h.translate(p.x,p.y),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(-p.x,-p.y)}t.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=t.bg,h.rect(0,0,i,s),h.fill())}return c};function cy(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 fo(t){var e=t.indexOf(",");return t.substr(e+1)}function Ju(t,e,r){var a=function(){return e.toDataURL(r,t.quality)};switch(t.output){case"blob-promise":return new Wr(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 cy(fo(a()),r);case"base64":return fo(a());case"base64uri":default:return a()}}za.png=function(t){return Ju(t,this.bufferCanvasImage(t),"image/png")};za.jpg=function(t){return Ju(t,this.bufferCanvasImage(t),"image/jpeg")};var ju={};ju.nodeShapeImpl=function(t,e,r,a,n,i,s,o){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,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,a,n,i,o);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,a,n,i,s,o);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,a,n,i,o);case"barrel":return this.drawBarrelPath(e,r,a,n,i)}};var dy=el,Te=el.prototype;Te.CANVAS_LAYERS=3;Te.SELECT_BOX=0;Te.DRAG=1;Te.NODE=2;Te.WEBGL=3;Te.CANVAS_TYPES=["2d","2d","2d","webgl2"];Te.BUFFER_COUNT=3;Te.TEXTURE_BUFFER=0;Te.MOTIONBLUR_BUFFER_NODE=1;Te.MOTIONBLUR_BUFFER_DRAG=2;function el(t){var e=this,r=e.cy.window(),a=r.document;t.webgl&&(Te.CANVAS_LAYERS=e.CANVAS_LAYERS=4,console.log("webgl rendering enabled")),e.data={canvases:new Array(Te.CANVAS_LAYERS),contexts:new Array(Te.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Te.CANVAS_LAYERS),bufferCanvases:new Array(Te.BUFFER_COUNT),bufferContexts:new Array(Te.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";e.data.canvasContainer=a.createElement("div");var s=e.data.canvasContainer.style;e.data.canvasContainer.style[n]=i,s.position="relative",s.zIndex="0",s.overflow="hidden";var o=t.cy.container();o.appendChild(e.data.canvasContainer),o.style[n]=i;var l={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};Rl()&&(l["-ms-touch-action"]="none",l["touch-action"]="none");for(var u=0;u<Te.CANVAS_LAYERS;u++){var v=e.data.canvases[u]=a.createElement("canvas"),f=Te.CANVAS_TYPES[u];e.data.contexts[u]=v.getContext(f),e.data.contexts[u]||qe("Could not create canvas of type "+f),Object.keys(l).forEach(function(G){v.style[G]=l[G]}),v.style.position="absolute",v.setAttribute("data-id","layer"+u),v.style.zIndex=String(Te.CANVAS_LAYERS-u),e.data.canvasContainer.appendChild(v),e.data.canvasNeedsRedraw[u]=!1}e.data.topCanvas=e.data.canvases[0],e.data.canvases[Te.NODE].setAttribute("data-id","layer"+Te.NODE+"-node"),e.data.canvases[Te.SELECT_BOX].setAttribute("data-id","layer"+Te.SELECT_BOX+"-selectbox"),e.data.canvases[Te.DRAG].setAttribute("data-id","layer"+Te.DRAG+"-drag"),e.data.canvases[Te.WEBGL]&&e.data.canvases[Te.WEBGL].setAttribute("data-id","layer"+Te.WEBGL+"-webgl");for(var u=0;u<Te.BUFFER_COUNT;u++)e.data.bufferCanvases[u]=a.createElement("canvas"),e.data.bufferContexts[u]=e.data.bufferCanvases[u].getContext("2d"),e.data.bufferCanvases[u].style.position="absolute",e.data.bufferCanvases[u].setAttribute("data-id","buffer"+u),e.data.bufferCanvases[u].style.zIndex=String(-u-1),e.data.bufferCanvases[u].style.visibility="hidden";e.pathsEnabled=!0;var c=pt(),h=function(N){return{x:(N.x1+N.x2)/2,y:(N.y1+N.y2)/2}},d=function(N){return{x:-N.w/2,y:-N.h/2}},y=function(N){var H=N[0]._private,ee=H.oldBackgroundTimestamp===H.backgroundTimestamp;return!ee},p=function(N){return N[0]._private.nodeKey},g=function(N){return N[0]._private.labelStyleKey},m=function(N){return N[0]._private.sourceLabelStyleKey},b=function(N){return N[0]._private.targetLabelStyleKey},w=function(N,H,ee,ie,ue){return e.drawElement(N,H,ee,!1,!1,ue)},T=function(N,H,ee,ie,ue){return e.drawElementText(N,H,ee,ie,"main",ue)},E=function(N,H,ee,ie,ue){return e.drawElementText(N,H,ee,ie,"source",ue)},x=function(N,H,ee,ie,ue){return e.drawElementText(N,H,ee,ie,"target",ue)},S=function(N){return N.boundingBox(),N[0]._private.bodyBounds},C=function(N){return N.boundingBox(),N[0]._private.labelBounds.main||c},P=function(N){return N.boundingBox(),N[0]._private.labelBounds.source||c},B=function(N){return N.boundingBox(),N[0]._private.labelBounds.target||c},k=function(N,H){return H},R=function(N){return h(S(N))},A=function(N,H,ee){var ie=N?N+"-":"";return{x:H.x+ee.pstyle(ie+"text-margin-x").pfValue,y:H.y+ee.pstyle(ie+"text-margin-y").pfValue}},I=function(N,H,ee){var ie=N[0]._private.rscratch;return{x:ie[H],y:ie[ee]}},L=function(N){return A("",I(N,"labelX","labelY"),N)},M=function(N){return A("source",I(N,"sourceLabelX","sourceLabelY"),N)},O=function(N){return A("target",I(N,"targetLabelX","targetLabelY"),N)},q=function(N){return d(S(N))},W=function(N){return d(P(N))},V=function(N){return d(B(N))},$=function(N){var H=C(N),ee=d(C(N));if(N.isNode()){switch(N.pstyle("text-halign").value){case"left":ee.x=-H.w-(H.leftPad||0);break;case"right":ee.x=-(H.rightPad||0);break}switch(N.pstyle("text-valign").value){case"top":ee.y=-H.h-(H.topPad||0);break;case"bottom":ee.y=-(H.botPad||0);break}}return ee},X=e.data.eleTxrCache=new ca(e,{getKey:p,doesEleInvalidateKey:y,drawElement:w,getBoundingBox:S,getRotationPoint:R,getRotationOffset:q,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),_=e.data.lblTxrCache=new ca(e,{getKey:g,drawElement:T,getBoundingBox:C,getRotationPoint:L,getRotationOffset:$,isVisible:k}),Q=e.data.slbTxrCache=new ca(e,{getKey:m,drawElement:E,getBoundingBox:P,getRotationPoint:M,getRotationOffset:W,isVisible:k}),Z=e.data.tlbTxrCache=new ca(e,{getKey:b,drawElement:x,getBoundingBox:B,getRotationPoint:O,getRotationOffset:V,isVisible:k}),j=e.data.lyrTxrCache=new qu(e);e.onUpdateEleCalcs(function(N,H){X.invalidateElements(H),_.invalidateElements(H),Q.invalidateElements(H),Z.invalidateElements(H),j.invalidateElements(H);for(var ee=0;ee<H.length;ee++){var ie=H[ee]._private;ie.oldBackgroundTimestamp=ie.backgroundTimestamp}});var te=function(N){for(var H=0;H<N.length;H++)j.enqueueElementRefinement(N[H].ele)};X.onDequeue(te),_.onDequeue(te),Q.onDequeue(te),Z.onDequeue(te),t.webgl&&e.initWebgl(t,{getStyleKey:p,getLabelKey:g,drawElement:w,drawLabel:T,getElementBox:S,getLabelBox:C,getElementRotationPoint:R,getElementRotationOffset:q,getLabelRotationPoint:L,getLabelRotationOffset:$})}Te.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Te.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Te.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Te.SELECT_BOX]=e;break;case"gc":r.data.gc=!0;break}};var hy=typeof Path2D<"u";Te.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Te.usePaths=function(){return hy&&this.pathsEnabled};Te.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Te.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Te.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":Ue(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var a=this.cy.window(),n=a.document;r=n.createElement("canvas"),r.width=t,r.height=e}return r};[$u,qt,Yt,$i,Cr,Jr,dt,Yu,vr,za,ju].forEach(function(t){de(Te,t)});var gy=[{name:"null",impl:ku},{name:"base",impl:zu},{name:"canvas",impl:dy}],py=[{type:"layout",extensions:Qg},{type:"renderer",extensions:gy}],tl={},rl={};function al(t,e,r){var a=r,n=function(S){Ae("Can not register `"+e+"` for `"+t+"` since `"+S+"` already exists in the prototype and can not be overridden")};if(t==="core"){if(ka.prototype[e])return n(e);ka.prototype[e]=r}else if(t==="collection"){if(rt.prototype[e])return n(e);rt.prototype[e]=r}else if(t==="layout"){for(var i=function(S){this.options=S,r.call(this,S),ke(this._private)||(this._private={}),this._private.cy=S.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(r.prototype),o=[],l=0;l<o.length;l++){var u=o[l];s[u]=s[u]||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 v=r.prototype.stop;s.stop=function(){var x=this.options;if(x&&x.animate){var S=this.animations;if(S)for(var C=0;C<S.length;C++)S[C].stop()}return v?v.call(this):this.emit("layoutstop"),this},s.destroy||(s.destroy=function(){return this}),s.cy=function(){return this._private.cy};var f=function(S){return S._private.cy},c={addEventFields:function(S,C){C.layout=S,C.cy=f(S),C.target=S},bubble:function(){return!0},parent:function(S){return f(S)}};de(s,{createEmitter:function(){return this._private.emitter=new Rn(c,this),this},emitter:function(){return this._private.emitter},on:function(S,C){return this.emitter().on(S,C),this},one:function(S,C){return this.emitter().one(S,C),this},once:function(S,C){return this.emitter().one(S,C),this},removeListener:function(S,C){return this.emitter().removeListener(S,C),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(S,C){return this.emitter().emit(S,C),this}}),Be.eventAliasesOn(s),a=i}else if(t==="renderer"&&e!=="null"&&e!=="base"){var h=nl("renderer","base"),d=h.prototype,y=r,p=r.prototype,g=function(){h.apply(this,arguments),y.apply(this,arguments)},m=g.prototype;for(var b in d){var w=d[b],T=p[b]!=null;if(T)return n(b);m[b]=w}for(var E in p)m[E]=p[E];d.clientFunctions.forEach(function(x){m[x]=m[x]||function(){qe("Renderer does not implement `renderer."+x+"()` on its prototype")}}),a=g}else if(t==="__proto__"||t==="constructor"||t==="prototype")return qe(t+" is an illegal type to be registered, possibly lead to prototype pollutions");return xo({map:tl,keys:[t,e],value:a})}function nl(t,e){return Eo({map:tl,keys:[t,e]})}function yy(t,e,r,a,n){return xo({map:rl,keys:[t,e,r,a],value:n})}function my(t,e,r,a){return Eo({map:rl,keys:[t,e,r,a]})}var mi=function(){if(arguments.length===2)return nl.apply(null,arguments);if(arguments.length===3)return al.apply(null,arguments);if(arguments.length===4)return my.apply(null,arguments);if(arguments.length===5)return yy.apply(null,arguments);qe("Invalid extension access syntax")};ka.prototype.extension=mi;py.forEach(function(t){t.extensions.forEach(function(e){al(t.type,e.name,e.impl)})});var il=function t(){if(!(this instanceof t))return new t;this.length=0},Er=il.prototype;Er.instanceString=function(){return"stylesheet"};Er.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};Er.css=function(t,e){var r=this.length-1;if(fe(t))this[r].properties.push({name:t,value:e});else if(ke(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 l=it.properties[s]||it.properties[En(s)];if(l!=null){var u=l.name,v=o;this[r].properties.push({name:u,value:v})}}}return this};Er.style=Er.css;Er.generateStyle=function(t){var e=new it(t);return this.appendToStyle(e)};Er.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 by="3.31.0",Kr=function(e){if(e===void 0&&(e={}),ke(e))return new ka(e);if(fe(e))return mi.apply(mi,arguments)};Kr.use=function(t){var e=Array.prototype.slice.call(arguments,1);return e.unshift(Kr),t.apply(null,e),this};Kr.warnings=function(t){return Ao(t)};Kr.version=by;Kr.stylesheet=Kr.Stylesheet=il;export{Kr as c};