From 1a55e7eeb0a8752f08af0c2a03a39a0190abfe3b Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Wed, 7 Jan 2026 14:30:59 -0500 Subject: [PATCH] Deploy --- docs/automata_web_bg.wasm | Bin 0 -> 112492 bytes docs/index-JIWFKFPO.js | 983 ++++++++++++++++++++++++++++++++++++++ docs/index.html | 58 +++ docs/style.css | 1 + 4 files changed, 1042 insertions(+) create mode 100644 docs/automata_web_bg.wasm create mode 100644 docs/index-JIWFKFPO.js create mode 100644 docs/index.html create mode 100644 docs/style.css diff --git a/docs/automata_web_bg.wasm b/docs/automata_web_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c26955d520a2bfc41a8421caee4a8d106b31f040 GIT binary patch literal 112492 zcmZQbEY4+QU|?XJ!6=!)Twh<$Sf9WIBN-AH>lwhJ3<(Sj39R)Xz>vVeR9~OK2vb>? zzyc9wtcQx{Lqr(sp*k4r6WBpY>g(%4CNkC}FxA&EBrxVP)+aD9<|i=K=R<5^tV>{E ztWRKrC}sdTgsHxssgsF=xjZRdJU+fWDLpls~A@>axgJ5GBI&6GVn6-F|)8RGqA8QFtBiPvN19-aF|jhUFfp>QurV^SF)=eUGcz%a(+Q-Jj5r}!f0|}C)Pm2r5H0@N}ygtlY*F*01X#3Nm#ff zW7i7_mQrZ2An8R47H4RvV3kD*l@w^8fYiYPr4AY>FfnkTBtioPCWss;_0T|p%Yg%> zfsqdqRv>f1$;XEsS|l)pGUudLFx0Z-CT8X_tY>5a!VOX{qQtHMQpu#i;wW3@$WoZ4!6cx>ol~!a> zU~yzDQDjkI;$`6GVdRDd0+WN|9;g>t90kB$cl^N&@&vc1v=XZ$bD0uDnG&NTb0Ld^ z0;6MnG1!M$O6-ozB}$BrTOJ=^$WmfZV07FAVu3xW!Nj4&?8eKez^uSv#>At*pulX# z#K8mh^AU($zPua?jJ!M~T6W#X*6|QN&RI#1~OwkOl`nBQGN;d_nGD0y&Wp<~l}@>lnE~ zTCxm>Y6xkIRl^7gFvJ@D=!XP^tr4?Be7{I18!VG5MR$zBzFk@oi zR$z1GWrIYZ4BR(Lj2cV~3QX=GXDP60FbRNIY#{4J6c~7!csRKgz&rs323|%U4sHdo z(-;&OTzNsMQGv~jNdn{*0VPIIYE@t~V-kR9z^uShWCn^9$BIH|B4$=(;Q^_M$0E#k*%fN2rVdDlTbugj9#Nb#5icT3wP=k{$ zv!ej0Bw~X5nF-`)b_HgrcbOH~vq08B3}V`4=Rj!~*p%qXG-Uzbw#%$f3XjN~@rZ%n0%?1IXJPAiYcq%phknz~hMt zR2DFRk{u+8Fmi*P2o3~rM1lPP%4!^0N(`>N%%H-HL4mOd6fq2njE+nSY$ZwzjtmM6 z*+mMRgfQkiZA;W|yWEeqdoe36lOwdAx5mcHmf=d%bA;W}T$S@%a874>}11h#*g$$De zsF(rQWT5RA2_DX%2IXRC^#m@7ptTeuDAA*(YDUyl&8@)b2ui-Z$hD{fD>!|F9LwkpZWWw>ltoGm zAU|<9vScYTFx4xtI<9YE$#QIHs3}xpbQCC4V08TdpSjSH!97cf(SbpU#j)NE+(=+_ zWB~bu(NO?Yz6xY3fP5hUs&heQt(!DAsQ3m|IvkLQVgaRcP?5%=!Nj7(2+2?kpxT5( zgNa9x-SNuP0}KirphU?6W@|8kYHm;odIKcG;0U5X?q>oS=q+u=1WsX&7oh$Cm9I-4 zA7D^qV0HkN^dP0ope)3q#Fpj8%LHO_fHM;h6Sw07s4j3`R$%m%1~~{M2r4=mxE-H7 zJ;31jUmj%rhQ|jOASJ{K5Q_yQ2C@jO((%CK0}SBO2_$?1!~sPmhy$YGG8aHHM;;#l z)xwS-8eEQnl-&TyoPo-KXs|R$<^f3N3RDI}JA$M^GA}?fcc3yL+7ToTlKB9Vc>
  • 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 W1x%oI?&5EOopRMEu*8Mnc3CIbV* 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 N5?#=|K~8>NIshb*9IF5T literal 0 HcmV?d00001 diff --git a/docs/index-JIWFKFPO.js b/docs/index-JIWFKFPO.js new file mode 100644 index 0000000..7f1fbd8 --- /dev/null +++ b/docs/index-JIWFKFPO.js @@ -0,0 +1,983 @@ +var MP=Object.defineProperty;var NP=(r,e)=>{for(var t in e)MP(r,t,{get:e[t],enumerable:!0})};var Ga=[],Nm=[];(()=>{let r="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(r=Nm[i])e=i+1;else return!0;if(e==t)return!1}}function Dm(r){return r>=127462&&r<=127487}var Pm=8205;function Bm(r,e,t=!0,i=!0){return(t?_m:_P)(r,e,i)}function _m(r,e,t){if(e==r.length)return e;e&&Fm(r.charCodeAt(e))&&Lm(r.charCodeAt(e-1))&&e--;let i=Wa(r,e);for(e+=Mm(i);e=0&&Dm(Wa(r,g));)s++,g-=2;if(s%2==0)break;e+=2}else break}return e}function _P(r,e,t){for(;e>0;){let i=_m(r,e-2,t);if(i=56320&&r<57344}function Lm(r){return r>=55296&&r<56320}function Mm(r){return r<65536?1:2}var ie=class r{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=tr(this,e,t);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(t,this.length,n,1),Jn.from(n,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=tr(this,e,t);let i=[];return this.decompose(e,t,i,0),Jn.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new ln(this),s=new ln(e);for(let g=t,o=t;;){if(n.next(g),s.next(g),g=0,n.lineBreak!=s.lineBreak||n.done!=s.done||n.value!=s.value)return!1;if(o+=n.value.length,n.done||o>=i)return!0}}iter(e=1){return new ln(this,e)}iterRange(e,t=this.length){return new xg(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Sg(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?r.empty:e.length<=32?new vt(e):Jn.from(vt.split(e,[]))}},vt=class r extends ie{constructor(e,t=FP(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,n){for(let s=0;;s++){let g=this.text[s],o=n+g.length;if((t?i:o)>=e)return new ja(n,o,i,g);n=o+1,i++}}decompose(e,t,i,n){let s=e<=0&&t>=this.length?this:new r(zm(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(n&1){let g=i.pop(),o=wg(s.text,g.text.slice(),0,s.length);if(o.length<=32)i.push(new r(o,g.length+s.length));else{let a=o.length>>1;i.push(new r(o.slice(0,a)),new r(o.slice(a)))}}else i.push(s)}replace(e,t,i){if(!(i instanceof r))return super.replace(e,t,i);[e,t]=tr(this,e,t);let n=wg(this.text,wg(i.text,zm(this.text,0,e)),t),s=this.length+i.length-(t-e);return n.length<=32?new r(n,s):Jn.from(r.split(n,[]),s)}sliceString(e,t=this.length,i=` +`){[e,t]=tr(this,e,t);let n="";for(let s=0,g=0;s<=t&&ge&&g&&(n+=i),es&&(n+=o.slice(Math.max(0,e-s),t-s)),s=a+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],n=-1;for(let s of e)i.push(s),n+=s.length+1,i.length==32&&(t.push(new r(i,n)),i=[],n=-1);return n>-1&&t.push(new r(i,n)),t}},Jn=class r extends ie{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,n){for(let s=0;;s++){let g=this.children[s],o=n+g.length,a=i+g.lines-1;if((t?a:o)>=e)return g.lineInner(e,t,i,n);n=o+1,i=a+1}}decompose(e,t,i,n){for(let s=0,g=0;g<=t&&s=g){let A=n&((g<=e?1:0)|(a>=t?2:0));g>=e&&a<=t&&!A?i.push(o):o.decompose(e-g,t-g,i,A)}g=a+1}}replace(e,t,i){if([e,t]=tr(this,e,t),i.lines=s&&t<=o){let a=g.replace(e-s,t-s,i),A=this.lines-g.lines+a.lines;if(a.lines>4&&a.lines>A>>6){let C=this.children.slice();return C[n]=a,new r(C,this.length-(t-e)+i.length)}return super.replace(s,o,a)}s=o+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` +`){[e,t]=tr(this,e,t);let n="";for(let s=0,g=0;se&&s&&(n+=i),eg&&(n+=o.sliceString(e-g,t-g,i)),g=a+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof r))return 0;let i=0,[n,s,g,o]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,s+=t){if(n==g||s==o)return i;let a=this.children[n],A=e.children[s];if(a!=A)return i+a.scanIdentical(A,t);i+=a.length+1}}static from(e,t=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let h of e)i+=h.lines;if(i<32){let h=[];for(let d of e)d.flatten(h);return new vt(h,t)}let n=Math.max(32,i>>5),s=n<<1,g=n>>1,o=[],a=0,A=-1,C=[];function I(h){let d;if(h.lines>s&&h instanceof r)for(let c of h.children)I(c);else h.lines>g&&(a>g||!a)?(l(),o.push(h)):h instanceof vt&&a&&(d=C[C.length-1])instanceof vt&&h.lines+d.lines<=32?(a+=h.lines,A+=h.length+1,C[C.length-1]=new vt(d.text.concat(h.text),d.length+1+h.length)):(a+h.lines>n&&l(),a+=h.lines,A+=h.length+1,C.push(h))}function l(){a!=0&&(o.push(C.length==1?C[0]:r.from(C,A)),A=-1,a=C.length=0)}for(let h of e)I(h);return l(),o.length==1?o[0]:new r(o,t)}};ie.empty=new vt([""],0);function FP(r){let e=-1;for(let t of r)e+=t.length+1;return e}function wg(r,e,t=0,i=1e9){for(let n=0,s=0,g=!0;s=t&&(a>i&&(o=o.slice(0,i-n)),n0?1:(e instanceof vt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],s=this.offsets[i],g=s>>1,o=n instanceof vt?n.text.length:n.children.length;if(g==(t>0?o:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(n instanceof vt){let a=n.text[g+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[g+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof vt?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},xg=class{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new ln(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=i?n:t<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Sg=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(ie.prototype[Symbol.iterator]=function(){return this.iter()},ln.prototype[Symbol.iterator]=xg.prototype[Symbol.iterator]=Sg.prototype[Symbol.iterator]=function(){return this});var ja=class{constructor(e,t,i,n){this.from=e,this.to=t,this.number=i,this.text=n}get length(){return this.to-this.from}};function tr(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function je(r,e,t=!0,i=!0){return Bm(r,e,t,i)}function LP(r){return r>=56320&&r<57344}function zP(r){return r>=55296&&r<56320}function ir(r,e){let t=r.charCodeAt(e);if(!zP(t)||e+1==r.length)return t;let i=r.charCodeAt(e+1);return LP(i)?(t-55296<<10)+(i-56320)+65536:t}function Zm(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function is(r){return r<65536?1:2}var Ha=/\r\n?|\n/,Qe=function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r}(Qe||(Qe={})),Ei=class r{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-n);s+=o}else{if(i!=Qe.Simple&&A>=e&&(i==Qe.TrackDel&&ne||i==Qe.TrackBefore&&ne))return null;if(A>e||A==e&&t<0&&!o)return e==n||t<0?s:s+a;s+=a}n=A}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return s}touchesRange(e,t=e){for(let i=0,n=0;i=0&&n<=t&&o>=e)return nt?"cover":!0;n=o}return!1}toString(){let e="";for(let t=0;t=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new r(e)}static create(e){return new r(e)}},gt=class r extends Ei{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Ya(this,(t,i,n,s,g)=>e=e.replace(n,n+(i-t),g),!1),e}mapDesc(e,t=!1){return Ka(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let n=0,s=0;n=0){t[n]=o,t[n+1]=g;let a=n>>1;for(;i.length0&&zi(i,t,s.text),s.forward(C),o+=C}let A=e[g++];for(;o>1].toJSON()))}return e}static of(e,t,i){let n=[],s=[],g=0,o=null;function a(C=!1){if(!C&&!n.length)return;gl||I<0||l>t)throw new RangeError(`Invalid change range ${I} to ${l} (in doc of length ${t})`);let d=h?typeof h=="string"?ie.of(h.split(i||Ha)):h:ie.empty,c=d.length;if(I==l&&c==0)return;Ig&&nt(n,I-g,-1),nt(n,l-I,c),zi(s,n,d),g=l}}return A(e),a(!o),o}static empty(e){return new r(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let n=0;no&&typeof g!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;i.length=0&&t<=0&&t==r[n+1]?r[n]+=e:n>=0&&e==0&&r[n]==0?r[n+1]+=t:i?(r[n]+=e,r[n+1]+=t):r.push(e,t)}function zi(r,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||g==r.sections.length||r.sections[g+1]<0);)o=r.sections[g++],a=r.sections[g++];e(n,A,s,C,I),n=A,s=C}}}function Ka(r,e,t,i=!1){let n=[],s=i?[]:null,g=new hn(r),o=new hn(e);for(let a=-1;;){if(g.done&&o.len||o.done&&g.len)throw new Error("Mismatched change set lengths");if(g.ins==-1&&o.ins==-1){let A=Math.min(g.len,o.len);nt(n,A,-1),g.forward(A),o.forward(A)}else if(o.ins>=0&&(g.ins<0||a==g.i||g.off==0&&(o.len=0&&a=0){let A=0,C=g.len;for(;C;)if(o.ins==-1){let I=Math.min(C,o.len);A+=I,C-=I,o.forward(I)}else if(o.ins==0&&o.lena||g.ins>=0&&g.len>a)&&(o||i.length>A),s.forward2(a),g.forward(a)}}}}var hn=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?ie.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?ie.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Qn=class r{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new r(i,n,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return B.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return B.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return B.range(e.anchor,e.head)}static create(e,t,i){return new r(e,t,i)}},B=class r{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:r.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new r(e.ranges.map(t=>Qn.fromJSON(t)),e.main)}static single(e,t=e){return new r([r.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?8:0)|s)}static normalized(e,t=0){let i=e[t];e.sort((n,s)=>n.from-s.from),t=e.indexOf(i);for(let n=1;ns.head?r.range(a,o):r.range(o,a))}}return new r(e,t)}};function Hm(r,e){for(let t of r.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var rA=0,V=class r{constructor(e,t,i,n,s){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=n,this.id=rA++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new r(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:sA),!!e.static,e.enables)}of(e){return new $n([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $n(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $n(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}};function sA(r,e){return r==e||r.length==e.length&&r.every((t,i)=>t===e[i])}var $n=class{constructor(e,t,i,n){this.dependencies=e,this.facet=t,this.type=i,this.value=n,this.id=rA++}dynamicSlot(e){var t;let i=this.value,n=this.facet.compareInput,s=this.id,g=e[s]>>1,o=this.type==2,a=!1,A=!1,C=[];for(let I of this.dependencies)I=="doc"?a=!0:I=="selection"?A=!0:(((t=e[I.id])!==null&&t!==void 0?t:1)&1)==0&&C.push(e[I.id]);return{create(I){return I.values[g]=i(I),1},update(I,l){if(a&&l.docChanged||A&&(l.docChanged||l.selection)||Ua(I,C)){let h=i(I);if(o?!qm(h,I.values[g],n):!n(h,I.values[g]))return I.values[g]=h,1}return 0},reconfigure:(I,l)=>{let h,d=l.config.address[s];if(d!=null){let c=Og(l,d);if(this.dependencies.every(f=>f instanceof V?l.facet(f)===I.facet(f):f instanceof Je?l.field(f,!1)==I.field(f,!1):!0)||(o?qm(h=i(I),c,n):n(h=i(I),c)))return I.values[g]=c,0}else h=i(I);return I.values[g]=h,1}}}};function qm(r,e,t){if(r.length!=e.length)return!1;for(let i=0;ir[a.id]),n=t.map(a=>a.type),s=i.filter(a=>!(a&1)),g=r[e.id]>>1;function o(a){let A=[];for(let C=0;Ci===n),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(vg).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,n)=>{let s=i.values[t],g=this.updateF(s,n);return this.compareF(s,g)?0:(i.values[t]=g,1)},reconfigure:(i,n)=>{let s=i.facet(vg),g=n.facet(vg),o;return(o=s.find(a=>a.field==this))&&o!=g.find(a=>a.field==this)?(i.values[t]=o.create(i),1):n.config.address[this.id]!=null?(i.values[t]=n.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,vg.of({field:this,create:e})]}get extension(){return this}},Cn={lowest:4,low:3,default:2,high:1,highest:0};function Qr(r){return e=>new Eg(e,r)}var nr={highest:Qr(Cn.highest),high:Qr(Cn.high),default:Qr(Cn.default),low:Qr(Cn.low),lowest:Qr(Cn.lowest)},Eg=class{constructor(e,t){this.inner=e,this.prec=t}},Tg=class r{of(e){return new $r(this,e)}reconfigure(e){return r.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},$r=class{constructor(e,t){this.compartment=e,this.inner=t}},kg=class r{constructor(e,t,i,n,s,g){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=n,this.staticValues=s,this.facets=g,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let n=[],s=Object.create(null),g=new Map;for(let l of VP(e,t,g))l instanceof Je?n.push(l):(s[l.facet.id]||(s[l.facet.id]=[])).push(l);let o=Object.create(null),a=[],A=[];for(let l of n)o[l.id]=A.length<<1,A.push(h=>l.slot(h));let C=i?.config.facets;for(let l in s){let h=s[l],d=h[0].facet,c=C&&C[l]||[];if(h.every(f=>f.type==0))if(o[d.id]=a.length<<1|1,sA(c,h))a.push(i.facet(d));else{let f=d.combine(h.map(u=>u.value));a.push(i&&d.compare(f,i.facet(d))?i.facet(d):f)}else{for(let f of h)f.type==0?(o[f.id]=a.length<<1|1,a.push(f.value)):(o[f.id]=A.length<<1,A.push(u=>f.dynamicSlot(u)));o[d.id]=A.length<<1,A.push(f=>qP(f,d,h))}}let I=A.map(l=>l(o));return new r(e,g,I,o,a,s)}};function VP(r,e,t){let i=[[],[],[],[],[]],n=new Map;function s(g,o){let a=n.get(g);if(a!=null){if(a<=o)return;let A=i[a].indexOf(g);A>-1&&i[a].splice(A,1),g instanceof $r&&t.delete(g.compartment)}if(n.set(g,o),Array.isArray(g))for(let A of g)s(A,o);else if(g instanceof $r){if(t.has(g.compartment))throw new RangeError("Duplicate use of compartment in extensions");let A=e.get(g.compartment)||g.inner;t.set(g.compartment,A),s(A,o)}else if(g instanceof Eg)s(g.inner,g.prec);else if(g instanceof Je)i[o].push(g),g.provides&&s(g.provides,o);else if(g instanceof $n)i[o].push(g),g.facet.extensions&&s(g.facet.extensions,Cn.default);else{let A=g.extension;if(!A)throw new Error(`Unrecognized extension value in extension set (${g}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(A,o)}}return s(r,Cn.default),i.reduce((g,o)=>g.concat(o))}function Jr(r,e){if(e&1)return 2;let t=e>>1,i=r.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;r.status[t]=4;let n=r.computeSlot(r,r.config.dynamicSlots[t]);return r.status[t]=2|n}function Og(r,e){return e&1?r.config.staticValues[e>>1]:r.values[e>>1]}var Ym=V.define(),Xa=V.define({combine:r=>r.some(e=>e),static:!0}),Km=V.define({combine:r=>r.length?r[0]:void 0,static:!0}),Um=V.define(),Xm=V.define(),Qm=V.define(),Jm=V.define({combine:r=>r.length?r[0]:!1}),bt=class{constructor(e,t){this.type=e,this.value=t}static define(){return new Qa}},Qa=class{of(e){return new bt(this,e)}},Ja=class{constructor(e){this.map=e}of(e){return new ce(this,e)}},ce=class r{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new r(this.type,t)}is(e){return this.type==e}static define(e={}){return new Ja(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let n of e){let s=n.map(t);s&&i.push(s)}return i}};ce.reconfigure=ce.define();ce.appendConfig=ce.define();var Ze=class r{constructor(e,t,i,n,s,g){this.startState=e,this.changes=t,this.selection=i,this.effects=n,this.annotations=s,this.scrollIntoView=g,this._doc=null,this._state=null,i&&Hm(i,t.newLength),s.some(o=>o.type==r.time)||(this.annotations=s.concat(r.time.of(Date.now())))}static create(e,t,i,n,s,g){return new r(e,t,i,n,s,g)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(r.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};Ze.time=bt.define();Ze.userEvent=bt.define();Ze.addToHistory=bt.define();Ze.remote=bt.define();function WP(r,e){let t=[];for(let i=0,n=0;;){let s,g;if(i=r[i]))s=r[i++],g=r[i++];else if(n=0;n--){let s=i[n](r);s instanceof Ze?r=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Ze?r=s[0]:r=ev(e,er(s),!1)}return r}function ZP(r){let e=r.startState,t=e.facet(Qm),i=r;for(let n=t.length-1;n>=0;n--){let s=t[n](r);s&&Object.keys(s).length&&(i=$m(i,$a(e,s,r.changes.newLength),!0))}return i==r?r:Ze.create(e,r.changes,r.selection,i.effects,i.annotations,i.scrollIntoView)}var jP=[];function er(r){return r==null?jP:Array.isArray(r)?r:[r]}var st=function(r){return r[r.Word=0]="Word",r[r.Space=1]="Space",r[r.Other=2]="Other",r}(st||(st={})),HP=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,eA;try{eA=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function YP(r){if(eA)return eA.test(r);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||HP.test(t)))return!0}return!1}function KP(r){return e=>{if(!/\S/.test(e))return st.Space;if(YP(e))return st.Word;for(let t=0;t-1)return st.Word;return st.Other}}var xe=class r{constructor(e,t,i,n,s,g){this.config=e,this.doc=t,this.selection=i,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=s,g&&(g._state=this);for(let o=0;on.set(A,a)),t=null),n.set(o.value.compartment,o.value.extension)):o.is(ce.reconfigure)?(t=null,i=o.value):o.is(ce.appendConfig)&&(t=null,i=er(i).concat(o.value));let s;t?s=e.startState.values.slice():(t=kg.resolve(i,n,this),s=new r(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,A)=>A.reconfigure(a,this),null).values);let g=e.startState.facet(Xa)?e.newSelection:e.newSelection.asSingle();new r(t,e.newDoc,g,s,(o,a)=>a.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:B.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),n=this.changes(i.changes),s=[i.range],g=er(i.effects);for(let o=1;og.spec.fromJSON(o,a)))}}return r.create({doc:e.doc,selection:B.fromJSON(e.selection),extensions:t.extensions?n.concat([t.extensions]):n})}static create(e={}){let t=kg.resolve(e.extensions||[],new Map),i=e.doc instanceof ie?e.doc:ie.of((e.doc||"").split(t.staticFacet(r.lineSeparator)||Ha)),n=e.selection?e.selection instanceof B?e.selection:B.single(e.selection.anchor,e.selection.head):B.single(0);return Hm(n,i.length),t.staticFacet(Xa)||(n=n.asSingle()),new r(t,i,n,t.dynamicSlots.map(()=>null),(s,g)=>g.create(s),null)}get tabSize(){return this.facet(r.tabSize)}get lineBreak(){return this.facet(r.lineSeparator)||` +`}get readOnly(){return this.facet(Jm)}phrase(e,...t){for(let i of this.facet(r.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,n)=>{if(n=="$")return"$";let s=+(n||1);return!s||s>t.length?i:t[s-1]})),e}languageDataAt(e,t,i=-1){let n=[];for(let s of this.facet(Ym))for(let g of s(this,t,i))Object.prototype.hasOwnProperty.call(g,e)&&n.push(g[e]);return n}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return KP(t.length?t[0]:"")}wordAt(e){let{text:t,from:i,length:n}=this.doc.lineAt(e),s=this.charCategorizer(e),g=e-i,o=e-i;for(;g>0;){let a=je(t,g,!1);if(s(t.slice(a,g))!=st.Word)break;g=a}for(;or.length?r[0]:4});xe.lineSeparator=Km;xe.readOnly=Jm;xe.phrases=V.define({compare(r,e){let t=Object.keys(r),i=Object.keys(e);return t.length==i.length&&t.every(n=>r[n]==e[n])}});xe.languageData=Ym;xe.changeFilter=Um;xe.transactionFilter=Xm;xe.transactionExtender=Qm;Tg.reconfigure=ce.define();function cn(r,e,t={}){let i={};for(let n of r)for(let s of Object.keys(n)){let g=n[s],o=i[s];if(o===void 0)i[s]=g;else if(!(o===g||g===void 0))if(Object.hasOwnProperty.call(t,s))i[s]=t[s](o,g);else throw new Error("Config merge conflict for field "+s)}for(let n in e)i[n]===void 0&&(i[n]=e[n]);return i}var kt=class{eq(e){return this==e}range(e,t=e){return es.create(e,t,this)}};kt.prototype.startSide=kt.prototype.endSide=0;kt.prototype.point=!1;kt.prototype.mapMode=Qe.TrackDel;function gA(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}var es=class r{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new r(e,t,i)}};function tA(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}var iA=class r{constructor(e,t,i,n){this.from=e,this.to=t,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,n=0){let s=i?this.to:this.from;for(let g=n,o=s.length;;){if(g==o)return g;let a=g+o>>1,A=s[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==g)return A>=0?g:o;A>=0?o=a:g=a+1}}between(e,t,i,n){for(let s=this.findIndex(t,-1e9,!0),g=this.findIndex(i,1e9,!1,s);sh||l==h&&A.startSide>0&&A.endSide<=0)continue;(h-l||A.endSide-A.startSide)<0||(g<0&&(g=l),A.point&&(o=Math.max(o,h-l)),i.push(A),n.push(l-g),s.push(h-g))}return{mapped:i.length?new r(n,s,i,o):null,pos:g}}},Ie=class r{constructor(e,t,i,n){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=n}static create(e,t,i,n){return new r(e,t,i,n)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:n=0,filterTo:s=this.length}=e,g=e.filter;if(t.length==0&&!g)return this;if(i&&(t=t.slice().sort(tA)),this.isEmpty)return t.length?r.of(t):this;let o=new Rg(this,null,-1).goto(0),a=0,A=[],C=new dn;for(;o.value||a=0){let I=t[a++];C.addInner(I.from,I.to,I.value)||A.push(I)}else o.rangeIndex==1&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||so.to||s=s&&e<=s+g.length&&g.between(s,e-s,t-s,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return ts.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ts.from(e).goto(t)}static compare(e,t,i,n,s=-1){let g=e.filter(I=>I.maxPoint>0||!I.isEmpty&&I.maxPoint>=s),o=t.filter(I=>I.maxPoint>0||!I.isEmpty&&I.maxPoint>=s),a=Vm(g,o,i),A=new In(g,a,s),C=new In(o,a,s);i.iterGaps((I,l,h)=>Wm(A,I,C,l,h,n)),i.empty&&i.length==0&&Wm(A,0,C,0,0,n)}static eq(e,t,i=0,n){n==null&&(n=999999999);let s=e.filter(C=>!C.isEmpty&&t.indexOf(C)<0),g=t.filter(C=>!C.isEmpty&&e.indexOf(C)<0);if(s.length!=g.length)return!1;if(!s.length)return!0;let o=Vm(s,g),a=new In(s,o,0).goto(i),A=new In(g,o,0).goto(i);for(;;){if(a.to!=A.to||!nA(a.active,A.active)||a.point&&(!A.point||!gA(a.point,A.point)))return!1;if(a.to>n)return!0;a.next(),A.next()}}static spans(e,t,i,n,s=-1){let g=new In(e,null,s).goto(t),o=t,a=g.openStart;for(;;){let A=Math.min(g.to,i);if(g.point){let C=g.activeForPoint(g.to),I=g.pointFromo&&(n.span(o,A,g.active,a),a=g.openEnd(A));if(g.to>i)return a+(g.point&&g.to>i?1:0);o=g.to,g.next()}}static of(e,t=!1){let i=new dn;for(let n of e instanceof es?[e]:t?UP(e):e)i.add(n.from,n.to,n.value);return i.finish()}static join(e){if(!e.length)return r.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let n=e[i];n!=r.empty;n=n.nextLayer)t=new r(n.chunkPos,n.chunk,t,Math.max(n.maxPoint,t.maxPoint));return t}};Ie.empty=new Ie([],[],null,-1);function UP(r){if(r.length>1)for(let e=r[0],t=1;t0)return r.slice().sort(tA);e=i}return r}Ie.empty.nextLayer=Ie.empty;var dn=class r{finishChunk(e){this.chunks.push(new iA(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new r)).add(e,t,i)}addInner(e,t,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(Ie.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=Ie.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Vm(r,e,t){let i=new Map;for(let s of r)for(let g=0;g=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new Rg(g,t,i,s));return n.length==1?n[0]:new r(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)Za(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)Za(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Za(this.heap,0)}}};function Za(r,e){for(let t=r[e];;){let i=(e<<1)+1;if(i>=r.length)break;let n=r[i];if(i+1=0&&(n=r[i+1],i++),t.compare(n)<0)break;r[i]=t,r[e]=n,e=i}}var In=class{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ts.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){bg(this.active,e),bg(this.activeTo,e),bg(this.activeRank,e),this.minActive=Gm(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:n,rank:s}=this.cursor;for(;t0;)t++;yg(this.active,t,i),yg(this.activeTo,t,n),yg(this.activeRank,t,s),e&&yg(e,t,this.cursor.from),this.minActive=Gm(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&bg(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}};function Wm(r,e,t,i,n,s){r.goto(e),t.goto(i);let g=i+n,o=i,a=i-e,A=!!s.boundChange;for(let C=!1;;){let I=r.to+a-t.to,l=I||r.endSide-t.endSide,h=l<0?r.to+a:t.to,d=Math.min(h,g);if(r.point||t.point?(r.point&&t.point&&gA(r.point,t.point)&&nA(r.activeForPoint(r.to),t.activeForPoint(t.to))||s.comparePoint(o,d,r.point,t.point),C=!1):(C&&s.boundChange(o),d>o&&!nA(r.active,t.active)&&s.compareRange(o,d,r.active,t.active),A&&dg)break;o=h,l<=0&&r.next(),l>=0&&t.next()}}function nA(r,e){if(r.length!=e.length)return!1;for(let t=0;t=e;i--)r[i+1]=r[i];r[e]=t}function Gm(r,e){let t=-1,i=1e9;for(let n=0;n=e)return n;if(n==r.length)break;s+=r.charCodeAt(n)==9?t-s%t:1,n=je(r,n)}return i===!0?-1:r.length}var oA="\u037C",iv=typeof Symbol>"u"?"__"+oA:Symbol.for(oA),aA=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),nv=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Ot=class{constructor(e,t){this.rules=[];let{finish:i}=t||{};function n(g){return/^@/.test(g)?[g]:g.split(/,\s*/)}function s(g,o,a,A){let C=[],I=/^@(\w+)\b/.exec(g[0]),l=I&&I[1]=="keyframes";if(I&&o==null)return a.push(g[0]+";");for(let h in o){let d=o[h];if(/&/.test(h))s(h.split(/,\s*/).map(c=>g.map(f=>c.replace(/&/,f))).reduce((c,f)=>c.concat(f)),d,a);else if(d&&typeof d=="object"){if(!I)throw new RangeError("The value of a property ("+h+") should be a primitive value.");s(n(h),d,C,l)}else d!=null&&C.push(h.replace(/_.*/,"").replace(/[A-Z]/g,c=>"-"+c.toLowerCase())+": "+d+";")}(C.length||l)&&a.push((i&&!I&&!A?g.map(i):g).join(", ")+" {"+C.join(" ")+"}")}for(let g in e)s(n(g),e[g],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=nv[iv]||1;return nv[iv]=e+1,oA+e.toString(36)}static mount(e,t,i){let n=e[aA],s=i&&i.nonce;n?s&&n.setNonce(s):n=new AA(e,s),n.mount(Array.isArray(t)?t:[t],e)}},rv=new Map,AA=class{constructor(e,t){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let s=rv.get(i);if(s)return e[aA]=s;this.sheet=new n.CSSStyleSheet,rv.set(i,this)}else this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[aA]=this}mount(e,t){let i=this.sheet,n=0,s=0;for(let g=0;g-1&&(this.modules.splice(a,1),s--,a=-1),a==-1){if(this.modules.splice(s++,0,o),i)for(let A=0;A",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},XP=typeof navigator<"u"&&/Mac/.test(navigator.platform),QP=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Le=0;Le<10;Le++)Ti[48+Le]=Ti[96+Le]=String(Le);var Le;for(Le=1;Le<=24;Le++)Ti[Le+111]="F"+Le;var Le;for(Le=65;Le<=90;Le++)Ti[Le]=String.fromCharCode(Le+32),rr[Le]=String.fromCharCode(Le);var Le;for(Dg in Ti)rr.hasOwnProperty(Dg)||(rr[Dg]=Ti[Dg]);var Dg;function sv(r){var e=XP&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||QP&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?rr:Ti)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}var ot=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},fA=typeof document<"u"?document:{documentElement:{style:{}}},pA=/Edge\/(\d+)/.exec(ot.userAgent),Lv=/MSIE \d/.test(ot.userAgent),mA=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ot.userAgent),Ao=!!(Lv||mA||pA),gv=!Ao&&/gecko\/(\d+)/i.test(ot.userAgent),CA=!Ao&&/Chrome\/(\d+)/.exec(ot.userAgent),ov="webkitFontSmoothing"in fA.documentElement.style,vA=!Ao&&/Apple Computer/.test(ot.vendor),av=vA&&(/Mobile\/\w+/.test(ot.userAgent)||ot.maxTouchPoints>2),z={mac:av||/Mac/.test(ot.platform),windows:/Win/.test(ot.platform),linux:/Linux|X11/.test(ot.platform),ie:Ao,ie_version:Lv?fA.documentMode||6:mA?+mA[1]:pA?+pA[1]:0,gecko:gv,gecko_version:gv?+(/Firefox\/(\d+)/.exec(ot.userAgent)||[0,0])[1]:0,chrome:!!CA,chrome_version:CA?+CA[1]:0,ios:av,android:/Android\b/.test(ot.userAgent),webkit:ov,webkit_version:ov?+(/\bAppleWebKit\/(\d+)/.exec(ot.userAgent)||[0,0])[1]:0,safari:vA,safari_version:vA?+(/\bVersion\/(\d+(\.\d+)?)/.exec(ot.userAgent)||[0,0])[1]:0,tabSize:fA.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function rC(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}var Hg=Object.create(null);function sC(r,e,t){if(r==e)return!0;r||(r=Hg),e||(e=Hg);let i=Object.keys(r),n=Object.keys(e);if(i.length-(t&&i.indexOf(t)>-1?1:0)!=n.length-(t&&n.indexOf(t)>-1?1:0))return!1;for(let s of i)if(s!=t&&(n.indexOf(s)==-1||r[s]!==e[s]))return!1;return!0}function JP(r,e){for(let t=r.attributes.length-1;t>=0;t--){let i=r.attributes[t].name;e[i]==null&&r.removeAttribute(i)}for(let t in e){let i=e[t];t=="style"?r.style.cssText=i:r.getAttribute(t)!=i&&r.setAttribute(t,i)}}function Av(r,e,t){let i=!1;if(e)for(let n in e)t&&n in t||(i=!0,n=="style"?r.style.cssText="":r.removeAttribute(n));if(t)for(let n in t)e&&e[n]==t[n]||(i=!0,n=="style"?r.style.cssText=t[n]:r.setAttribute(n,t[n]));return i}function $P(r){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new mn(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:s,end:g}=zv(e,t);i=(s?t?-3e8:-1:5e8)-1,n=(g?t?2e8:1:-6e8)+1}return new mn(e,i,n,t,e.widget||null,!0)}static line(e){return new ds(e)}static set(e,t=!1){return Ie.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};Ae.none=Ie.empty;var hs=class r extends Ae{constructor(e){let{start:t,end:i}=zv(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?rC(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Hg}eq(e){return this==e||e instanceof r&&this.tagName==e.tagName&&sC(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};hs.prototype.point=!1;var ds=class r extends Ae{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof r&&this.spec.class==e.spec.class&&sC(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};ds.prototype.mapMode=Qe.TrackBefore;ds.prototype.point=!0;var mn=class r extends Ae{constructor(e,t,i,n,s,g){super(t,i,s,e),this.block=n,this.isReplace=g,this.mapMode=n?t<=0?Qe.TrackBefore:Qe.TrackAfter:Qe.TrackDel}get type(){return this.startSide!=this.endSide?dt.WidgetRange:this.startSide<=0?dt.WidgetBefore:dt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof r&&eM(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};mn.prototype.point=!0;function zv(r,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=r;return t==null&&(t=r.inclusive),i==null&&(i=r.inclusive),{start:t??e,end:i??e}}function eM(r,e){return r==e||!!(r&&e&&r.compare(e))}function ar(r,e,t,i=0){let n=t.length-1;n>=0&&t[n]+i>=r?t[n]=Math.max(t[n],e):t.push(r,e)}var Yg=class r extends kt{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof r&&this.tagName==e.tagName&&sC(this.attributes,e.attributes)}static create(e){return new r(e.tagName,e.attributes||Hg)}static set(e,t=!1){return Ie.of(e,t)}};Yg.prototype.startSide=Yg.prototype.endSide=-1;function cs(r){let e;return r.nodeType==11?e=r.getSelection?r:r.ownerDocument:e=r,e.getSelection()}function bA(r,e){return e?r==e||r.contains(e.nodeType!=1?e.parentNode:e):!1}function Vg(r,e){if(!e.anchorNode)return!1;try{return bA(r,e.anchorNode)}catch{return!1}}function Wg(r){return r.nodeType==3?us(r,0,r.nodeValue.length).getClientRects():r.nodeType==1?r.getClientRects():[]}function gs(r,e,t,i){return t?Cv(r,e,t,i,-1)||Cv(r,e,t,i,1):!1}function Zi(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e}function Kg(r){return r.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(r.nodeName)}function Cv(r,e,t,i,n){for(;;){if(r==t&&e==i)return!0;if(e==(n<0?0:Oi(r))){if(r.nodeName=="DIV")return!1;let s=r.parentNode;if(!s||s.nodeType!=1)return!1;e=Zi(r)+(n<0?0:1),r=s}else if(r.nodeType==1){if(r=r.childNodes[e+(n<0?-1:0)],r.nodeType==1&&r.contentEditable=="false")return!1;e=n<0?Oi(r):0}else return!1}}function Oi(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function Ug(r,e){let t=e?r.left:r.right;return{left:t,right:t,top:r.top,bottom:r.bottom}}function tM(r){let e=r.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:r.innerWidth,top:0,bottom:r.innerHeight}}function qv(r,e){let t=e.width/r.offsetWidth,i=e.height/r.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-r.offsetWidth)<1)&&(t=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-r.offsetHeight)<1)&&(i=1),{scaleX:t,scaleY:i}}function iM(r,e,t,i,n,s,g,o){let a=r.ownerDocument,A=a.defaultView||window;for(let C=r,I=!1;C&&!I;)if(C.nodeType==1){let l,h=C==a.body,d=1,c=1;if(h)l=tM(A);else{if(/^(fixed|sticky)$/.test(getComputedStyle(C).position)&&(I=!0),C.scrollHeight<=C.clientHeight&&C.scrollWidth<=C.clientWidth){C=C.assignedSlot||C.parentNode;continue}let p=C.getBoundingClientRect();({scaleX:d,scaleY:c}=qv(C,p)),l={left:p.left,right:p.left+C.clientWidth*d,top:p.top,bottom:p.top+C.clientHeight*c}}let f=0,u=0;if(n=="nearest")e.top0&&e.bottom>l.bottom+u&&(u=e.bottom-l.bottom+g)):e.bottom>l.bottom&&(u=e.bottom-l.bottom+g,t<0&&e.top-u0&&e.right>l.right+f&&(f=e.right-l.right+s)):e.right>l.right&&(f=e.right-l.right+s,t<0&&e.leftl.bottom||e.leftl.right)&&(e={left:Math.max(e.left,l.left),right:Math.min(e.right,l.right),top:Math.max(e.top,l.top),bottom:Math.min(e.bottom,l.bottom)}),C=C.assignedSlot||C.parentNode}else if(C.nodeType==11)C=C.host;else break}function nM(r){let e=r.ownerDocument,t,i;for(let n=r.parentNode;n&&!(n==e.body||t&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!t&&n.scrollWidth>n.clientWidth&&(t=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:t,y:i}}var yA=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:i}=e;this.set(t,Math.min(e.anchorOffset,t?Oi(t):0),i,Math.min(e.focusOffset,i?Oi(i):0))}set(e,t,i,n){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=n}},fn=null;z.safari&&z.safari_version>=26&&(fn=!1);function Vv(r){if(r.setActive)return r.setActive();if(fn)return r.focus(fn);let e=[];for(let t=r;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(r.focus(fn==null?{get preventScroll(){return fn={preventScroll:!0},!0}}:void 0),!fn){fn=!1;for(let t=0;tMath.max(1,r.scrollHeight-r.clientHeight-4)}function Gv(r,e){for(let t=r,i=e;;){if(t.nodeType==3&&i>0)return{node:t,offset:i};if(t.nodeType==1&&i>0){if(t.contentEditable=="false")return null;t=t.childNodes[i-1],i=Oi(t)}else if(t.parentNode&&!Kg(t))i=Zi(t),t=t.parentNode;else return null}}function Zv(r,e){for(let t=r,i=e;;){if(t.nodeType==3&&i=t){if(o.level==i)return g;(s<0||(n!=0?n<0?o.fromt:e[s].level>o.level))&&(s=g)}}if(s<0)throw new RangeError("Index out of range");return s}};function Yv(r,e){if(r.length!=e.length)return!1;for(let t=0;t=0;c-=3)if(gi[c+1]==-h){let f=gi[c+2],u=f&2?n:f&4?f&1?s:n:0;u&&(ue[I]=ue[gi[c]]=u),o=c;break}}else{if(gi.length==189)break;gi[o++]=I,gi[o++]=l,gi[o++]=a}else if((d=ue[I])==2||d==1){let c=d==n;a=c?0:1;for(let f=o-3;f>=0;f-=3){let u=gi[f+2];if(u&2)break;if(c)gi[f+2]|=2;else{if(u&4)break;gi[f+2]|=4}}}}}function IM(r,e,t,i){for(let n=0,s=i;n<=t.length;n++){let g=n?t[n-1].to:r,o=na;)d==f&&(d=t[--c].from,f=c?t[c-1].to:r),ue[--d]=h;a=C}else s=A,a++}}}function xA(r,e,t,i,n,s,g){let o=i%2?2:1;if(i%2==n%2)for(let a=e,A=0;aa&&g.push(new Gt(a,c.from,h));let f=c.direction==vn!=!(h%2);SA(r,f?i+1:i,n,c.inner,c.from,c.to,g),a=c.to}d=c.to}else{if(d==t||(C?ue[d]!=o:ue[d]==o))break;d++}l?xA(r,a,d,i+1,n,l,g):ae;){let C=!0,I=!1;if(!A||a>s[A-1].to){let c=ue[a-1];c!=o&&(C=!1,I=c==16)}let l=!C&&o==1?[]:null,h=C?i:i+1,d=a;e:for(;;)if(A&&d==s[A-1].to){if(I)break e;let c=s[--A];if(!C)for(let f=c.from,u=A;;){if(f==e)break e;if(u&&s[u-1].to==f)f=s[--u].from;else{if(ue[f-1]==o)break e;break}}if(l)l.push(c);else{c.toue.length;)ue[ue.length]=256;let i=[],n=e==vn?0:1;return SA(r,n,n,t,0,r.length,i),i}function Kv(r){return[new Gt(0,r,0)]}var Uv="";function hM(r,e,t,i,n){var s;let g=i.head-r.from,o=Gt.find(e,g,(s=i.bidiLevel)!==null&&s!==void 0?s:-1,i.assoc),a=e[o],A=a.side(n,t);if(g==A){let l=o+=n?1:-1;if(l<0||l>=e.length)return null;a=e[o=l],g=a.side(!n,t),A=a.side(n,t)}let C=je(r.text,g,a.forward(n,t));(Ca.to)&&(C=A),Uv=r.text.slice(Math.min(g,C),Math.max(g,C));let I=o==(n?e.length-1:0)?null:e[o+(n?1:-1)];return I&&C==A&&I.level+(n?0:1)r.some(e=>e)}),cM=V.define({combine:r=>r.some(e=>e)}),nb=V.define(),os=class r{constructor(e,t="nearest",i="nearest",n=5,s=5,g=!1){this.range=e,this.y=t,this.x=i,this.yMargin=n,this.xMargin=s,this.isSnapshot=g}map(e){return e.empty?this:new r(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new r(B.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},Pg=ce.define({map:(r,e)=>r.map(e)}),rb=ce.define();function yt(r,e,t){let i=r.facet($v);i.length?i[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var ki=V.define({combine:r=>r.length?r[0]:!0}),uM=0,sr=V.define({combine(r){return r.filter((e,t)=>{for(let i=0;i{let a=[];return g&&a.push(Co.of(A=>{let C=A.plugin(o);return C?g(C):Ae.none})),s&&a.push(s(o)),a})}static fromClass(e,t){return r.define((i,n)=>new e(i,n),t)}},as=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(yt(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){yt(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){yt(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},sb=V.define(),AC=V.define(),Co=V.define(),gb=V.define(),CC=V.define(),fs=V.define(),ob=V.define();function lv(r,e){let t=r.state.facet(ob);if(!t.length)return t;let i=t.map(s=>s instanceof Function?s(r):s),n=[];return Ie.spans(i,e.from,e.to,{point(){},span(s,g,o,a){let A=s-e.from,C=g-e.from,I=n;for(let l=o.length-1;l>=0;l--,a--){let h=o[l].spec.bidiIsolate,d;if(h==null&&(h=dM(e.text,A,C)),a>0&&I.length&&(d=I[I.length-1]).to==A&&d.direction==h)d.to=C,I=d.inner;else{let c={from:A,to:C,direction:h,inner:[]};I.push(c),I=c.inner}}}}),n}var ab=V.define();function IC(r){let e=0,t=0,i=0,n=0;for(let s of r.state.facet(ab)){let g=s(r);g&&(g.left!=null&&(e=Math.max(e,g.left)),g.right!=null&&(t=Math.max(t,g.right)),g.top!=null&&(i=Math.max(i,g.top)),g.bottom!=null&&(n=Math.max(n,g.bottom)))}return{left:e,right:t,top:i,bottom:n}}var ns=V.define(),Zt=class r{constructor(e,t,i,n){this.fromA=e,this.toA=t,this.fromB=i,this.toB=n}join(e){return new r(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let n=e[t-1];if(!(n.fromA>i.toA)){if(n.toAn.push(new Zt(s,g,o,a))),this.changedRanges=n}static create(e,t,i){return new r(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},fM=[],Me=class{constructor(e,t,i=0){this.dom=e,this.length=t,this.flags=i,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return fM}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&JP(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let i=t;for(let n of this.children){if(n==e)return i;i+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let i=Zi(this.dom),n=this.length?e>0:t>0;return new oi(this.parent.dom,i+(n?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Ir)return e;return null}static get(e){return e.cmTile}},Cr=class extends Me{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,i=null,n,s=e?.node==t?e:null,g=0;for(let o of this.children){if(o.sync(e),g+=o.length+o.breakAfter,n=i?i.nextSibling:t.firstChild,s&&n!=o.dom&&(s.written=!0),o.dom.parentNode==t)for(;n&&n!=o.dom;)n=hv(n);else t.insertBefore(o.dom,n);i=o.dom}for(n=i?i.nextSibling:t.firstChild,s&&n&&(s.written=!0);n;)n=hv(n);this.length=g}};function hv(r){let e=r.nextSibling;return r.parentNode.removeChild(r),e}var Ir=class extends Cr{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=Me.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],i=this,n=0,s=0;;)if(n==i.children.length){if(!t.length)return;i=i.parent,i.breakAfter&&s++,n=t.pop()}else{let g=i.children[n++];if(g instanceof Vi)t.push(n),i=g,n=0;else{let o=s+g.length,a=e(g,s);if(a!==void 0)return a;s=o+g.breakAfter}}}resolveBlock(e,t){let i,n=-1,s,g=-1;if(this.blockTiles((o,a)=>{let A=a+o.length;if(e>=a&&e<=A){if(o.isWidget()&&t>=-1&&t<=1){if(o.flags&32)return!0;o.flags&16&&(i=void 0)}(ae||e==a&&(t>1?o.length:o.covers(-1)))&&(!s||!o.isWidget()&&s.isWidget())&&(s=o,g=e-a)}}),!i&&!s)throw new Error("No tile at position "+e);return i&&t<0||!s?{tile:i,offset:n}:{tile:s,offset:g}}},Vi=class r extends Cr{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let i=new r(t||document.createElement(e.tagName),e);return t||(i.flags|=4),i}},lr=class r extends Cr{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,i){let n=new r(t||document.createElement("div"),e);return(!t||!i)&&(n.flags|=4),n}get domAttrs(){return this.attrs}resolveInline(e,t,i){let n=null,s=-1,g=null,o=-1;function a(C,I){for(let l=0,h=0;l=I&&(d.isComposite()?a(d,I-h):(!g||g.isHidden&&(t>0||i&&mM(g,d)))&&(c>I||d.flags&32)?(g=d,o=I-h):(hi&&(e=i);let n=e,s=e,g=0;e==0&&t<0||e==i&&t>=0?z.chrome||z.gecko||(e?(n--,g=1):s=0)?0:o.length-1];return z.safari&&!g&&a.width==0&&(a=Array.prototype.find.call(o,A=>A.width)||a),g?Ug(a,g<0):a||null}static of(e,t){let i=new r(t||document.createTextNode(e),e);return t||(i.flags|=2),i}},bn=class r extends Me{constructor(e,t,i,n){super(e,t,n),this.widget=i}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,i){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;if(i)return Ug(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),g=null;if(!s.length)return null;let o=this.flags&16?!0:this.flags&32?!1:e>0;for(let a=o?s.length-1:0;g=s[a],!(e>0?a==0:a==s.length-1||g.top0;)if(n.isComposite())if(g){if(!e)break;i&&i.break(),e--,g=!1}else if(s==n.children.length){if(!e&&!o.length)break;i&&i.leave(n),g=!!n.breakAfter,{tile:n,index:s}=o.pop(),s++}else{let a=n.children[s],A=a.breakAfter;(t>0?a.length<=e:a.length=0;o--){let a=t.marks[o],A=n.lastChild;if(A instanceof ht&&A.mark.eq(a.mark))A.dom!=a.dom&&A.setDOM(IA(a.dom)),n=A;else{if(this.cache.reused.get(a)){let I=Me.get(a.dom);I&&I.setDOM(IA(a.dom))}let C=ht.of(a.mark,a.dom);n.append(C),n=C}this.cache.reused.set(a,2)}let s=Me.get(e.text);s&&this.cache.reused.set(s,2);let g=new pn(e.text,e.text.nodeValue);g.flags|=8,n.append(g)}addInlineWidget(e,t,i){let n=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);n||this.flushBuffer();let s=this.ensureMarks(t,i);!n&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,i){this.flushBuffer(),this.ensureMarks(t,i).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var i;e||(e=Ab);let n=lr.start(e,t||((i=this.cache.find(lr))===null||i===void 0?void 0:i.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=n)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var i;let n=this.curLine;for(let s=e.length-1;s>=0;s--){let g=e[s],o;if(t>0&&(o=n.lastChild)&&o instanceof ht&&o.mark.eq(g))n=o,t--;else{let a=ht.of(g,(i=this.cache.find(ht,A=>A.mark.eq(g)))===null||i===void 0?void 0:i.dom);n.append(a),n=a,t=0}}return n}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!dv(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(z.ios&&dv(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(lA,0,32)||new bn(lA.toDOM(),0,lA,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=new kA(e.from,e.to,e.value,e.rank),i=this.wrappers.length;for(;i>0&&(this.wrappers[i-1].rank-t.rank||this.wrappers[i-1].to-t.to)<0;)i--;this.wrappers.splice(i,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let i of this.wrappers){let n=t.lastChild;if(i.fromg.wrapper.eq(i.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),i=this.cache.find(hr,void 0,1);return i&&(i.flags=t),i||new hr(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},RA=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:n,lineBreak:s,done:g}=this.cursor.next(this.skipCount);if(this.skipCount=0,g)throw new Error("Ran out of text content when drawing inline views");this.text=n;let o=this.textOff=Math.min(e,n.length);return s?null:n.slice(0,o)}let t=Math.min(this.text.length,this.textOff+e),i=this.text.slice(this.textOff,t);return this.textOff=t,i}},Qg=[bn,lr,pn,ht,hr,Vi,Ir];for(let r=0;r[]),this.index=Qg.map(()=>0),this.reused=new Map}add(e){e.demo&&console.log("Add widget to cache");let t=e.constructor.bucket,i=this.buckets[t];i.length<6?i.push(e):i[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,i=2){let n=e.bucket,s=this.buckets[n],g=this.index[n];for(let o=s.length-1;o>=0;o--){let a=(o+g)%s.length,A=s[a];if((!t||t(A))&&!this.reused.has(A))return s.splice(a,1),a{if(this.cache.add(g),g.isComposite())return!1},enter:g=>this.cache.add(g),leave:()=>{},break:()=>{}}}run(e,t){let i=t&&this.getCompositionContext(t.text);for(let n=0,s=0,g=0;;){let o=gn){let A=a-n;this.preserve(A,!g,!o),n=a,s+=A}if(!o)break;t&&o.fromA<=t.range.fromA&&o.toA>=t.range.toA?(this.forward(o.fromA,t.range.fromA),this.emit(s,t.range.fromB),this.cache.clear(),this.builder.addComposition(t,i),this.text.skip(t.range.toB-t.range.fromB),this.forward(t.range.fromA,o.toA),this.emit(t.range.toB,o.toB)):(this.forward(o.fromA,o.toA),this.emit(s,o.toB)),s=o.toB,n=o.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,t,i){let n=yM(this.old),s=this.openMarks;this.old.advance(e,i?1:-1,{skip:(g,o,a)=>{if(g.isWidget())if(this.openWidget)this.builder.continueWidget(a-o);else{let A=a>0||o{g.isLine()?this.builder.addLineStart(g.attrs,this.cache.maybeReuse(g)):(this.cache.add(g),g instanceof ht&&n.unshift(g.mark)),this.openWidget=!1},leave:g=>{g.isLine()?n.length&&(n.length=s=0):g instanceof ht&&(n.shift(),s=Math.min(s,n.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let i=null,n=this.builder,s=0,g=Ie.spans(this.decorations,e,t,{point:(o,a,A,C,I,l)=>{if(A instanceof mn){if(this.disallowBlockEffectsFor[l]){if(A.block)throw new RangeError("Block decorations may not be specified via plugins");if(a>this.view.state.doc.lineAt(o).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=C.length,I>C.length)n.continueWidget(a-o);else{let h=A.widget||(A.block?ji.block:ji.inline),d=vM(A),c=this.cache.findWidget(h,a-o,d)||bn.of(h,this.view,a-o,d);A.block?(A.startSide>0&&n.addLineStartIfNotCovered(i),n.addBlockWidget(c)):(n.ensureLine(i),n.addInlineWidget(c,C,I))}i=null}else i=bM(i,A);a>o&&this.text.skip(a-o)},span:(o,a,A,C)=>{for(let I=o;Is,this.openMarks=g}forward(e,t){t-e<=10?this.old.advance(t-e,1,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,1,this.reuseWalker))}getCompositionContext(e){let t=[],i=null;for(let n=e.parentNode;;n=n.parentNode){let s=Me.get(n);if(n==this.view.contentDOM)break;s instanceof ht?t.push(s):s?.isLine()?i=s:n.nodeName=="DIV"&&!i&&n!=this.view.contentDOM?i=new lr(n,Ab):t.push(ht.of(new hs({tagName:n.nodeName.toLowerCase(),attributes:$P(n)}),n))}return{line:i,marks:t}}};function dv(r,e){let t=i=>{for(let n of i.children)if((e?n.isText():n.length)||t(n))return!0;return!1};return t(r)}function vM(r){let e=r.isReplace?(r.startSide<0?64:0)|(r.endSide>0?128:0):r.startSide>0?32:16;return r.block&&(e|=256),e}var Ab={class:"cm-line"};function bM(r,e){let t=e.spec.attributes,i=e.spec.class;return!t&&!i||(r||(r={class:"cm-line"}),t&&rC(t,r),i&&(r.class+=" "+i)),r}function yM(r){let e=[];for(let t=r.parents.length;t>1;t--){let i=t==r.parents.length?r.tile:r.parents[t].tile;i instanceof ht&&e.push(i.mark)}return e}function IA(r){let e=Me.get(r);return e&&e.setDOM(r.cloneNode()),r}var ji=class extends Gi{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};ji.inline=new ji("span");ji.block=new ji("div");var lA=new class extends Gi{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Jg=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Ae.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Ir(e,e.contentDOM),this.updateInner([new Zt(0,0,0,e.state.doc.length)],null)}update(e){var t;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:C,toA:I})=>Ithis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?n=this.domChanged.newSel.head:!RM(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let s=n>-1?xM(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){let{from:C,to:I}=this.hasComposition;i=new Zt(C,I,e.changes.mapPos(C,-1),e.changes.mapPos(I,1)).addToSet(i.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(z.ie||z.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let g=this.decorations,o=this.blockWrappers;this.updateDeco();let a=TM(g,this.decorations,e.changes);a.length&&(i=Zt.extendWithRanges(i,a));let A=kM(o,this.blockWrappers,e.changes);return A.length&&(i=Zt.extendWithRanges(i,A)),s&&!i.some(C=>C.fromA<=s.range.fromA&&C.toA>=s.range.toA)&&(i=s.range.addToSet(i.slice())),this.tile.flags&2&&i.length==0?!1:(this.updateInner(i,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:i}=this.view;i.ignore(()=>{if(t||e.length){let g=this.tile,o=new PA(this.view,g,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=o.run(e,t),MA(g,o.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=z.chrome||z.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||i.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let n=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Vg(i,this.view.observer.selectionRange)&&!(n&&i.contains(n));if(!(s||t||g))return;let o=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,A,C;if(a.empty?C=A=this.inlineDOMNearPos(a.anchor,a.assoc||1):(C=this.inlineDOMNearPos(a.head,a.head==a.from?1:-1),A=this.inlineDOMNearPos(a.anchor,a.anchor==a.from?1:-1)),z.gecko&&a.empty&&!this.hasComposition&&wM(A)){let l=document.createTextNode("");this.view.observer.ignore(()=>A.node.insertBefore(l,A.node.childNodes[A.offset]||null)),A=C=new oi(l,0),o=!0}let I=this.view.observer.selectionRange;(o||!I.focusNode||(!gs(A.node,A.offset,I.anchorNode,I.anchorOffset)||!gs(C.node,C.offset,I.focusNode,I.focusOffset))&&!this.suppressWidgetCursorChange(I,a))&&(this.view.observer.ignore(()=>{z.android&&z.chrome&&i.contains(I.focusNode)&&OM(I.focusNode,i)&&(i.blur(),i.focus({preventScroll:!0}));let l=cs(this.view.root);if(l)if(a.empty){if(z.gecko){let h=SM(A.node,A.offset);if(h&&h!=3){let d=(h==1?Gv:Zv)(A.node,A.offset);d&&(A=new oi(d.node,d.offset))}}l.collapse(A.node,A.offset),a.bidiLevel!=null&&l.caretBidiLevel!==void 0&&(l.caretBidiLevel=a.bidiLevel)}else if(l.extend){l.collapse(A.node,A.offset);try{l.extend(C.node,C.offset)}catch{}}else{let h=document.createRange();a.anchor>a.head&&([A,C]=[C,A]),h.setEnd(C.node,C.offset),h.setStart(A.node,A.offset),l.removeAllRanges(),l.addRange(h)}g&&this.view.root.activeElement==i&&(i.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(A,C)),this.impreciseAnchor=A.precise?null:new oi(I.anchorNode,I.anchorOffset),this.impreciseHead=C.precise?null:new oi(I.focusNode,I.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&gs(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=cs(e.root),{anchorNode:n,anchorOffset:s}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let g=this.lineAt(t.head,t.assoc);if(!g)return;let o=g.posAtStart;if(t.head==o||t.head==o+g.length)return;let a=this.coordsAt(t.head,-1),A=this.coordsAt(t.head,1);if(!a||!A||a.bottom>A.top)return;let C=this.domAtPos(t.head+t.assoc,t.assoc);i.collapse(C.node,C.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let I=e.observer.selectionRange;e.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=t.from&&i.collapse(n,s)}posFromDOM(e,t){let i=this.tile.nearest(e);if(!i)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let n=i.posAtStart;if(i.isComposite()){let s;if(e==i.dom)s=i.dom.childNodes[t];else{let g=Oi(e)==0?0:t==0?-1:1;for(;;){let o=e.parentNode;if(o==i.dom)break;g==0&&o.firstChild!=o.lastChild&&(e==o.firstChild?g=-1:g=1),e=o}g<0?s=e:s=e.nextSibling}if(s==i.dom.firstChild)return n;for(;s&&!Me.get(s);)s=s.nextSibling;if(!s)return n+i.length;for(let g=0,o=n;;g++){let a=i.children[g];if(a.dom==s)return o;o+=a.length+a.breakAfter}}else return i.isText()?e==i.dom?n+t:n+(t?i.length:0):n}domAtPos(e,t){let{tile:i,offset:n}=this.tile.resolveBlock(e,t);return i.isWidget()?i.domPosFor(e,t):i.domIn(n,t)}inlineDOMNearPos(e,t){let i,n=-1,s=!1,g,o=-1,a=!1;return this.tile.blockTiles((A,C)=>{if(A.isWidget()){if(A.flags&32&&C>=e)return!0;A.flags&16&&(s=!0)}else{let I=C+A.length;if(C<=e&&(i=A,n=e-C,s=I=e&&!g&&(g=A,o=e-C,a=C>e),C>e&&g)return!0}}),!i&&!g?this.domAtPos(e,t):(s&&g?i=null:a&&i&&(g=null),i&&t<0||!g?i.domIn(n,t):g.domIn(o,t))}coordsAt(e,t){let{tile:i,offset:n}=this.tile.resolveBlock(e,t);return i.isWidget()?i.widget instanceof As?null:i.coordsInWidget(n,t,!0):i.coordsIn(n,t)}lineAt(e,t){let{tile:i}=this.tile.resolveBlock(e,t);return i.isLine()?i:null}coordsForChar(e){let{tile:t,offset:i}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function n(s,g){if(s.isComposite())for(let o of s.children){if(o.length>=g){let a=n(o,g);if(a)return a}if(g-=o.length,g<0)break}else if(s.isText()&&gMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==pe.LTR,A=0,C=(I,l,h)=>{for(let d=0;dn);d++){let c=I.children[d],f=l+c.length,u=c.dom.getBoundingClientRect(),{height:p}=u;if(h&&!d&&(A+=u.top-h.top),c instanceof Vi)f>i&&C(c,l,u);else if(l>=i&&(A>0&&t.push(-A),t.push(p+A),A=0,g)){let v=c.dom.lastChild,m=v?Wg(v):[];if(m.length){let b=m[m.length-1],w=a?b.right-u.left:u.right-b.left;w>o&&(o=w,this.minWidth=s,this.minWidthFrom=l,this.minWidthTo=f)}}h&&d==I.children.length-1&&(A+=h.bottom-u.bottom),l=f+c.breakAfter}};return C(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?pe.RTL:pe.LTR}measureTextSize(){let e=this.tile.blockTiles(g=>{if(g.isLine()&&g.children.length&&g.length<=20){let o=0,a;for(let A of g.children){if(!A.isText()||/[^ -~]/.test(A.text))return;let C=Wg(A.dom);if(C.length!=1)return;o+=C[0].width,a=C[0].height}if(o)return{lineHeight:g.dom.getBoundingClientRect().height,charWidth:o/g.length,textHeight:a}}});if(e)return e;let t=document.createElement("div"),i,n,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let g=Wg(t.firstChild)[0];i=t.getBoundingClientRect().height,n=g&&g.width?g.width/27:7,s=g&&g.height?g.height:i,t.remove()}),{lineHeight:i,charWidth:n,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,n=0;;n++){let s=n==t.viewports.length?null:t.viewports[n],g=s?s.from-1:this.view.state.doc.length;if(g>i){let o=(t.lineBlockAt(g).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(Ae.replace({widget:new As(o),block:!0,inclusive:!0,isBlockGap:!0}).range(i,g))}if(!s)break;i=s.to+1}return Ae.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Co).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),i=!1,n=this.view.state.facet(CC).map((s,g)=>{let o=typeof s=="function";return o&&(i=!0),o?s(this.view):s});for(n.length&&(this.dynamicDecorationMap[e++]=i,t.push(Ie.join(n))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let A=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=A.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let A of this.view.state.facet(nb))try{if(A(this.view,e.range,e))return!0}catch(C){yt(this.view.state,C,"scroll handler")}let{range:t}=e,i=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),n;if(!i)return;!t.empty&&(n=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let s=IC(this.view),g={left:i.left-s.left,top:i.top-s.top,right:i.right+s.right,bottom:i.bottom+s.bottom},{offsetWidth:o,offsetHeight:a}=this.view.scrollDOM;iM(this.view.scrollDOM,g,t.headi.isWidget()||i.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){MA(this.tile)}};function MA(r,e){let t=e?.get(r);if(t!=1){t==null&&r.destroy();for(let i of r.children)MA(i,e)}}function wM(r){return r.node.nodeType==1&&r.node.firstChild&&(r.offset==0||r.node.childNodes[r.offset-1].contentEditable=="false")&&(r.offset==r.node.childNodes.length||r.node.childNodes[r.offset].contentEditable=="false")}function Cb(r,e){let t=r.observer.selectionRange;if(!t.focusNode)return null;let i=Gv(t.focusNode,t.focusOffset),n=Zv(t.focusNode,t.focusOffset),s=i||n;if(n&&i&&n.node!=i.node){let o=Me.get(n.node);if(!o||o.isText()&&o.text!=n.node.nodeValue)s=n;else if(r.docView.lastCompositionAfterCursor){let a=Me.get(i.node);!a||a.isText()&&a.text!=i.node.nodeValue||(s=n)}}if(r.docView.lastCompositionAfterCursor=s!=i,!s)return null;let g=e-s.offset;return{from:g,to:g+s.node.nodeValue.length,node:s.node}}function xM(r,e,t){let i=Cb(r,t);if(!i)return null;let{node:n,from:s,to:g}=i,o=n.nodeValue;if(/[\n\r]/.test(o)||r.state.doc.sliceString(i.from,i.to)!=o)return null;let a=e.invertedDesc;return{range:new Zt(a.mapPos(s),a.mapPos(g),s,g),text:n}}function SM(r,e){return r.nodeType!=1?0:(e&&r.childNodes[e-1].contentEditable=="false"?1:0)|(e{ie.from&&(t=!0)}),t}var As=class extends Gi{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function DM(r,e,t=1){let i=r.charCategorizer(e),n=r.doc.lineAt(e),s=e-n.from;if(n.length==0)return B.cursor(e);s==0?t=1:s==n.length&&(t=-1);let g=s,o=s;t<0?g=je(n.text,s,!1):o=je(n.text,s);let a=i(n.text.slice(g,o));for(;g>0;){let A=je(n.text,g,!1);if(i(n.text.slice(A,g))!=a)break;g=A}for(;or.defaultLineHeight*1.5){let o=r.viewState.heightOracle.textHeight,a=Math.floor((n-t.top-(r.defaultLineHeight-o)*.5)/o);s+=a*r.viewState.heightOracle.lineLength}let g=r.state.sliceDoc(t.from,t.to);return t.from+tv(g,s,r.state.tabSize)}function MM(r,e,t){let i=r.lineBlockAt(e);if(Array.isArray(i.type)){let n;for(let s of i.type){if(s.from>e)break;if(!(s.toe)return s;(!n||s.type==dt.Text&&(n.type!=s.type||(t<0?s.frome)))&&(n=s)}}return n||i}return i}function NM(r,e,t,i){let n=MM(r,e.head,e.assoc||-1),s=!i||n.type!=dt.Text||!(r.lineWrapping||n.widgetLineBreaks)?null:r.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(s){let g=r.dom.getBoundingClientRect(),o=r.textDirectionAt(n.from),a=r.posAtCoords({x:t==(o==pe.LTR)?g.right-1:g.left+1,y:(s.top+s.bottom)/2});if(a!=null)return B.cursor(a,t?-1:1)}return B.cursor(t?n.to:n.from,t?-1:1)}function cv(r,e,t,i){let n=r.state.doc.lineAt(e.head),s=r.bidiSpans(n),g=r.textDirectionAt(n.from);for(let o=e,a=null;;){let A=hM(n,s,g,o,t),C=Uv;if(!A){if(n.number==(t?r.state.doc.lines:1))return o;C=` +`,n=r.state.doc.line(n.number+(t?1:-1)),s=r.bidiSpans(n),A=r.visualLineSide(n,!t)}if(a){if(!a(C))return o}else{if(!i)return A;a=i(C)}o=A}}function BM(r,e,t){let i=r.state.charCategorizer(e),n=i(t);return s=>{let g=i(s);return n==st.Space&&(n=g),n==g}}function _M(r,e,t,i){let n=e.head,s=t?1:-1;if(n==(t?r.state.doc.length:0))return B.cursor(n,e.assoc);let g=e.goalColumn,o,a=r.contentDOM.getBoundingClientRect(),A=r.coordsAtPos(n,e.assoc||-1),C=r.documentTop;if(A)g==null&&(g=A.left-a.left),o=s<0?A.top:A.bottom;else{let h=r.viewState.lineBlockAt(n);g==null&&(g=Math.min(a.right-a.left,r.defaultCharacterWidth*(n-h.from))),o=(s<0?h.top:h.bottom)+C}let I=a.left+g,l=i??r.viewState.heightOracle.textHeight>>1;for(let h=0;;h+=10){let d=o+(l+h)*s,c=BA(r,{x:I,y:d},!1,s);return B.cursor(c.pos,c.assoc,void 0,g)}}function Cs(r,e,t){for(;;){let i=0;for(let n of r)n.between(e-1,e+1,(s,g,o)=>{if(e>s&&en(r)),t.from,e.head>t.from?-1:1);return i==t.from?t:B.cursor(i,ir.viewState.docHeight)return new Dt(r.state.doc.length,-1);if(A=r.elementAtHeight(a),i==null)break;if(A.type==dt.Text){let l=r.docView.coordsAt(i<0?A.from:A.to,i);if(l&&(i<0?l.top<=a+s:l.bottom>=a+s))break}let I=r.viewState.heightOracle.textHeight/2;a=i>0?A.bottom+I:A.top-I}if(r.viewport.from>=A.to||r.viewport.to<=A.from){if(t)return null;if(A.type==dt.Text){let I=PM(r,n,A,g,o);return new Dt(I,I==A.from?1:-1)}}if(A.type!=dt.Text)return a<(A.top+A.bottom)/2?new Dt(A.from,1):new Dt(A.to,-1);let C=r.docView.lineAt(A.from,2);return(!C||C.length!=A.length)&&(C=r.docView.lineAt(A.from,-2)),lb(r,C,A.from,g,o)}function lb(r,e,t,i,n){let s=-1,g=null,o=1e9,a=1e9,A=n,C=n,I=(l,h)=>{for(let d=0;di?c.left-i:c.rightn?c.top-n:c.bottom=A&&(A=Math.min(c.top,A),C=Math.max(c.bottom,C),u=0),(s<0||(u-a||f-o)<0)&&(s>=0&&a&&o=A+2?a=0:(s=h,o=f,a=u,g=c))}};if(e.isText()){for(let h=0;h(g.left+g.right)/2==(uv(r,s+t)==pe.LTR)?new Dt(t+je(e.text,s),-1):new Dt(t+s,1)}else{if(!e.length)return new Dt(t,1);for(let c=0;c(g.left+g.right)/2==(uv(r,s+t)==pe.LTR)?new Dt(h+l.length,-1):new Dt(h,1)}}function uv(r,e){let t=r.state.doc.lineAt(e);return r.bidiSpans(t)[Gt.find(r.bidiSpans(t),e-t.from,-1,1)].dir}var rs="\uFFFF",_A=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(xe.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=rs}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let n=e;;){this.findPointBefore(i,n);let s=this.text.length;this.readNode(n);let g=Me.get(n),o=n.nextSibling;if(o==t){g?.breakAfter&&!o&&i!=this.view.contentDOM&&this.lineBreak();break}let a=Me.get(o);(g&&a?g.breakAfter:(g?g.breakAfter:Kg(n))||Kg(o)&&(n.nodeName!="BR"||g?.isWidget())&&this.text.length>s)&&!LM(o,t)&&this.lineBreak(),n=o}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,g=1,o;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,i),g=this.lineSeparator.length):(o=n.exec(t))&&(s=o.index,g=o[0].length),this.append(t.slice(i,s<0?t.length:s)),s<0)break;if(this.lineBreak(),g>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=g-1);i=s+g}}readNode(e){let t=Me.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(FM(e,i.node,i.offset)?t:0))}};function FM(r,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:g}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=hb(e.docView.tile,t,i,0))){let o=s||g?[]:qM(e),a=new _A(o,e);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=VM(o,this.bounds.from)}else{let o=e.observer.selectionRange,a=s&&s.node==o.focusNode&&s.offset==o.focusOffset||!bA(e.contentDOM,o.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(o.focusNode,o.focusOffset),A=g&&g.node==o.anchorNode&&g.offset==o.anchorOffset||!bA(e.contentDOM,o.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(o.anchorNode,o.anchorOffset),C=e.viewport;if((z.ios||z.chrome)&&e.state.selection.main.empty&&a!=A&&(C.from>0||C.to-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(B.range(A,a)):this.newSel=B.single(A,a)}}};function hb(r,e,t,i){if(r.isComposite()){let n=-1,s=-1,g=-1,o=-1;for(let a=0,A=i,C=i;at)return hb(I,e,t,A);if(l>=e&&n==-1&&(n=a,s=A),A>t&&I.dom.parentNode==r.dom){g=a,o=C;break}C=l,A=l+I.breakAfter}return{from:s,to:o<0?i+r.length:o,startDOM:(n?r.children[n-1].dom.nextSibling:null)||r.dom.firstChild,endDOM:g=0?r.children[g].dom:null}}else return r.isText()?{from:i,to:i+r.length,startDOM:r.dom,endDOM:r.dom.nextSibling}:null}function db(r,e){let t,{newSel:i}=e,n=r.state.selection.main,s=r.inputState.lastKeyTime>Date.now()-100?r.inputState.lastKeyCode:-1;if(e.bounds){let{from:g,to:o}=e.bounds,a=n.from,A=null;(s===8||z.android&&e.text.length=n.from&&t.to<=n.to&&(t.from!=n.from||t.to!=n.to)&&n.to-n.from-(t.to-t.from)<=4?t={from:n.from,to:n.to,insert:r.state.doc.slice(n.from,t.from).append(t.insert).append(r.state.doc.slice(t.to,n.to))}:r.state.doc.lineAt(n.from).toDate.now()-50?t={from:n.from,to:n.to,insert:r.state.toText(r.inputState.insertingText)}:z.chrome&&t&&t.from==t.to&&t.from==n.head&&t.insert.toString()==` + `&&r.lineWrapping&&(i&&(i=B.single(i.main.anchor-1,i.main.head-1)),t={from:n.from,to:n.to,insert:ie.of([" "])}),t)return lC(r,t,i,s);if(i&&!i.main.eq(n)){let g=!1,o="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(g=!0),o=r.inputState.lastSelectionOrigin,o=="select.pointer"&&(i=Ib(r.state.facet(fs).map(a=>a(r)),i))),r.dispatch({selection:i,scrollIntoView:g,userEvent:o}),!0}else return!1}function lC(r,e,t,i=-1){if(z.ios&&r.inputState.flushIOSKey(e))return!0;let n=r.state.selection.main;if(z.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&r.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Ar(r.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||i==8&&e.insert.lengthn.head)&&Ar(r.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&Ar(r.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let g,o=()=>g||(g=zM(r,e,t));return r.state.facet(eb).some(a=>a(r,e.from,e.to,s,o))||r.dispatch(o()),!0}function zM(r,e,t){let i,n=r.state,s=n.selection.main,g=-1;if(e.from==e.to&&e.froms.to){let a=e.fromI(r)),A,a);e.from==C&&(g=C)}if(g>-1)i={changes:e,selection:B.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let a=s.frome.to?n.sliceDoc(e.to,s.to):"";i=n.replaceSelection(r.state.toText(a+e.insert.sliceString(0,void 0,r.state.lineBreak)+A))}else{let a=n.changes(e),A=t&&t.main.to<=a.newLength?t.main:void 0;if(n.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let C=r.state.sliceDoc(e.from,e.to),I,l=t&&Cb(r,t.main.head);if(l){let d=e.insert.length-(e.to-e.from);I={from:l.from,to:l.to-d}}else I=r.state.doc.lineAt(s.head);let h=s.to-e.to;i=n.changeByRange(d=>{if(d.from==s.from&&d.to==s.to)return{changes:a,range:A||d.map(a)};let c=d.to-h,f=c-C.length;if(r.state.sliceDoc(f,c)!=C||c>=I.from&&f<=I.to)return{range:d};let u=n.changes({from:f,to:c,insert:e.insert}),p=d.to-s.to;return{changes:u,range:A?B.range(Math.max(0,A.anchor+p),Math.max(0,A.head+p)):d.map(u)}})}else i={changes:a,selection:A&&n.selection.replaceRange(A)}}let o="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,o+=".compose",r.inputState.compositionFirstChange&&(o+=".start",r.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:o,scrollIntoView:!0})}function cb(r,e,t,i){let n=Math.min(r.length,e.length),s=0;for(;s0&&o>0&&r.charCodeAt(g-1)==e.charCodeAt(o-1);)g--,o--;if(i=="end"){let a=Math.max(0,s-Math.min(g,o));t-=g+a-s}if(g=g?s-t:0;s-=a,o=s+(o-g),g=s}else if(o=o?s-t:0;s-=a,g=s+(g-o),o=s}return{from:s,toA:g,toB:o}}function qM(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:n,focusOffset:s}=r.observer.selectionRange;return t&&(e.push(new $g(t,i)),(n!=t||s!=i)&&e.push(new $g(n,s))),e}function VM(r,e){if(r.length==0)return null;let t=r[0].pos,i=r.length==2?r[1].pos:t;return t>-1&&i>-1?B.single(t+e,i+e):null}var LA=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,z.safari&&e.contentDOM.addEventListener("input",()=>null),z.gecko&&tN(e.contentDOM.ownerDocument)}handleEvent(e){!KM(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let i=this.handlers[e];if(i){for(let n of i.observers)n(this.view,t);for(let n of i.handlers){if(t.defaultPrevented)break;if(n(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=WM(e),i=this.handlers,n=this.view.contentDOM;for(let s in t)if(s!="scroll"){let g=!t[s].handlers.length,o=i[s];o&&g!=!o.handlers.length&&(n.removeEventListener(s,this.handleEvent),o=null),o||n.addEventListener(s,this.handleEvent,{passive:g})}for(let s in i)s!="scroll"&&!t[s]&&n.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&fb.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),z.android&&z.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return z.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=ub.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||GM.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:z.safari&&!z.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function fv(r,e){return(t,i)=>{try{return e.call(r,i,t)}catch(n){yt(t.state,n)}}}function WM(r){let e=Object.create(null);function t(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of r){let n=i.spec,s=n&&n.plugin.domEventHandlers,g=n&&n.plugin.domEventObservers;if(s)for(let o in s){let a=s[o];a&&t(o).handlers.push(fv(i.value,a))}if(g)for(let o in g){let a=g[o];a&&t(o).observers.push(fv(i.value,a))}}for(let i in jt)t(i).handlers.push(jt[i]);for(let i in Pt)t(i).observers.push(Pt[i]);return e}var ub=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],GM="dthko",fb=[16,17,18,20,91,92,224,225],Mg=6;function Ng(r){return Math.max(0,r)*.7+8}function ZM(r,e){return Math.max(Math.abs(r.clientX-e.clientX),Math.abs(r.clientY-e.clientY))}var zA=class{constructor(e,t,i,n){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=nM(e.contentDOM),this.atoms=e.state.facet(fs).map(g=>g(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(xe.allowMultipleSelections)&&jM(e,t),this.dragging=YM(e,t)&&vb(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&ZM(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,i=0,n=0,s=0,g=this.view.win.innerWidth,o=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:g}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:o}=this.scrollParents.y.getBoundingClientRect());let a=IC(this.view);e.clientX-a.left<=n+Mg?t=-Ng(n-e.clientX):e.clientX+a.right>=g-Mg&&(t=Ng(e.clientX-g)),e.clientY-a.top<=s+Mg?i=-Ng(s-e.clientY):e.clientY+a.bottom>=o-Mg&&(i=Ng(e.clientY-o)),this.setScrollSpeed(t,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,i=Ib(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function jM(r,e){let t=r.state.facet(Xv);return t.length?t[0](e):z.mac?e.metaKey:e.ctrlKey}function HM(r,e){let t=r.state.facet(Qv);return t.length?t[0](e):z.mac?!e.altKey:!e.ctrlKey}function YM(r,e){let{main:t}=r.state.selection;if(t.empty)return!1;let i=cs(r.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&g.top<=e.clientY&&g.bottom>=e.clientY)return!0}return!1}function KM(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=r.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=Me.get(t))&&i.isWidget()&&!i.isHidden&&i.widget.ignoreEvent(e))return!1;return!0}var jt=Object.create(null),Pt=Object.create(null),pb=z.ie&&z.ie_version<15||z.ios&&z.webkit_version<604;function UM(r){let e=r.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{r.focus(),t.remove(),mb(r,t.value)},50)}function Io(r,e,t){for(let i of r.facet(e))t=i(t,r);return t}function mb(r,e){e=Io(r.state,oC,e);let{state:t}=r,i,n=1,s=t.toText(e),g=s.lines==t.selection.ranges.length;if(qA!=null&&t.selection.ranges.every(a=>a.empty)&&qA==s.toString()){let a=-1;i=t.changeByRange(A=>{let C=t.doc.lineAt(A.from);if(C.from==a)return{range:A};a=C.from;let I=t.toText((g?s.line(n++).text:e)+t.lineBreak);return{changes:{from:C.from,insert:I},range:B.cursor(A.from+I.length)}})}else g?i=t.changeByRange(a=>{let A=s.line(n++);return{changes:{from:a.from,to:a.to,insert:A.text},range:B.cursor(a.from+A.length)}}):i=t.replaceSelection(s);r.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Pt.scroll=r=>{r.inputState.lastScrollTop=r.scrollDOM.scrollTop,r.inputState.lastScrollLeft=r.scrollDOM.scrollLeft};jt.keydown=(r,e)=>(r.inputState.setSelectionOrigin("select"),e.keyCode==27&&r.inputState.tabFocusMode!=0&&(r.inputState.tabFocusMode=Date.now()+2e3),!1);Pt.touchstart=(r,e)=>{r.inputState.lastTouchTime=Date.now(),r.inputState.setSelectionOrigin("select.pointer")};Pt.touchmove=r=>{r.inputState.setSelectionOrigin("select.pointer")};jt.mousedown=(r,e)=>{if(r.observer.flush(),r.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let i of r.state.facet(Jv))if(t=i(r,e),t)break;if(!t&&e.button==0&&(t=QM(r,e)),t){let i=!r.hasFocus;r.inputState.startMouseSelection(new zA(r,e,t,i)),i&&r.observer.ignore(()=>{Vv(r.contentDOM);let s=r.root.activeElement;s&&!s.contains(r.contentDOM)&&s.blur()});let n=r.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else r.inputState.setSelectionOrigin("select.pointer");return!1};function pv(r,e,t,i){if(i==1)return B.cursor(e,t);if(i==2)return DM(r.state,e,t);{let n=r.docView.lineAt(e,t),s=r.state.doc.lineAt(n?n.posAtEnd:e),g=n?n.posAtStart:s.from,o=n?n.posAtEnd:s.to;return oDate.now()-400&&Math.abs(e.clientX-r.clientX)<2&&Math.abs(e.clientY-r.clientY)<2?(vv+1)%3:1}function QM(r,e){let t=r.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),i=vb(e),n=r.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),n=n.map(s.changes))},get(s,g,o){let a=r.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),A,C=pv(r,a.pos,a.assoc,i);if(t.pos!=a.pos&&!g){let I=pv(r,t.pos,t.assoc,i),l=Math.min(I.from,C.from),h=Math.max(I.to,C.to);C=l1&&(A=JM(n,a.pos))?A:o?n.addRange(C):B.create([C])}}}function JM(r,e){for(let t=0;t=e)return B.create(r.ranges.slice(0,t).concat(r.ranges.slice(t+1)),r.mainIndex==t?0:r.mainIndex-(r.mainIndex>t?1:0))}return null}jt.dragstart=(r,e)=>{let{selection:{main:t}}=r.state;if(e.target.draggable){let n=r.docView.tile.nearest(e.target);if(n&&n.isWidget()){let s=n.posAtStart,g=s+n.length;(s>=t.to||g<=t.from)&&(t=B.range(s,g))}}let{inputState:i}=r;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",Io(r.state,aC,r.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};jt.dragend=r=>(r.inputState.draggedContent=null,!1);function yv(r,e,t,i){if(t=Io(r.state,oC,t),!t)return;let n=r.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=r.inputState,g=i&&s&&HM(r,e)?{from:s.from,to:s.to}:null,o={from:n,insert:t},a=r.state.changes(g?[g,o]:o);r.focus(),r.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:g?"move.drop":"input.drop"}),r.inputState.draggedContent=null}jt.drop=(r,e)=>{if(!e.dataTransfer)return!1;if(r.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let i=Array(t.length),n=0,s=()=>{++n==t.length&&yv(r,e,i.filter(g=>g!=null).join(r.state.lineBreak),!1)};for(let g=0;g{/[\x00-\x08\x0e-\x1f]{2}/.test(o.result)||(i[g]=o.result),s()},o.readAsText(t[g])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return yv(r,e,i,!0),!0}return!1};jt.paste=(r,e)=>{if(r.state.readOnly)return!0;r.observer.flush();let t=pb?null:e.clipboardData;return t?(mb(r,t.getData("text/plain")||t.getData("text/uri-list")),!0):(UM(r),!1)};function $M(r,e){let t=r.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),r.focus()},50)}function eN(r){let e=[],t=[],i=!1;for(let n of r.selection.ranges)n.empty||(e.push(r.sliceDoc(n.from,n.to)),t.push(n));if(!e.length){let n=-1;for(let{from:s}of r.selection.ranges){let g=r.doc.lineAt(s);g.number>n&&(e.push(g.text),t.push({from:g.from,to:Math.min(r.doc.length,g.to+1)})),n=g.number}i=!0}return{text:Io(r,aC,e.join(r.lineBreak)),ranges:t,linewise:i}}var qA=null;jt.copy=jt.cut=(r,e)=>{let{text:t,ranges:i,linewise:n}=eN(r.state);if(!t&&!n)return!1;qA=n?t:null,e.type=="cut"&&!r.state.readOnly&&r.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let s=pb?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):($M(r,t),!1)};var bb=bt.define();function yb(r,e){let t=[];for(let i of r.facet(tb)){let n=i(r,e);n&&t.push(n)}return t.length?r.update({effects:t,annotations:bb.of(!0)}):null}function wb(r){setTimeout(()=>{let e=r.hasFocus;if(e!=r.inputState.notifiedFocused){let t=yb(r.state,e);t?r.dispatch(t):r.update([])}},10)}Pt.focus=r=>{r.inputState.lastFocusTime=Date.now(),!r.scrollDOM.scrollTop&&(r.inputState.lastScrollTop||r.inputState.lastScrollLeft)&&(r.scrollDOM.scrollTop=r.inputState.lastScrollTop,r.scrollDOM.scrollLeft=r.inputState.lastScrollLeft),wb(r)};Pt.blur=r=>{r.observer.clearSelectionRange(),wb(r)};Pt.compositionstart=Pt.compositionupdate=r=>{r.observer.editContext||(r.inputState.compositionFirstChange==null&&(r.inputState.compositionFirstChange=!0),r.inputState.composing<0&&(r.inputState.composing=0))};Pt.compositionend=r=>{r.observer.editContext||(r.inputState.composing=-1,r.inputState.compositionEndedAt=Date.now(),r.inputState.compositionPendingKey=!0,r.inputState.compositionPendingChange=r.observer.pendingRecords().length>0,r.inputState.compositionFirstChange=null,z.chrome&&z.android?r.observer.flushSoon():r.inputState.compositionPendingChange?Promise.resolve().then(()=>r.observer.flush()):setTimeout(()=>{r.inputState.composing<0&&r.docView.hasComposition&&r.update([])},50))};Pt.contextmenu=r=>{r.inputState.lastContextMenu=Date.now()};jt.beforeinput=(r,e)=>{var t,i;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(r.inputState.insertingText=e.data,r.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&r.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),g=e.getTargetRanges();if(s&&g.length){let o=g[0],a=r.posAtDOM(o.startContainer,o.startOffset),A=r.posAtDOM(o.endContainer,o.endOffset);return lC(r,{from:a,to:A,insert:r.state.toText(s)},null),!0}}let n;if(z.chrome&&z.android&&(n=ub.find(s=>s.inputType==e.inputType))&&(r.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let s=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var g;(((g=window.visualViewport)===null||g===void 0?void 0:g.height)||0)>s+10&&r.hasFocus&&(r.contentDOM.blur(),r.focus())},100)}return z.ios&&e.inputType=="deleteContentForward"&&r.observer.flushSoon(),z.safari&&e.inputType=="insertText"&&r.inputState.composing>=0&&setTimeout(()=>Pt.compositionend(r,e),20),!1};var wv=new Set;function tN(r){wv.has(r)||(wv.add(r),r.addEventListener("copy",()=>{}),r.addEventListener("cut",()=>{}))}var xv=["pre-wrap","normal","pre-line","break-spaces"],dr=!1;function Sv(){dr=!1}var VA=class{constructor(e){this.lineWrapping=e,this.doc=ie.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return xv.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=t,this.charWidth=i,this.textHeight=n,this.lineLength=s,a){this.heightSamples={};for(let A=0;A0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Gg&&(dr=!0),this.height=e)}replace(e,t,i){return r.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,n){let s=this,g=i.doc;for(let o=n.length-1;o>=0;o--){let{fromA:a,toA:A,fromB:C,toB:I}=n[o],l=s.lineAt(a,fe.ByPosNoHeight,i.setDoc(t),0,0),h=l.to>=A?l:s.lineAt(A,fe.ByPosNoHeight,i,0,0);for(I+=h.to-A,A=h.to;o>0&&l.from<=n[o-1].toA;)a=n[o-1].fromA,C=n[o-1].fromB,o--,as*2){let o=e[t-1];o.break?e.splice(--t,1,o.left,null,o.right):e.splice(--t,1,o.left,o.right),i+=1+o.break,n-=o.size}else if(s>n*2){let o=e[i];o.break?e.splice(i,1,o.left,null,o.right):e.splice(i,1,o.left,o.right),i+=2+o.break,s-=o.size}else break;else if(n=s&&g(this.lineAt(0,fe.ByPos,i,n,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,i=!1,n){return n&&n.from<=t&&n.more&&this.setMeasuredHeight(n),this.outdated=!1,this}toString(){return`block(${this.length})`}},Rt=class r extends to{constructor(e,t,i){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=i}mainBlock(e,t){return new Wt(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,i){let n=i[0];return i.length==1&&(n instanceof r||n instanceof Wi&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof Wi?n=new r(n.length,this.height,this.spaceAbove):n.height=this.height,this.outdated||(n.outdated=!1),n):wt.of(i)}updateHeight(e,t=0,i=!1,n){return n&&n.from<=t&&n.more?this.setMeasuredHeight(n):(i||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},Wi=class r extends wt{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,n=e.doc.lineAt(t+this.length).number,s=n-i+1,g,o=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*s);g=a/s,this.length>s+1&&(o=(this.height-a)/(this.length-s-1))}else g=this.height/s;return{firstLine:i,lastLine:n,perLine:g,perChar:o}}blockAt(e,t,i,n){let{firstLine:s,lastLine:g,perLine:o,perChar:a}=this.heightMetrics(t,n);if(t.lineWrapping){let A=n+(e0){let s=i[i.length-1];s instanceof r?i[i.length-1]=new r(s.length+n):i.push(null,new r(n-1))}if(e>0){let s=i[0];s instanceof r?i[0]=new r(e+s.length):i.unshift(new r(e-1),null)}return wt.of(i)}decomposeLeft(e,t){t.push(new r(e-1),null)}decomposeRight(e,t){t.push(null,new r(this.length-e-1))}updateHeight(e,t=0,i=!1,n){let s=t+this.length;if(n&&n.from<=t+this.length&&n.more){let g=[],o=Math.max(t,n.from),a=-1;for(n.from>t&&g.push(new r(n.from-t-1).updateHeight(e,t));o<=s&&n.more;){let C=e.doc.lineAt(o).length;g.length&&g.push(null);let I=n.heights[n.index++],l=0;I<0&&(l=-I,I=n.heights[n.index++]),a==-1?a=I:Math.abs(I-a)>=Gg&&(a=-2);let h=new Rt(C,I,l);h.outdated=!1,g.push(h),o+=C+1}o<=s&&g.push(null,new r(s-o).updateHeight(e,o));let A=wt.of(g);return(a<0||Math.abs(A.height-this.height)>=Gg||Math.abs(a-this.heightMetrics(e,t).perLine)>=Gg)&&(dr=!0),eo(this,A)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},GA=class extends wt{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,n){let s=i+this.left.height;return eo))return A;let C=t==fe.ByPosNoHeight?fe.ByPosNoHeight:fe.ByPos;return a?A.join(this.right.lineAt(o,C,i,g,o)):this.left.lineAt(o,C,i,n,s).join(A)}forEachLine(e,t,i,n,s,g){let o=n+this.left.height,a=s+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,o,a,g);else{let A=this.lineAt(a,fe.ByPos,i,n,s);e=e&&A.from<=t&&g(A),t>A.to&&this.right.forEachLine(A.to+1,t,i,o,a,g)}}replace(e,t,i){let n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,i));let s=[];e>0&&this.decomposeLeft(e,s);let g=s.length;for(let o of i)s.push(o);if(e>0&&Ev(s,g-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?wt.of(this.break?[e,null,t]:[e,t]):(this.left=eo(this.left,e),this.right=eo(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,n){let{left:s,right:g}=this,o=t+s.length+this.break,a=null;return n&&n.from<=t+s.length&&n.more?a=s=s.updateHeight(e,t,i,n):s.updateHeight(e,t,i),n&&n.from<=o+g.length&&n.more?a=g=g.updateHeight(e,o,i,n):g.updateHeight(e,o,i),a?this.balanced(s,g):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Ev(r,e){let t,i;r[e]==null&&(t=r[e-1])instanceof Wi&&(i=r[e+1])instanceof Wi&&r.splice(e-1,3,new Wi(t.length+1+i.length))}var nN=5,ZA=class r{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof Rt?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Rt(i-this.pos,-1,0)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=nN)&&this.addLineDeco(n,s,g)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new Rt(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let i=new Wi(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Rt)return e;let t=new Rt(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof Rt)&&!this.isCovered?this.nodes.push(new Rt(0,-1,0)):(this.writtenToC.clientHeight||C.scrollWidth>C.clientWidth)&&I.overflow!="visible"){let l=C.getBoundingClientRect();s=Math.max(s,l.left),g=Math.min(g,l.right),o=Math.max(o,l.top),a=Math.min(A==r.parentNode?n.innerHeight:a,l.bottom)}A=I.position=="absolute"||I.position=="fixed"?C.offsetParent:C.parentNode}else if(A.nodeType==11)A=A.host;else break;return{left:s-t.left,right:Math.max(s,g)-t.left,top:o-(t.top+e),bottom:Math.max(o,a)-(t.top+e)}}function gN(r){let e=r.getBoundingClientRect(),t=r.ownerDocument.defaultView||window;return e.left0&&e.top0}function oN(r,e){let t=r.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Is=class{constructor(e,t,i,n){this.from=e,this.to=t,this.size=i,this.displaySize=n}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new VA(t),this.stateDeco=kv(e),this.heightMap=wt.empty().applyChanges(this.stateDeco,ie.empty,this.heightOracle.setDoc(e.doc),[new Zt(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ae.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let n=i?t.head:t.anchor;if(!e.some(({from:s,to:g})=>n>=s&&n<=g)){let{from:s,to:g}=this.lineBlockAt(n);e.push(new gr(s,g))}}return this.viewports=e.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Tv:new YA(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(ss(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=kv(this.state);let n=e.changedRanges,s=Zt.extendWithRanges(n,rN(i,this.stateDeco,e?e.changes:gt.empty(this.state.doc.length))),g=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);Sv(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=g||dr)&&(e.flags|=2),o?(this.scrollAnchorPos=e.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=g);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let A=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(A||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(cM)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),n=this.heightOracle,s=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?pe.RTL:pe.LTR;let g=this.heightOracle.mustRefreshForWrapping(s),o=t.getBoundingClientRect(),a=g||this.mustMeasureContent||this.contentDOMHeight!=o.height;this.contentDOMHeight=o.height,this.mustMeasureContent=!1;let A=0,C=0;if(o.width&&o.height){let{scaleX:m,scaleY:b}=qv(t,o);(m>.005&&Math.abs(this.scaleX-m)>.005||b>.005&&Math.abs(this.scaleY-b)>.005)&&(this.scaleX=m,this.scaleY=b,A|=16,g=a=!0)}let I=(parseInt(i.paddingTop)||0)*this.scaleY,l=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=I||this.paddingBottom!=l)&&(this.paddingTop=I,this.paddingBottom=l,A|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,A|=16);let h=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=h&&(this.scrollAnchorHeight=-1,this.scrollTop=h),this.scrolledToBottom=Wv(e.scrollDOM);let d=(this.printing?oN:sN)(t,this.paddingTop),c=d.top-this.pixelViewport.top,f=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let u=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(u!=this.inView&&(this.inView=u,u&&(a=!0)),!this.inView&&!this.scrollTarget&&!gN(e.dom))return 0;let p=o.width;if((this.contentDOMWidth!=p||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=o.width,this.editorHeight=e.scrollDOM.clientHeight,A|=16),a){let m=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(m)&&(g=!0),g||n.lineWrapping&&Math.abs(p-this.contentDOMWidth)>n.charWidth){let{lineHeight:b,charWidth:w,textHeight:x}=e.docView.measureTextSize();g=b>0&&n.refresh(s,b,w,x,Math.max(5,p/w),m),g&&(e.docView.minWidth=0,A|=16)}c>0&&f>0?C=Math.max(c,f):c<0&&f<0&&(C=Math.min(c,f)),Sv();for(let b of this.viewports){let w=b.from==this.viewport.from?m:e.docView.measureVisibleLineHeights(b);this.heightMap=(g?wt.empty().applyChanges(this.stateDeco,ie.empty,this.heightOracle,[new Zt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,g,new WA(b.from,w))}dr&&(A|=2)}let v=!this.viewportIsAppropriate(this.viewport,C)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return v&&(A&2&&(A|=this.updateScaler()),this.viewport=this.getViewport(C,this.scrollTarget),A|=this.updateForViewport()),(A&2||v)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(g?[]:this.lineGaps,e)),A|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),A}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,s=this.heightOracle,{visibleTop:g,visibleBottom:o}=this,a=new gr(n.lineAt(g-i*1e3,fe.ByHeight,s,0,0).from,n.lineAt(o+(1-i)*1e3,fe.ByHeight,s,0,0).to);if(t){let{head:A}=t.range;if(Aa.to){let C=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=n.lineAt(A,fe.ByPos,s,0,0),l;t.y=="center"?l=(I.top+I.bottom)/2-C/2:t.y=="start"||t.y=="nearest"&&A=o+Math.max(10,Math.min(i,250)))&&n>g-2*1e3&&s>1,g=n<<1;if(this.defaultTextDirection!=pe.LTR&&!i)return[];let o=[],a=(C,I,l,h)=>{if(I-CC&&uu.from>=l.from&&u.to<=l.to&&Math.abs(u.from-C)u.fromp));if(!f){if(Iv.from<=I&&v.to>=I)){let v=t.moveToLineBoundary(B.cursor(I),!1,!0).head;v>C&&(I=v)}let u=this.gapSize(l,C,I,h),p=i||u<2e6?u:2e6;f=new Is(C,I,u,p)}o.push(f)},A=C=>{if(C.length2e6)for(let w of e)w.from>=C.from&&w.fromC.from&&a(C.from,h,C,I),dt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let i=[];Ie.spans(t,this.viewport.from,this.viewport.to,{span(s,g){i.push({from:s,to:g})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||ss(this.heightMap.lineAt(e,fe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||ss(this.heightMap.lineAt(this.scaler.fromDOM(e),fe.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return ss(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},gr=class{constructor(e,t){this.from=e,this.to=t}};function aN(r,e,t){let i=[],n=r,s=0;return Ie.spans(t,r,e,{span(){},point(g,o){g>n&&(i.push({from:n,to:g}),s+=g-n),n=o}},20),n=1)return e[e.length-1].to;let i=Math.floor(r*t);for(let n=0;;n++){let{from:s,to:g}=e[n],o=g-s;if(i<=o)return s+i;i-=o}}function _g(r,e){let t=0;for(let{from:i,to:n}of r.ranges){if(e<=n){t+=e-i;break}t+=n-i}return t/r.total}function AN(r,e){for(let t of r)if(e(t))return t}var Tv={toDOM(r){return r},fromDOM(r){return r},scale:1,eq(r){return r==this}};function kv(r){let e=r.facet(Co).filter(i=>typeof i!="function"),t=r.facet(CC).filter(i=>typeof i!="function");return t.length&&e.push(Ie.join(t)),e}var YA=class r{constructor(e,t,i){let n=0,s=0,g=0;this.viewports=i.map(({from:o,to:a})=>{let A=t.lineAt(o,fe.ByPos,e,0,0).top,C=t.lineAt(a,fe.ByPos,e,0,0).bottom;return n+=C-A,{from:o,to:a,top:A,bottom:C,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(t.height-n);for(let o of this.viewports)o.domTop=g+(o.top-s)*this.scale,g=o.domBottom=o.domTop+(o.bottom-o.top),s=o.bottom}toDOM(e){for(let t=0,i=0,n=0;;t++){let s=tt.from==e.viewports[i].from&&t.to==e.viewports[i].to):!1}};function ss(r,e){if(e.scale==1)return r;let t=e.toDOM(r.top),i=e.toDOM(r.bottom);return new Wt(r.from,r.length,t,i-t,Array.isArray(r._content)?r._content.map(n=>ss(n,e)):r._content)}var Fg=V.define({combine:r=>r.join(" ")}),KA=V.define({combine:r=>r.indexOf(!0)>-1}),UA=Ot.newName(),xb=Ot.newName(),Sb=Ot.newName(),Eb={"&light":"."+xb,"&dark":"."+Sb};function XA(r,e,t){return new Ot(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return r;if(!t||!t[n])throw new RangeError(`Unsupported selector: ${n}`);return t[n]}):r+" "+i}})}var CN=XA("."+UA,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Eb),IN={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},dA=z.ie&&z.ie_version<=11,QA=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new yA,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(z.ie&&z.ie_version<=11||z.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&z.android&&e.constructor.EDIT_CONTEXT!==!1&&!(z.chrome&&z.chrome_version<126)&&(this.editContext=new JA(e),e.state.facet(ki)&&(e.contentDOM.editContext=this.editContext.editContext)),dA&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(ki)?i.root.activeElement!=this.dom:!Vg(this.dom,n))return;let s=n.anchorNode&&i.docView.tile.nearest(n.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(z.ie&&z.ie_version<=11||z.android&&z.chrome)&&!i.state.selection.main.empty&&n.focusNode&&gs(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=cs(e.root);if(!t)return!1;let i=z.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&lN(this.view,t)||t;if(!i||this.selectionRange.eq(i))return!1;let n=Vg(this.dom,i);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Ar(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,n=!1;for(let s of e){let g=this.readMutation(s);g&&(g.typeOver&&(n=!0),t==-1?{from:t,to:i}=g:(t=Math.min(g.from,t),i=Math.max(g.to,i)))}return{from:t,to:i,typeOver:n}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Vg(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new FA(this.view,e,t,i);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,n=db(this.view,t);return this.view.state==i&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let i=Ov(t,e.previousSibling||e.target.previousSibling,-1),n=Ov(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:n?t.posBefore(n):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(ki)!=e.state.facet(ki)&&(e.view.contentDOM.editContext=e.state.facet(ki)?this.editContext.editContext:null))}destroy(){var e,t,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function Ov(r,e,t){for(;e;){let i=Me.get(e);if(i&&i.parent==r)return i;let n=e.parentNode;e=n!=r.dom?n:t>0?e.nextSibling:e.previousSibling}return null}function Rv(r,e){let t=e.startContainer,i=e.startOffset,n=e.endContainer,s=e.endOffset,g=r.docView.domAtPos(r.state.selection.main.anchor,1);return gs(g.node,g.offset,n,s)&&([t,i,n,s]=[n,s,t,i]),{anchorNode:t,anchorOffset:i,focusNode:n,focusOffset:s}}function lN(r,e){if(e.getComposedRanges){let n=e.getComposedRanges(r.root)[0];if(n)return Rv(r,n)}let t=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),t=n.getTargetRanges()[0]}return r.contentDOM.addEventListener("beforeinput",i,!0),r.dom.ownerDocument.execCommand("indent"),r.contentDOM.removeEventListener("beforeinput",i,!0),t?Rv(r,t):null}var JA=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let n=e.state.selection.main,{anchor:s,head:g}=n,o=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:o,drifted:!1});let A=a-o>i.text.length;o==this.from&&sthis.to&&(a=s);let C=cb(e.state.sliceDoc(o,a),i.text,(A?n.from:n.to)-o,A?"end":null);if(!C){let l=B.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));l.main.eq(n)||e.dispatch({selection:l,userEvent:"select"});return}let I={from:C.from+o,to:C.toA+o,insert:ie.of(i.text.slice(C.from,C.toB).split(` +`))};if((z.mac||z.android)&&I.from==g-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(I={from:o,to:a,insert:ie.of([i.text.replace("."," ")])}),this.pendingContextChange=I,!e.state.readOnly){let l=this.to-this.from+(I.to-I.from+I.insert.length);lC(e,I,B.single(this.toEditorPos(i.selectionStart,l),this.toEditorPos(i.selectionEnd,l)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),I.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(t.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let n=[],s=null;for(let g=this.toEditorPos(i.rangeStart),o=this.toEditorPos(i.rangeEnd);g{let n=[];for(let s of i.getTextFormats()){let g=s.underlineStyle,o=s.underlineThickness;if(!/none/i.test(g)&&!/none/i.test(o)){let a=this.toEditorPos(s.rangeStart),A=this.toEditorPos(s.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)t.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=cs(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((s,g,o,a,A)=>{if(i)return;let C=A.length-(g-s);if(n&&g>=n.to)if(n.from==s&&n.to==g&&n.insert.eq(A)){n=this.pendingContextChange=null,t+=C,this.to+=C;return}else n=null,this.revertPending(e.state);if(s+=t,g+=t,g<=this.from)this.from+=C,this.to+=C;else if(sthis.to||this.to-this.from+A.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(g),A.toString()),this.to+=C}t+=C}),n&&!i&&this.revertPending(e.state),!i}update(e){let t=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),n=this.toContextPos(t.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},j=class r{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(n=>n.forEach(s=>i(s,this)))||(n=>this.update(n)),this.dispatch=this.dispatch.bind(this),this._root=e.root||rM(e.parent)||document,this.viewState=new io(e.state||xe.create(e)),e.scrollTo&&e.scrollTo.is(Pg)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(sr).map(n=>new as(n));for(let n of this.plugins)n.update(this);this.observer=new QA(this),this.inputState=new LA(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Jg(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let t=e.length==1&&e[0]instanceof Ze?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,n,s=this.state;for(let l of e){if(l.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=l.state}if(this.destroyed){this.viewState.state=s;return}let g=this.hasFocus,o=0,a=null;e.some(l=>l.annotation(bb))?(this.inputState.notifiedFocused=g,o=1):g!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=g,a=yb(s,g),a||(o=1));let A=this.observer.delayedAndroidKey,C=null;if(A?(this.observer.clearDelayedAndroidKey(),C=this.observer.readChange(),(C&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(C=null)):this.observer.clear(),s.facet(xe.phrases)!=this.state.facet(xe.phrases))return this.setState(s);n=Xg.create(this,s,e),n.flags|=o;let I=this.viewState.scrollTarget;try{this.updateState=2;for(let l of e){if(I&&(I=I.map(l.changes)),l.scrollIntoView){let{main:h}=l.state.selection;I=new os(h.empty?h:B.cursor(h.head,h.head>h.anchor?-1:1))}for(let h of l.effects)h.is(Pg)&&(I=h.value.clip(this.state))}this.viewState.update(n,I),this.bidiCache=no.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),t=this.docView.update(n),this.state.facet(ns)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(l=>l.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(Fg)!=n.state.facet(Fg)&&(this.viewState.mustMeasureContent=!0),(t||i||I||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!n.empty)for(let l of this.state.facet(EA))try{l(n)}catch(h){yt(this.state,h,"update listener")}(a||C)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),C&&!db(this,C)&&A.force&&Ar(this.contentDOM,A.key,A.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new io(e),this.plugins=e.facet(sr).map(i=>new as(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Jg(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(sr),i=e.state.facet(sr);if(t!=i){let n=[];for(let s of i){let g=t.indexOf(s);if(g<0)n.push(new as(s));else{let o=this.plugins[g];o.mustUpdate=e,n.push(o)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=e;for(let n=0;n-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.scrollDOM,n=i.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:g}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(g=-1),this.viewState.scrollAnchorHeight=-1;try{for(let o=0;;o++){if(g<0)if(Wv(i))s=-1,g=this.viewState.heightMap.height;else{let h=this.viewState.scrollAnchorAt(n);s=h.from,g=h.top}this.updateState=1;let a=this.viewState.measure(this);if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(o>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let A=[];a&4||([this.measureRequests,A]=[A,this.measureRequests]);let C=A.map(h=>{try{return h.read(this)}catch(d){return yt(this.state,d),Dv}}),I=Xg.create(this,this.state,[]),l=!1;I.flags|=a,t?t.flags|=a:t=I,this.updateState=2,I.empty||(this.updatePlugins(I),this.inputState.update(I),this.updateAttrs(),l=this.docView.update(I),l&&this.docViewUpdate());for(let h=0;h1||d<-1){n=n+d,i.scrollTop=n/this.scaleY,g=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let o of this.state.facet(EA))o(t)}get themeClasses(){return UA+" "+(this.state.facet(KA)?Sb:xb)+" "+this.state.facet(Fg)}updateAttrs(){let e=Pv(this,sb,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(ki)?"true":"false",class:"cm-content",style:`${z.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Pv(this,AC,t);let i=this.observer.ignore(()=>{let n=Av(this.contentDOM,this.contentAttrs,t),s=Av(this.dom,this.editorAttrs,e);return n||s});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let n of i.effects)if(n.is(r.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(ns);let e=this.state.facet(r.cspNonce);Ot.mount(this.root,this.styleModules.concat(CN).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return hA(this,e,cv(this,e,t,i))}moveByGroup(e,t){return hA(this,e,cv(this,e,t,i=>BM(this,e.head,i)))}visualLineSide(e,t){let i=this.bidiSpans(e),n=this.textDirectionAt(e.from),s=i[t?i.length-1:0];return B.cursor(s.side(t,n)+e.from,s.forward(!t,n)?1:-1)}moveToLineBoundary(e,t,i=!0){return NM(this,e,t,i)}moveVertically(e,t,i){return hA(this,e,_M(this,e,t,i))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let i=BA(this,e,t);return i&&i.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),BA(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(e),s=this.bidiSpans(n),g=s[Gt.find(s,e-n.from,-1,t)];return Ug(i,g.dir==pe.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(ib)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>hN)return Kv(e.length);let t=this.textDirectionAt(e.from),i;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||Yv(s.isolates,i=lv(this,e))))return s.order;i||(i=lv(this,e));let n=lM(e.text,t,i);return this.bidiCache.push(new no(e.from,e.to,t,i,!0,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||z.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Vv(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Pg.of(new os(typeof e=="number"?B.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return Pg.of(new os(B.cursor(i.from),"start","start",i.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return xt.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return xt.define(()=>({}),{eventObservers:e})}static theme(e,t){let i=Ot.newName(),n=[Fg.of(i),ns.of(XA(`.${i}`,e))];return t&&t.dark&&n.push(KA.of(!0)),n}static baseTheme(e){return nr.lowest(ns.of(XA("."+UA,e,Eb)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),n=i&&Me.get(i)||Me.get(e);return((t=n?.root)===null||t===void 0?void 0:t.view)||null}};j.styleModule=ns;j.inputHandler=eb;j.clipboardInputFilter=oC;j.clipboardOutputFilter=aC;j.scrollHandler=nb;j.focusChangeEffect=tb;j.perLineTextDirection=ib;j.exceptionSink=$v;j.updateListener=EA;j.editable=ki;j.mouseSelectionStyle=Jv;j.dragMovesSelection=Qv;j.clickAddsSelectionRange=Xv;j.decorations=Co;j.blockWrappers=gb;j.outerDecorations=CC;j.atomicRanges=fs;j.bidiIsolatedRanges=ob;j.scrollMargins=ab;j.darkTheme=KA;j.cspNonce=V.define({combine:r=>r.length?r[0]:""});j.contentAttributes=AC;j.editorAttributes=sb;j.lineWrapping=j.contentAttributes.of({class:"cm-lineWrapping"});j.announce=ce.define();var hN=4096,Dv={},no=class r{constructor(e,t,i,n,s,g){this.from=e,this.to=t,this.dir=i,this.isolates=n,this.fresh=s,this.order=g}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:pe.LTR;for(let s=Math.max(0,e.length-10);s=0;n--){let s=i[n],g=typeof s=="function"?s(r):s;g&&rC(g,t)}return t}var dN=z.mac?"mac":z.windows?"win":z.linux?"linux":"key";function cN(r,e){let t=r.split(/-(?!$)/),i=t[t.length-1];i=="Space"&&(i=" ");let n,s,g,o;for(let a=0;ai.concat(n),[]))),t}var qi=null,pN=4e3;function mN(r,e=dN){let t=Object.create(null),i=Object.create(null),n=(g,o)=>{let a=i[g];if(a==null)i[g]=o;else if(a!=o)throw new Error("Key binding "+g+" is used both as a regular binding and as a multi-stroke prefix")},s=(g,o,a,A,C)=>{var I,l;let h=t[g]||(t[g]=Object.create(null)),d=o.split(/ (?!$)/).map(u=>cN(u,e));for(let u=1;u{let m=qi={view:v,prefix:p,scope:g};return setTimeout(()=>{qi==m&&(qi=null)},pN),!0}]})}let c=d.join(" ");n(c,!1);let f=h[c]||(h[c]={preventDefault:!1,stopPropagation:!1,run:((l=(I=h._any)===null||I===void 0?void 0:I.run)===null||l===void 0?void 0:l.slice())||[]});a&&f.run.push(a),A&&(f.preventDefault=!0),C&&(f.stopPropagation=!0)};for(let g of r){let o=g.scope?g.scope.split(" "):["editor"];if(g.any)for(let A of o){let C=t[A]||(t[A]=Object.create(null));C._any||(C._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:I}=g;for(let l in C)C[l].run.push(h=>I(h,$A))}let a=g[e]||g.key;if(a)for(let A of o)s(A,a,g.run,g.preventDefault,g.stopPropagation),g.shift&&s(A,"Shift-"+a,g.shift,g.preventDefault,g.stopPropagation)}return t}var $A=null;function vN(r,e,t,i){$A=e;let n=sv(e),s=ir(n,0),g=is(s)==n.length&&n!=" ",o="",a=!1,A=!1,C=!1;qi&&qi.view==t&&qi.scope==i&&(o=qi.prefix+" ",fb.indexOf(e.keyCode)<0&&(A=!0,qi=null));let I=new Set,l=f=>{if(f){for(let u of f.run)if(!I.has(u)&&(I.add(u),u(t)))return f.stopPropagation&&(C=!0),!0;f.preventDefault&&(f.stopPropagation&&(C=!0),A=!0)}return!1},h=r[i],d,c;return h&&(l(h[o+Lg(n,e,!g)])?a=!0:g&&(e.altKey||e.metaKey||e.ctrlKey)&&!(z.windows&&e.ctrlKey&&e.altKey)&&!(z.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(d=Ti[e.keyCode])&&d!=n?(l(h[o+Lg(d,e,!0)])||e.shiftKey&&(c=rr[e.keyCode])!=n&&c!=d&&l(h[o+Lg(c,e,!1)]))&&(a=!0):g&&e.shiftKey&&l(h[o+Lg(n,e,!0)])&&(a=!0),!a&&l(h._any)&&(a=!0)),A&&(a=!0),a&&C&&e.stopPropagation(),$A=null,a}var jZ=/x/.unicode!=null?"gu":"g";var zg="-10000px",ro=class{constructor(e,t,i,n){this.facet=t,this.createTooltipView=i,this.removeTooltipView=n,this.input=e.state.facet(t),this.tooltips=this.input.filter(g=>g);let s=null;this.tooltipViews=this.tooltips.map(g=>s=i(g,s))}update(e,t){var i;let n=e.state.facet(this.facet),s=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let g=[],o=t?[]:null;for(let a=0;at[A]=a),t.length=o.length),this.input=n,this.tooltips=s,this.tooltipViews=g,!0}};function bN(r){let e=r.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var cA=V.define({combine:r=>{var e,t,i;return{position:z.ios?"absolute":((e=r.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=r.find(n=>n.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=r.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||bN}}}),Nv=new WeakMap,Tb=xt.fromClass(class{constructor(r){this.view=r,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=r.state.facet(cA);this.position=e.position,this.parent=e.parent,this.classes=r.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new ro(r,hC,(t,i)=>this.createTooltip(t,i),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),r.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let r of this.manager.tooltipViews)this.intersectionObserver.observe(r.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(r){r.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(r,this.above);e&&this.observeIntersection();let t=e||r.geometryChanged,i=r.state.facet(cA);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(r,e){let t=r.create(this.view),i=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),r.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",t.dom.appendChild(n)}return t.dom.style.position=this.position,t.dom.style.top=zg,t.dom.style.left="0px",this.container.insertBefore(t.dom,i),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var r,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(r=i.destroy)===null||r===void 0||r.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let r=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(z.safari){let g=s.getBoundingClientRect();t=Math.abs(g.top+1e4)>1||Math.abs(g.left)>1}else t=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(r=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:r,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=IC(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,g)=>{let o=this.manager.tooltipViews[g];return o.getCoords?o.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(cA).tooltipSpace(this.view),scaleX:r,scaleY:e,makeAbsolute:t}}writeMeasure(r){var e;if(r.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let o of this.manager.tooltipViews)o.dom.style.position="absolute"}let{visible:t,space:i,scaleX:n,scaleY:s}=r,g=[];for(let o=0;o=Math.min(t.bottom,i.bottom)||I.rightMath.min(t.right,i.right)+.1)){C.style.top=zg;continue}let h=a.arrow?A.dom.querySelector(".cm-tooltip-arrow"):null,d=h?7:0,c=l.right-l.left,f=(e=Nv.get(A))!==null&&e!==void 0?e:l.bottom-l.top,u=A.offset||wN,p=this.view.textDirection==pe.LTR,v=l.width>i.right-i.left?p?i.left:i.right-l.width:p?Math.max(i.left,Math.min(I.left-(h?14:0)+u.x,i.right-c)):Math.min(Math.max(i.left,I.left-c+(h?14:0)-u.x),i.right-c),m=this.above[o];!a.strictSide&&(m?I.top-f-d-u.yi.bottom)&&m==i.bottom-I.bottom>I.top-i.top&&(m=this.above[o]=!m);let b=(m?I.top-i.top:i.bottom-I.bottom)-d;if(bv&&y.topw&&(w=m?y.top-f-2-d:y.bottom+d+2);if(this.position=="absolute"?(C.style.top=(w-r.parent.top)/s+"px",Bv(C,(v-r.parent.left)/n)):(C.style.top=w/s+"px",Bv(C,v/n)),h){let y=I.left+(p?u.x:-u.x)-(v+14-7);h.style.left=y/n+"px"}A.overlap!==!0&&g.push({left:v,top:w,right:x,bottom:w+f}),C.classList.toggle("cm-tooltip-above",m),C.classList.toggle("cm-tooltip-below",!m),A.positioned&&A.positioned(r.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let r of this.manager.tooltipViews)r.dom.style.top=zg}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Bv(r,e){let t=parseInt(r.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(r.style.left=e+"px")}var yN=j.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),wN={x:0,y:0},hC=V.define({enables:[Tb,yN]}),so=V.define({combine:r=>r.reduce((e,t)=>e.concat(t),[])}),go=class r{static create(e){return new r(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new ro(e,so,(t,i)=>this.createHostedView(t,i),t=>t.dom.remove())}createHostedView(e,t){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let i of this.manager.tooltipViews){let n=i[e];if(n!==void 0){if(t===void 0)t=n;else if(t!==n)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},xN=hC.compute([so],r=>{let e=r.facet(so);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var i;return(i=t.end)!==null&&i!==void 0?i:t.pos})),create:go.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),eC=class{constructor(e,t,i,n,s){this.view=e,this.source=t,this.field=i,this.setHover=n,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eo.bottom||t.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(C=>C.from<=n&&C.to>=n),A=a&&a.dir==pe.RTL?-1:1;s=t.x{this.pending==o&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>yt(e.state,a,"hover tooltip"))}else g&&!(Array.isArray(g)&&!g.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(g)?g:[g])})}get tooltip(){let e=this.view.plugin(Tb),t=e?e.manager.tooltips.findIndex(i=>i.create==go.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:s}=this;if(n.length&&s&&!SN(s.dom,e)||this.pending){let{pos:g}=n[0]||this.pending,o=(i=(t=n[0])===null||t===void 0?void 0:t.end)!==null&&i!==void 0?i:g;(g==o?this.view.posAtCoords(this.lastMove)!=g:!EN(this.view,g,o,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=i=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},qg=4;function SN(r,e){let{left:t,right:i,top:n,bottom:s}=r.getBoundingClientRect(),g;if(g=r.querySelector(".cm-tooltip-arrow")){let o=g.getBoundingClientRect();n=Math.min(o.top,n),s=Math.max(o.bottom,s)}return e.clientX>=t-qg&&e.clientX<=i+qg&&e.clientY>=n-qg&&e.clientY<=s+qg}function EN(r,e,t,i,n,s){let g=r.scrollDOM.getBoundingClientRect(),o=r.documentTop+r.documentPadding.top+r.contentHeight;if(g.left>i||g.rightn||Math.min(g.bottom,o)=e&&a<=t}function kb(r,e={}){let t=ce.define(),i=Je.define({create(){return[]},update(n,s){if(n.length&&(e.hideOnChange&&(s.docChanged||s.selection)?n=[]:e.hideOn&&(n=n.filter(g=>!e.hideOn(s,g))),s.docChanged)){let g=[];for(let o of n){let a=s.changes.mapPos(o.pos,-1,Qe.TrackDel);if(a!=null){let A=Object.assign(Object.create(null),o);A.pos=a,A.end!=null&&(A.end=s.changes.mapPos(A.end)),g.push(A)}}n=g}for(let g of s.effects)g.is(t)&&(n=g.value),g.is(TN)&&(n=[]);return n},provide:n=>so.from(n)});return{active:i,extension:[i,xt.define(n=>new eC(n,r,i,t,e.hoverTime||300)),xN]}}var TN=ce.define();var Ht=class extends kt{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Ht.prototype.elementClass="";Ht.prototype.toDOM=void 0;Ht.prototype.mapMode=Qe.TrackBefore;Ht.prototype.startSide=Ht.prototype.endSide=-1;Ht.prototype.point=!0;var Zg=V.define(),kN=V.define();var jg=V.define();var tC=V.define({combine:r=>r.some(e=>e)});function ON(r){let e=[RN];return r&&r.fixed===!1&&e.push(tC.of(!0)),e}var RN=xt.fromClass(class{constructor(r){this.view=r,this.domAfter=null,this.prevViewport=r.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=r.state.facet(jg).map(e=>new oo(r,e)),this.fixed=!r.state.facet(tC);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),r.scrollDOM.insertBefore(this.dom,r.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(r){if(this.updateGutters(r)){let e=this.prevViewport,t=r.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}if(r.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(tC)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=r.view.viewport}syncGutters(r){let e=this.dom.nextSibling;r&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=Ie.iter(this.view.state.facet(Zg),this.view.viewport.from),i=[],n=this.gutters.map(s=>new nC(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(s.type)){let g=!0;for(let o of s.type)if(o.type==dt.Text&&g){iC(t,i,o.from);for(let a of n)a.line(this.view,o,i);g=!1}else if(o.widget)for(let a of n)a.widget(this.view,o)}else if(s.type==dt.Text){iC(t,i,s.from);for(let g of n)g.line(this.view,s,i)}else if(s.widget)for(let g of n)g.widget(this.view,s);for(let s of n)s.finish();r&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(r){let e=r.startState.facet(jg),t=r.state.facet(jg),i=r.docChanged||r.heightChanged||r.viewportChanged||!Ie.eq(r.startState.facet(Zg),r.state.facet(Zg),r.view.viewport.from,r.view.viewport.to);if(e==t)for(let n of this.gutters)n.update(r)&&(i=!0);else{i=!0;let n=[];for(let s of t){let g=e.indexOf(s);g<0?n.push(new oo(this.view,s)):(this.gutters[g].update(r),n.push(this.gutters[g]))}for(let s of this.gutters)s.dom.remove(),n.indexOf(s)<0&&s.destroy();for(let s of n)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=n}return i}destroy(){for(let r of this.gutters)r.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:r=>j.scrollMargins.of(e=>{let t=e.plugin(r);if(!t||t.gutters.length==0||!t.fixed)return null;let i=t.dom.offsetWidth*e.scaleX,n=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==pe.LTR?{left:i,right:n}:{right:i,left:n}})});function _v(r){return Array.isArray(r)?r:[r]}function iC(r,e,t){for(;r.value&&r.from<=t;)r.from==t&&e.push(r.value),r.next()}var nC=class{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Ie.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:n}=this,s=(t.top-this.height)/e.scaleY,g=t.height/e.scaleY;if(this.i==n.elements.length){let o=new ao(e,g,s,i);n.elements.push(o),n.dom.appendChild(o.dom)}else n.elements[this.i].update(e,g,s,i);this.height=t.bottom,this.i++}line(e,t,i){let n=[];iC(this.cursor,n,t.from),i.length&&(n=n.concat(i));let s=this.gutter.config.lineMarker(e,t,n);s&&n.unshift(s);let g=this.gutter;n.length==0&&!g.config.renderEmptyElements||this.addElement(e,t,n)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t),n=i?[i]:null;for(let s of e.state.facet(kN)){let g=s(e,t.widget,t);g&&(n||(n=[])).push(g)}n&&this.addElement(e,t,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},oo=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,n=>{let s=n.target,g;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let a=s.getBoundingClientRect();g=(a.top+a.bottom)/2}else g=n.clientY;let o=e.lineBlockAtHeight(g-e.documentTop);t.domEventHandlers[i](e,o,n)&&n.preventDefault()});this.markers=_v(t.markers(e)),t.initialSpacer&&(this.spacer=new ao(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=_v(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!Ie.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},ao=class{constructor(e,t,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,n)}update(e,t,i,n){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),DN(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,t){let i="cm-gutterElement",n=this.dom.firstChild;for(let s=0,g=0;;){let o=g,a=ss(o,a,A)||g(o,a,A):g}return i}})}}),ls=class extends Ht{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function uA(r,e){return r.state.facet(or).formatNumber(e,r.state)}var NN=jg.compute([or],r=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(PN)},lineMarker(e,t,i){return i.some(n=>n.toDOM)?null:new ls(uA(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,i)=>{for(let n of e.state.facet(MN)){let s=n(e,t,i);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(or)!=e.state.facet(or),initialSpacer(e){return new ls(uA(e,Fv(e.state.doc.lines)))},updateSpacer(e,t){let i=uA(t.view,Fv(t.view.state.doc.lines));return i==e.number?e:new ls(i)},domEventHandlers:r.facet(or).domEventHandlers,side:"before"}));function Ob(r={}){return[or.of(r),ON(),NN]}function Fv(r){let e=9;for(;e{let e=[],t=-1;for(let i of r.selection.ranges){let n=r.doc.lineAt(i.head).from;n>t&&(t=n,e.push(BN.range(n)))}return Ie.of(e)});function Rb(){return _N}var FN=0,ps=class{constructor(e,t){this.from=e,this.to=t}},Q=class{constructor(e={}){this.id=FN++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=St.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}};Q.closedBy=new Q({deserialize:r=>r.split(" ")});Q.openedBy=new Q({deserialize:r=>r.split(" ")});Q.group=new Q({deserialize:r=>r.split(" ")});Q.isolate=new Q({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});Q.contextHash=new Q({perNode:!0});Q.lookAhead=new Q({perNode:!0});Q.mounted=new Q({perNode:!0});var yn=class{constructor(e,t,i,n=!1){this.tree=e,this.overlay=t,this.parser=i,this.bracketed=n}static get(e){return e&&e.props&&e.props[Q.mounted.id]}},LN=Object.create(null),St=class r{constructor(e,t,i,n=0){this.name=e,this.props=t,this.id=i,this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):LN,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new r(e.name||"",t,e.id,i);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(n)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(Q.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let n of i.split(" "))t[n]=e[i];return i=>{for(let n=i.prop(Q.group),s=-1;s<(n?n.length:0);s++){let g=t[s<0?i.name:n[s]];if(g)return g}}}};St.none=new St("",Object.create(null),0,8);var ho=new WeakMap,Db=new WeakMap,Ne;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays",r[r.EnterBracketed=16]="EnterBracketed"})(Ne||(Ne={}));var $e=class r{constructor(e,t,i,n,s){if(this.type=e,this.children=t,this.positions=i,this.length=n,this.props=null,s&&s.length){this.props=Object.create(null);for(let[g,o]of s)this.props[typeof g=="number"?g:g.id]=o}}toString(){let e=yn.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let i of this.children){let n=i.toString();n&&(t&&(t+=","),t+=n)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new bs(this.topNode,e)}cursorAt(e,t=0,i=0){let n=ho.get(this)||this.topNode,s=new bs(n);return s.moveTo(e,t),ho.set(this,s._tree),s}get topNode(){return new ai(this,0,0,null)}resolve(e,t=0){let i=ms(ho.get(this)||this.topNode,e,t,!1);return ho.set(this,i),i}resolveInner(e,t=0){let i=ms(Db.get(this)||this.topNode,e,t,!0);return Db.set(this,i),i}resolveStack(e,t=0){return zN(this,e,t)}iterate(e){let{enter:t,leave:i,from:n=0,to:s=this.length}=e,g=e.mode||0,o=(g&Ne.IncludeAnonymous)>0;for(let a=this.cursor(g|Ne.IncludeAnonymous);;){let A=!1;if(a.from<=s&&a.to>=n&&(!o&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;A=!0}for(;A&&i&&(o||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;A=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:vC(St.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,n)=>new r(this.type,t,i,n,this.propValues),e.makeTree||((t,i,n)=>new r(St.none,t,i,n)))}static build(e){return qN(e)}};$e.empty=new $e(St.none,[],[],0);var dC=class r{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new r(this.buffer,this.index)}},Hi=class r{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return St.none}toString(){let e=[];for(let t=0;t0));a=g[a+3]);return o}slice(e,t,i){let n=this.buffer,s=new Uint16Array(t-e),g=0;for(let o=e,a=0;o=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function ms(r,e,t,i){for(var n;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to0?a.length:-1;e!=C;e+=t){let I=a[e],l=A[e]+o.from;if(!(!(s&Ne.EnterBracketed&&I instanceof $e&&((g=yn.get(I))===null||g===void 0?void 0:g.overlay)===null&&(l>=i||l+I.length<=i))&&!Nb(n,i,l,l+I.length))){if(I instanceof Hi){if(s&Ne.ExcludeBuffers)continue;let h=I.findChild(0,I.buffer.length,t,i-l,n);if(h>-1)return new vs(new uC(o,I,e,l),null,h)}else if(s&Ne.IncludeAnonymous||!I.type.isAnonymous||mC(I)){let h;if(!(s&Ne.IgnoreMounts)&&(h=yn.get(I))&&!h.overlay)return new r(h.tree,l,e,o);let d=new r(I,l,e,o);return s&Ne.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?I.children.length-1:0,t,i,n,s)}}}if(s&Ne.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,i=0){let n;if(!(i&Ne.IgnoreOverlays)&&(n=yn.get(this._tree))&&n.overlay){let s=e-this.from,g=i&Ne.EnterBracketed&&n.bracketed;for(let{from:o,to:a}of n.overlay)if((t>0||g?o<=s:o=s:a>s))return new r(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Pb(r,e,t,i){let n=r.cursor(),s=[];if(!n.firstChild())return s;if(t!=null){for(let g=!1;!g;)if(g=n.type.is(t),!n.nextSibling())return s}for(;;){if(i!=null&&n.type.is(i))return s;if(n.type.is(e)&&s.push(n.node),!n.nextSibling())return i==null?s:[]}}function cC(r,e,t=e.length-1){for(let i=r;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}var uC=class{constructor(e,t,i,n){this.parent=e,this.buffer=t,this.index=i,this.start=n}},vs=class r extends uo{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,i);return s<0?null:new r(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,i=0){if(i&Ne.ExcludeBuffers)return null;let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new r(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new r(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new r(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,n=this.index+4,s=i.buffer[this.index+3];if(s>n){let g=i.buffer[this.index+1];e.push(i.slice(n,s,g)),t.push(0)}return new $e(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Bb(r){if(!r.length)return null;let e=0,t=r[0];for(let s=1;st.from||g.to=e){let o=new ai(g.tree,g.overlay[0].from+s.from,-1,s);(n||(n=[i])).push(ms(o,e,t,!1))}}return n?Bb(n):i}var bs=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~Ne.EnterBracketed,e instanceof ai)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=t||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof ai?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:n}=this.buffer,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.buffer.start,i);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&Ne.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Ne.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Ne.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(t.findChild(n,this.index,-1,0,4))}else{let n=t.buffer[this.index+3];if(n<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let s=t+e,g=e<0?-1:i._tree.children.length;s!=g;s+=e){let o=i._tree.children[s];if(this.mode&Ne.IncludeAnonymous||o instanceof Hi||!o.type.isAnonymous||mC(o))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let g=e;g;g=g._parent)if(g.index==n){if(n==this.index)return g;t=g,i=s+1;break e}n=this.stack[--s]}for(let n=i;n=0;s--){if(s<0)return cC(this._tree,e,n);let g=i[t.buffer[this.stack[s]]];if(!g.isAnonymous){if(e[n]&&e[n]!=g.name)return!1;n--}}return!0}};function mC(r){return r.children.some(e=>e instanceof Hi||!e.type.isAnonymous||mC(e))}function qN(r){var e;let{buffer:t,nodeSet:i,maxBufferLength:n=1024,reused:s=[],minRepeatType:g=i.types.length}=r,o=Array.isArray(t)?new dC(t,t.length):t,a=i.types,A=0,C=0;function I(b,w,x,y,S,k){let{id:R,start:E,end:O,size:N}=o,F=C,U=A;if(N<0)if(o.next(),N==-1){let X=s[R];x.push(X),y.push(E-b);return}else if(N==-3){A=R;return}else if(N==-4){C=R;return}else throw new RangeError(`Unrecognized record size: ${N}`);let K=a[R],ae,re,Pe=E-b;if(O-E<=n&&(re=f(o.pos-w,S))){let X=new Uint16Array(re.size-re.skip),he=o.pos-re.size,ke=X.length;for(;o.pos>he;)ke=u(re.start,X,ke);ae=new Hi(X,O-re.start,i),Pe=re.start-b}else{let X=o.pos-N;o.next();let he=[],ke=[],Ge=R>=g?R:-1,Tt=0,Xe=O;for(;o.pos>X;)Ge>=0&&o.id==Ge&&o.size>=0?(o.end<=Xe-n&&(d(he,ke,E,Tt,o.end,Xe,Ge,F,U),Tt=he.length,Xe=o.end),o.next()):k>2500?l(E,X,he,ke):I(E,X,he,ke,Ge,k+1);if(Ge>=0&&Tt>0&&Tt-1&&Tt>0){let si=h(K,U);ae=vC(K,he,ke,0,he.length,0,O-E,si,si)}else ae=c(K,he,ke,O-E,F-O,U)}x.push(ae),y.push(Pe)}function l(b,w,x,y){let S=[],k=0,R=-1;for(;o.pos>w;){let{id:E,start:O,end:N,size:F}=o;if(F>4)o.next();else{if(R>-1&&O=0;N-=3)E[F++]=S[N],E[F++]=S[N+1]-O,E[F++]=S[N+2]-O,E[F++]=F;x.push(new Hi(E,S[2]-O,i)),y.push(O-b)}}function h(b,w){return(x,y,S)=>{let k=0,R=x.length-1,E,O;if(R>=0&&(E=x[R])instanceof $e){if(!R&&E.type==b&&E.length==S)return E;(O=E.prop(Q.lookAhead))&&(k=y[R]+E.length+O)}return c(b,x,y,S,k,w)}}function d(b,w,x,y,S,k,R,E,O){let N=[],F=[];for(;b.length>y;)N.push(b.pop()),F.push(w.pop()+x-S);b.push(c(i.types[R],N,F,k-S,E-k,O)),w.push(S-x)}function c(b,w,x,y,S,k,R){if(k){let E=[Q.contextHash,k];R=R?[E].concat(R):[E]}if(S>25){let E=[Q.lookAhead,S];R=R?[E].concat(R):[E]}return new $e(b,w,x,y,R)}function f(b,w){let x=o.fork(),y=0,S=0,k=0,R=x.end-n,E={size:0,start:0,skip:0};e:for(let O=x.pos-b;x.pos>O;){let N=x.size;if(x.id==w&&N>=0){E.size=y,E.start=S,E.skip=k,k+=4,y+=4,x.next();continue}let F=x.pos-N;if(N<0||F=g?4:0,K=x.start;for(x.next();x.pos>F;){if(x.size<0)if(x.size==-3||x.size==-4)U+=4;else break e;else x.id>=g&&(U+=4);x.next()}S=K,y+=N,k+=U}return(w<0||y==b)&&(E.size=y,E.start=S,E.skip=k),E.size>4?E:void 0}function u(b,w,x){let{id:y,start:S,end:k,size:R}=o;if(o.next(),R>=0&&y4){let O=o.pos-(R-4);for(;o.pos>O;)x=u(b,w,x)}w[--x]=E,w[--x]=k-b,w[--x]=S-b,w[--x]=y}else R==-3?A=y:R==-4&&(C=y);return x}let p=[],v=[];for(;o.pos>0;)I(r.start||0,r.bufferStart||0,p,v,-1,0);let m=(e=r.length)!==null&&e!==void 0?e:p.length?v[0]+p[0].length:0;return new $e(a[r.topID],p.reverse(),v.reverse(),m)}var Mb=new WeakMap;function co(r,e){if(!r.isAnonymous||e instanceof Hi||e.type!=r)return 1;let t=Mb.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=r||!(i instanceof $e)){t=1;break}t+=co(r,i)}Mb.set(e,t)}return t}function vC(r,e,t,i,n,s,g,o,a){let A=0;for(let d=i;d=C)break;w+=x}if(v==m+1){if(w>C){let x=d[m];h(x.children,x.positions,0,x.children.length,c[m]+p);continue}I.push(d[m])}else{let x=c[v-1]+d[v-1].length-b;I.push(vC(r,d,c,m,v,b,x,null,a))}l.push(b+p-s)}}return h(e,t,i,n,0),(o||a)(I,l,g)}var wn=class r{constructor(e,t,i,n,s=!1,g=!1){this.from=e,this.to=t,this.tree=i,this.offset=n,this.open=(s?1:0)|(g?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let n=[new r(0,e.length,e,0,!1,i)];for(let s of t)s.to>e.length&&n.push(s);return n}static applyChanges(e,t,i=128){if(!t.length)return e;let n=[],s=1,g=e.length?e[0]:null;for(let o=0,a=0,A=0;;o++){let C=o=i)for(;g&&g.from=l.from||I<=l.to||A){let h=Math.max(l.from,a)-A,d=Math.min(l.to,I)-A;l=h>=d?null:new r(h,d,l.tree,l.offset+A,o>0,!!C)}if(l&&n.push(l),g.to>I)break;g=snew ps(n.from,n.to)):[new ps(0,0)]:[new ps(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let n=this.startParse(e,t,i);for(;;){let s=n.advance();if(s)return s}}},pC=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var QZ=new Q({perNode:!0});var VN=0,Yt=class r{constructor(e,t,i,n){this.name=e,this.set=t,this.base=i,this.modified=n,this.id=VN++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let i=typeof e=="string"?e:"?";if(e instanceof r&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let n=new r(i,[],null,[]);if(n.set.push(n),t)for(let s of t.set)n.set.push(s);return n}static defineModifier(e){let t=new bo(e);return i=>i.modified.indexOf(t)>-1?i:bo.get(i.base||i,i.modified.concat(t).sort((n,s)=>n.id-s.id))}},WN=0,bo=class r{constructor(e){this.name=e,this.instances=[],this.id=WN++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(o=>o.base==e&&GN(t,o.modified));if(i)return i;let n=[],s=new Yt(e.name,n,e,t);for(let o of t)o.instances.push(s);let g=ZN(t);for(let o of e.set)if(!o.modified.length)for(let a of g)n.push(r.get(o,a));return s}};function GN(r,e){return r.length==e.length&&r.every((t,i)=>t==e[i])}function ZN(r){let e=[[]];for(let t=0;ti.length-t.length)}function Lb(r){let e=Object.create(null);for(let t in r){let i=r[t];Array.isArray(i)||(i=[i]);for(let n of t.split(" "))if(n){let s=[],g=2,o=n;for(let I=0;;){if(o=="..."&&I>0&&I+3==n.length){g=1;break}let l=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!l)throw new RangeError("Invalid path: "+n);if(s.push(l[0]=="*"?"":l[0][0]=='"'?JSON.parse(l[0]):l[0]),I+=l[0].length,I==n.length)break;let h=n[I++];if(I==n.length&&h=="!"){g=0;break}if(h!="/")throw new RangeError("Invalid path: "+n);o=n.slice(I)}let a=s.length-1,A=s[a];if(!A)throw new RangeError("Invalid path: "+n);let C=new Sn(i,g,a>0?s.slice(0,a):null);e[A]=C.sort(e[A])}}return zb.add(e)}var zb=new Q({combine(r,e){let t,i,n;for(;r||e;){if(!r||e&&r.depth>=e.depth?(n=e,e=e.next):(n=r,r=r.next),t&&t.mode==n.mode&&!n.context&&!t.context)continue;let s=new Sn(n.tags,n.mode,n.context);t?t.next=s:i=s,t=s}return i}}),Sn=class{constructor(e,t,i,n){this.tags=e,this.mode=t,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let g=n;for(let o of s)for(let a of o.set){let A=t[a.id];if(A){g=g?g+" "+A:A;break}}return g},scope:i}}function jN(r,e){let t=null;for(let i of r){let n=i.style(e);n&&(t=t?t+" "+n:n)}return t}function qb(r,e,t,i=0,n=r.length){let s=new yC(i,Array.isArray(e)?e:[e],t);s.highlightRange(r.cursor(),i,n,"",s.highlighters),s.flush(n)}var yC=class{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,n,s){let{type:g,from:o,to:a}=e;if(o>=i||a<=t)return;g.isTop&&(s=this.highlighters.filter(h=>!h.scope||h.scope(g)));let A=n,C=HN(e)||Sn.empty,I=jN(s,C.tags);if(I&&(A&&(A+=" "),A+=I,C.mode==1&&(n+=(n?" ":"")+I)),this.startSpan(Math.max(t,o),A),C.opaque)return;let l=e.tree&&e.tree.prop(Q.mounted);if(l&&l.overlay){let h=e.node.enter(l.overlay[0].from+o,1),d=this.highlighters.filter(f=>!f.scope||f.scope(l.tree.type)),c=e.firstChild();for(let f=0,u=o;;f++){let p=f=v||!e.nextSibling())););if(!p||v>i)break;u=p.to+o,u>t&&(this.highlightRange(h.cursor(),Math.max(t,p.from+o),Math.min(i,u),"",d),this.startSpan(Math.min(i,u),A))}c&&e.parent()}else if(e.firstChild()){l&&(n="");do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,n,s),this.startSpan(Math.min(i,e.to),A)}while(e.nextSibling());e.parent()}}};function HN(r){let e=r.type.prop(zb);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}var L=Yt.define,po=L(),Yi=L(),_b=L(Yi),Fb=L(Yi),Ki=L(),mo=L(Ki),bC=L(Ki),Ii=L(),xn=L(Ii),Ai=L(),Ci=L(),wC=L(),ys=L(wC),vo=L(),D={comment:po,lineComment:L(po),blockComment:L(po),docComment:L(po),name:Yi,variableName:L(Yi),typeName:_b,tagName:L(_b),propertyName:Fb,attributeName:L(Fb),className:L(Yi),labelName:L(Yi),namespace:L(Yi),macroName:L(Yi),literal:Ki,string:mo,docString:L(mo),character:L(mo),attributeValue:L(mo),number:bC,integer:L(bC),float:L(bC),bool:L(Ki),regexp:L(Ki),escape:L(Ki),color:L(Ki),url:L(Ki),keyword:Ai,self:L(Ai),null:L(Ai),atom:L(Ai),unit:L(Ai),modifier:L(Ai),operatorKeyword:L(Ai),controlKeyword:L(Ai),definitionKeyword:L(Ai),moduleKeyword:L(Ai),operator:Ci,derefOperator:L(Ci),arithmeticOperator:L(Ci),logicOperator:L(Ci),bitwiseOperator:L(Ci),compareOperator:L(Ci),updateOperator:L(Ci),definitionOperator:L(Ci),typeOperator:L(Ci),controlOperator:L(Ci),punctuation:wC,separator:L(wC),bracket:ys,angleBracket:L(ys),squareBracket:L(ys),paren:L(ys),brace:L(ys),content:Ii,heading:xn,heading1:L(xn),heading2:L(xn),heading3:L(xn),heading4:L(xn),heading5:L(xn),heading6:L(xn),contentSeparator:L(Ii),list:L(Ii),quote:L(Ii),emphasis:L(Ii),strong:L(Ii),link:L(Ii),monospace:L(Ii),strikethrough:L(Ii),inserted:L(),deleted:L(),changed:L(),invalid:L(),meta:vo,documentMeta:L(vo),annotation:L(vo),processingInstruction:L(vo),definition:Yt.defineModifier("definition"),constant:Yt.defineModifier("constant"),function:Yt.defineModifier("function"),standard:Yt.defineModifier("standard"),local:Yt.defineModifier("local"),special:Yt.defineModifier("special")};for(let r in D){let e=D[r];e instanceof Yt&&(e.name=r)}var ej=xC([{tag:D.link,class:"tok-link"},{tag:D.heading,class:"tok-heading"},{tag:D.emphasis,class:"tok-emphasis"},{tag:D.strong,class:"tok-strong"},{tag:D.keyword,class:"tok-keyword"},{tag:D.atom,class:"tok-atom"},{tag:D.bool,class:"tok-bool"},{tag:D.url,class:"tok-url"},{tag:D.labelName,class:"tok-labelName"},{tag:D.inserted,class:"tok-inserted"},{tag:D.deleted,class:"tok-deleted"},{tag:D.literal,class:"tok-literal"},{tag:D.string,class:"tok-string"},{tag:D.number,class:"tok-number"},{tag:[D.regexp,D.escape,D.special(D.string)],class:"tok-string2"},{tag:D.variableName,class:"tok-variableName"},{tag:D.local(D.variableName),class:"tok-variableName tok-local"},{tag:D.definition(D.variableName),class:"tok-variableName tok-definition"},{tag:D.special(D.variableName),class:"tok-variableName2"},{tag:D.definition(D.propertyName),class:"tok-propertyName tok-definition"},{tag:D.typeName,class:"tok-typeName"},{tag:D.namespace,class:"tok-namespace"},{tag:D.className,class:"tok-className"},{tag:D.macroName,class:"tok-macroName"},{tag:D.propertyName,class:"tok-propertyName"},{tag:D.operator,class:"tok-operator"},{tag:D.comment,class:"tok-comment"},{tag:D.meta,class:"tok-meta"},{tag:D.invalid,class:"tok-invalid"},{tag:D.punctuation,class:"tok-punctuation"}]);var SC,xs=new Q;var YN=new Q,Mt=class{constructor(e,t,i=[],n=""){this.data=e,this.name=n,xe.prototype.hasOwnProperty("tree")||Object.defineProperty(xe.prototype,"tree",{get(){return ct(this)}}),this.parser=t,this.extension=[cr.of(this),xe.languageData.of((s,g,o)=>{let a=Vb(s,g,o),A=a.type.prop(xs);if(!A)return[];let C=s.facet(A),I=a.type.prop(YN);if(I){let l=a.resolve(g-a.from,o);for(let h of I)if(h.test(l,s)){let d=s.facet(h.facet);return h.type=="replace"?d:d.concat(C)}}return C})].concat(i)}isActiveAt(e,t,i=-1){return Vb(e,t,i).type.prop(xs)==this.data}findRegions(e){let t=e.facet(cr);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],n=(s,g)=>{if(s.prop(xs)==this.data){i.push({from:g,to:g+s.length});return}let o=s.prop(Q.mounted);if(o){if(o.tree.prop(xs)==this.data){if(o.overlay)for(let a of o.overlay)i.push({from:a.from+g,to:a.to+g});else i.push({from:g,to:g+s.length});return}else if(o.overlay){let a=i.length;if(n(o.tree,o.overlay[0].from+g),i.length>a)return}}for(let a=0;a=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}},ws=null,RC=class r{constructor(e,t,i=[],n,s,g,o,a){this.parser=e,this.state=t,this.fragments=i,this.tree=n,this.treeLen=s,this.viewport=g,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new r(e,t,[],$e.empty,0,i,[],null)}startParse(){return this.parser.startParse(new OC(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=$e.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(wn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=ws;ws=this;try{return e()}finally{ws=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Wb(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:n,treeLen:s,viewport:g,skipped:o}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((A,C,I,l)=>a.push({fromA:A,toA:C,fromB:I,toB:l})),i=wn.applyChanges(i,a),n=$e.empty,s=0,g={from:e.mapPos(g.from,-1),to:e.mapPos(g.to,1)},this.skipped.length){o=[];for(let A of this.skipped){let C=e.mapPos(A.from,1),I=e.mapPos(A.to,-1);Ce.from&&(this.fragments=Wb(this.fragments,n,s),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends fo{createParse(t,i,n){let s=n[0].from,g=n[n.length-1].to;return{parsedPos:s,advance(){let a=ws;if(a){for(let A of n)a.tempSkipped.push(A);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=g,new $e(St.none,[],[],g-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return ws}};function Wb(r,e,t){return wn.applyChanges(r,[{fromA:e,toA:t,fromB:e,toB:t}])}var Ss=class r{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new r(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=RC.create(e.facet(cr).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new r(i)}};Mt.state=Je.define({create:Ss.init,update(r,e){for(let t of e.effects)if(t.is(Mt.setState))return t.value;return e.startState.facet(cr)!=e.state.facet(cr)?Ss.init(e.state):r.apply(e)}});var Hb=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Hb=r=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(r,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var EC=typeof navigator<"u"&&(!((SC=navigator.scheduling)===null||SC===void 0)&&SC.isInputPending)?()=>navigator.scheduling.isInputPending():null,KN=xt.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Mt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Mt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Hb(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndn+1e3,a=s.context.work(()=>EC&&EC()||Date.now()>g,n+(o?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Mt.setState.of(new Ss(s.context))})),this.chunkBudget>0&&!(a&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>yt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),cr=V.define({combine(r){return r.length?r[0]:null},enables:r=>[Mt.state,KN,j.contentAttributes.compute([r],e=>{let t=e.facet(r);return t&&t.name?{"data-language":t.name}:{}})]});var UN=V.define(),Es=V.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function Ts(r){let e=r.facet(Es);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function fr(r,e){let t="",i=r.tabSize,n=r.facet(Es)[0];if(n==" "){for(;e>=i;)t+=" ",e-=i;n=" "}for(let s=0;s=e?QN(r,t,e):null}var En=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=Ts(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:s}=this.options;return n!=null&&n>=i.from&&n<=i.to?s&&n==e?{text:"",from:e}:(t<0?n-1&&(s+=g-this.countColumn(i,i.search(/\S|$/))),s}countColumn(e,t=e.length){return un(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:n}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let g=s(n);if(g>-1)return g}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},XN=new Q;function QN(r,e,t){let i=e.resolveStack(t),n=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(n!=i.node){let s=[];for(let g=n;g&&!(g.fromi.node.to||g.from==i.node.from&&g.type==i.node.type);g=g.parent)s.push(g);for(let g=s.length-1;g>=0;g--)i={node:s[g],next:i}}return Yb(i,r,t)}function Yb(r,e,t){for(let i=r;i;i=i.next){let n=$N(i.node);if(n)return n(DC.create(e,t,i))}return 0}function JN(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function $N(r){let e=r.type.prop(XN);if(e)return e;let t=r.firstChild,i;if(t&&(i=t.type.prop(Q.closedBy))){let n=r.lastChild,s=n&&i.indexOf(n.name)>-1;return g=>nB(g,!0,1,void 0,s&&!JN(g)?n.from:void 0)}return r.parent==null?eB:null}function eB(){return 0}var DC=class r extends En{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new r(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(tB(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return Yb(this.context.next,this.base,this.pos)}};function tB(r,e){for(let t=e;t;t=t.parent)if(r==t)return!0;return!1}function iB(r){let e=r.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let n=r.options.simulateBreak,s=r.state.doc.lineAt(t.from),g=n==null||n<=s.from?s.to:Math.min(s.to,n);for(let o=t.to;;){let a=e.childAfter(o);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=g)return null;let A=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+A}}o=a.to}}function nB(r,e,t,i,n){let s=r.textAfter,g=s.match(/^\s*/)[0].length,o=i&&s.slice(g,g+i.length)==i||n==r.pos+g,a=e?iB(r):null;return a?o?r.column(a.from):r.column(a.to):r.baseIndent+(o?0:r.unit*t)}var rB=200;function Kb(){return xe.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let e=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!e.length)return r;let t=r.newDoc,{head:i}=r.newSelection.main,n=t.lineAt(i);if(i>n.from+rB)return r;let s=t.sliceString(n.from,i);if(!e.some(A=>A.test(s)))return r;let{state:g}=r,o=-1,a=[];for(let{head:A}of g.selection.ranges){let C=g.doc.lineAt(A);if(C.from==o)continue;o=C.from;let I=yo(g,C.from);if(I==null)continue;let l=/^\s*/.exec(C.text)[0],h=fr(g,I);l!=h&&a.push({from:C.from,to:C.from+l.length,insert:h})}return a.length?[r,{changes:a,sequential:!0}]:r})}var ur=class r{constructor(e,t){this.specs=e;let i;function n(o){let a=Ot.newName();return(i||(i=Object.create(null)))["."+a]=o,a}let s=typeof t.all=="string"?t.all:t.all?n(t.all):void 0,g=t.scope;this.scope=g instanceof Mt?o=>o.prop(xs)==g.data:g?o=>o==g:void 0,this.style=xC(e.map(o=>({tag:o.tag,class:o.class||n(Object.assign({},o,{tag:null}))})),{all:s}).style,this.module=i?new Ot(i):null,this.themeType=t.themeType}static define(e,t){return new r(e,t||{})}},PC=V.define(),Ub=V.define({combine(r){return r.length?[r[0]]:null}});function TC(r){let e=r.facet(PC);return e.length?e:r.facet(Ub)}function Xb(r,e){let t=[sB],i;return r instanceof ur&&(r.module&&t.push(j.styleModule.of(r.module)),i=r.themeType),e?.fallback?t.push(Ub.of(r)):i?t.push(PC.computeN([j.darkTheme],n=>n.facet(j.darkTheme)==(i=="dark")?[r]:[])):t.push(PC.of(r)),t}var MC=class{constructor(e){this.markCache=Object.create(null),this.tree=ct(e.state),this.decorations=this.buildDeco(e,TC(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ct(e.state),i=TC(e.state),n=i!=TC(e.startState),{viewport:s}=e.view,g=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=g):(t!=this.tree||e.viewportChanged||n)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return Ae.none;let i=new dn;for(let{from:n,to:s}of e.visibleRanges)qb(this.tree,t,(g,o,a)=>{i.add(g,o,this.markCache[a]||(this.markCache[a]=Ae.mark({class:a})))},n,s);return i.finish()}},sB=nr.high(xt.fromClass(MC,{decorations:r=>r.decorations})),Cj=ur.define([{tag:D.meta,color:"#404740"},{tag:D.link,textDecoration:"underline"},{tag:D.heading,textDecoration:"underline",fontWeight:"bold"},{tag:D.emphasis,fontStyle:"italic"},{tag:D.strong,fontWeight:"bold"},{tag:D.strikethrough,textDecoration:"line-through"},{tag:D.keyword,color:"#708"},{tag:[D.atom,D.bool,D.url,D.contentSeparator,D.labelName],color:"#219"},{tag:[D.literal,D.inserted],color:"#164"},{tag:[D.string,D.deleted],color:"#a11"},{tag:[D.regexp,D.escape,D.special(D.string)],color:"#e40"},{tag:D.definition(D.variableName),color:"#00f"},{tag:D.local(D.variableName),color:"#30a"},{tag:[D.typeName,D.namespace],color:"#085"},{tag:D.className,color:"#167"},{tag:[D.special(D.variableName),D.macroName],color:"#256"},{tag:D.definition(D.propertyName),color:"#00c"},{tag:D.comment,color:"#940"},{tag:D.invalid,color:"#f00"}]),gB=j.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Qb=1e4,Jb="()[]{}",$b=V.define({combine(r){return cn(r,{afterCursor:!0,brackets:Jb,maxScanDistance:Qb,renderMatch:AB})}}),oB=Ae.mark({class:"cm-matchingBracket"}),aB=Ae.mark({class:"cm-nonmatchingBracket"});function AB(r){let e=[],t=r.matched?oB:aB;return e.push(t.range(r.start.from,r.start.to)),r.end&&e.push(t.range(r.end.from,r.end.to)),e}var CB=Je.define({create(){return Ae.none},update(r,e){if(!e.docChanged&&!e.selection)return r;let t=[],i=e.state.facet($b);for(let n of e.state.selection.ranges){if(!n.empty)continue;let s=Kt(e.state,n.head,-1,i)||n.head>0&&Kt(e.state,n.head-1,1,i)||i.afterCursor&&(Kt(e.state,n.head,1,i)||n.headj.decorations.from(r)}),IB=[CB,gB];function ey(r={}){return[$b.of(r),IB]}var lB=new Q;function NC(r,e,t){let i=r.prop(e<0?Q.openedBy:Q.closedBy);if(i)return i;if(r.name.length==1){let n=t.indexOf(r.name);if(n>-1&&n%2==(e<0?1:0))return[t[n+e]]}return null}function BC(r){let e=r.type.prop(lB);return e?e(r.node):r}function Kt(r,e,t,i={}){let n=i.maxScanDistance||Qb,s=i.brackets||Jb,g=ct(r),o=g.resolveInner(e,t);for(let a=o;a;a=a.parent){let A=NC(a.type,t,s);if(A&&a.from0?e>=C.from&&eC.from&&e<=C.to))return hB(r,e,t,a,C,A,s)}}return dB(r,e,t,g,o.type,n,s)}function hB(r,e,t,i,n,s,g){let o=i.parent,a={from:n.from,to:n.to},A=0,C=o?.cursor();if(C&&(t<0?C.childBefore(i.from):C.childAfter(i.to)))do if(t<0?C.to<=i.from:C.from>=i.to){if(A==0&&s.indexOf(C.type.name)>-1&&C.from0)return null;let A={from:t<0?e-1:e,to:t>0?e+1:e},C=r.doc.iterRange(e,t>0?r.doc.length:0),I=0;for(let l=0;!C.next().done&&l<=s;){let h=C.value;t<0&&(l+=h.length);let d=e+l*t;for(let c=t>0?0:h.length-1,f=t>0?h.length:-1;c!=f;c+=t){let u=g.indexOf(h[c]);if(!(u<0||i.resolveInner(d+c,1).type!=n))if(u%2==0==t>0)I++;else{if(I==1)return{start:A,end:{from:d+c,to:d+c+1},matched:u>>1==a>>1};I--}}t>0&&(l+=h.length)}return C.done?{start:A,matched:!1}:null}var cB=Object.create(null),Gb=[St.none];var Zb=[],jb=Object.create(null),uB=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])uB[r]=fB(cB,e);function kC(r,e){Zb.indexOf(r)>-1||(Zb.push(r),console.warn(e))}function fB(r,e){let t=[];for(let o of e.split(" ")){let a=[];for(let A of o.split(".")){let C=r[A]||D[A];C?typeof C=="function"?a.length?a=a.map(C):kC(A,`Modifier ${A} used at start of tag`):a.length?kC(A,`Tag ${A} used as modifier`):a=Array.isArray(C)?C:[C]:kC(A,`Unknown highlighting tag ${A}`)}for(let A of a)t.push(A)}if(!t.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+t.map(o=>o.id),s=jb[n];if(s)return s.id;let g=jb[n]=St.define({id:Gb.length,name:i,props:[Lb({[i]:t})]});return Gb.push(g),g.id}var Ij={rtl:Ae.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:pe.RTL}),ltr:Ae.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:pe.LTR}),auto:Ae.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var pB=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),i=WC(r.state,t.from);return i.line?mB(r):i.block?bB(r):!1};function VC(r,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let n=r(e,t);return n?(i(t.update(n)),!0):!1}}var mB=VC(xB,0);var vB=VC(Ay,0);var bB=VC((r,e)=>Ay(r,e,wB(e)),0);function WC(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var ks=50;function yB(r,{open:e,close:t},i,n){let s=r.sliceDoc(i-ks,i),g=r.sliceDoc(n,n+ks),o=/\s*$/.exec(s)[0].length,a=/^\s*/.exec(g)[0].length,A=s.length-o;if(s.slice(A-e.length,A)==e&&g.slice(a,a+t.length)==t)return{open:{pos:i-o,margin:o&&1},close:{pos:n+a,margin:a&&1}};let C,I;n-i<=2*ks?C=I=r.sliceDoc(i,n):(C=r.sliceDoc(i,i+ks),I=r.sliceDoc(n-ks,n));let l=/^\s*/.exec(C)[0].length,h=/\s*$/.exec(I)[0].length,d=I.length-h-t.length;return C.slice(l,l+e.length)==e&&I.slice(d,d+t.length)==t?{open:{pos:i+l+e.length,margin:/\s/.test(C.charAt(l+e.length))?1:0},close:{pos:n-h-t.length,margin:/\s/.test(I.charAt(d-1))?1:0}}:null}function wB(r){let e=[];for(let t of r.selection.ranges){let i=r.doc.lineAt(t.from),n=t.to<=i.to?i:r.doc.lineAt(t.to);n.from>i.from&&n.from==t.to&&(n=t.to==i.to+1?i:r.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>i.from?e[s].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function Ay(r,e,t=e.selection.ranges){let i=t.map(s=>WC(e,s.from).block);if(!i.every(s=>s))return null;let n=t.map((s,g)=>yB(e,i[g],s.from,s.to));if(r!=2&&!n.every(s=>s))return{changes:e.changes(t.map((s,g)=>n[g]?[]:[{from:s.from,insert:i[g].open+" "},{from:s.to,insert:" "+i[g].close}]))};if(r!=1&&n.some(s=>s)){let s=[];for(let g=0,o;gn&&(s==g||g>I.from)){n=I.from;let l=/^\s*/.exec(I.text)[0].length,h=l==I.length,d=I.text.slice(l,l+A.length)==A?l:-1;ls.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:o,token:a,indent:A,empty:C,single:I}of i)(I||!C)&&s.push({from:o.from+A,insert:a+" "});let g=e.changes(s);return{changes:g,selection:e.selection.map(g,1)}}else if(r!=1&&i.some(s=>s.comment>=0)){let s=[];for(let{line:g,comment:o,token:a}of i)if(o>=0){let A=g.from+o,C=A+a.length;g.text[C-g.from]==" "&&C++,s.push({from:A,to:C})}return{changes:s}}return null}var FC=bt.define(),SB=bt.define(),EB=V.define(),Cy=V.define({combine(r){return cn(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,n)=>e(i,n)||t(i,n)})}}),Iy=Je.define({create(){return Tn.empty},update(r,e){let t=e.state.facet(Cy),i=e.annotation(FC);if(i){let a=Ut.fromTransaction(e,i.selection),A=i.side,C=A==0?r.undone:r.done;return a?C=xo(C,C.length,t.minDepth,a):C=cy(C,e.startState.selection),new Tn(A==0?i.rest:C,A==0?C:i.rest)}let n=e.annotation(SB);if((n=="full"||n=="before")&&(r=r.isolate()),e.annotation(Ze.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let s=Ut.fromTransaction(e),g=e.annotation(Ze.time),o=e.annotation(Ze.userEvent);return s?r=r.addChanges(s,g,o,t,e):e.selection&&(r=r.addSelection(e.startState.selection,g,o,t.newGroupDelay)),(n=="full"||n=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Tn(r.done.map(Ut.fromJSON),r.undone.map(Ut.fromJSON))}});function ly(r={}){return[Iy,Cy.of(r),j.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?hy:e.inputType=="historyRedo"?LC:null;return i?(e.preventDefault(),i(t)):!1}})]}function So(r,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let n=t.field(Iy,!1);if(!n)return!1;let s=n.pop(r,t,e);return s?(i(s),!0):!1}}var hy=So(0,!1),LC=So(1,!1),TB=So(0,!0),kB=So(1,!0);var Ut=class r{constructor(e,t,i,n,s){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=n,this.selectionsAfter=s}setSelAfter(e){return new r(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(n=>n.toJSON())}}static fromJSON(e){return new r(e.changes&>.fromJSON(e.changes),[],e.mapped&&Ei.fromJSON(e.mapped),e.startSelection&&B.fromJSON(e.startSelection),e.selectionsAfter.map(B.fromJSON))}static fromTransaction(e,t){let i=Nt;for(let n of e.startState.facet(EB)){let s=n(e);s.length&&(i=i.concat(s))}return!i.length&&e.changes.empty?null:new r(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Nt)}static selection(e){return new r(void 0,Nt,void 0,void 0,e)}};function xo(r,e,t,i){let n=e+1>t+20?e-t-1:0,s=r.slice(n,e);return s.push(i),s}function OB(r,e){let t=[],i=!1;return r.iterChangedRanges((n,s)=>t.push(n,s)),e.iterChangedRanges((n,s,g,o)=>{for(let a=0;a=A&&g<=C&&(i=!0)}}),i}function RB(r,e){return r.ranges.length==e.ranges.length&&r.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function dy(r,e){return r.length?e.length?r.concat(e):r:e}var Nt=[],DB=200;function cy(r,e){if(r.length){let t=r[r.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-DB));return i.length&&i[i.length-1].eq(e)?r:(i.push(e),xo(r,r.length-1,1e9,t.setSelAfter(i)))}else return[Ut.selection([e])]}function PB(r){let e=r[r.length-1],t=r.slice();return t[r.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function _C(r,e){if(!r.length)return r;let t=r.length,i=Nt;for(;t;){let n=MB(r[t-1],e,i);if(n.changes&&!n.changes.empty||n.effects.length){let s=r.slice(0,t);return s[t-1]=n,s}else e=n.mapped,t--,i=n.selectionsAfter}return i.length?[Ut.selection(i)]:Nt}function MB(r,e,t){let i=dy(r.selectionsAfter.length?r.selectionsAfter.map(o=>o.map(e)):Nt,t);if(!r.changes)return Ut.selection(i);let n=r.changes.map(e),s=e.mapDesc(r.changes,!0),g=r.mapped?r.mapped.composeDesc(s):s;return new Ut(n,ce.mapEffects(r.effects,e),g,r.startSelection.map(s),i)}var NB=/^(input\.type|delete)($|\.)/,Tn=class r{constructor(e,t,i=0,n=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new r(this.done,this.undone):this}addChanges(e,t,i,n,s){let g=this.done,o=g[g.length-1];return o&&o.changes&&!o.changes.empty&&e.changes&&(!i||NB.test(i))&&(!o.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?r.moveByChar(t,e):Eo(t,e))}function rt(r){return r.textDirectionAt(r.state.selection.main.head)==pe.LTR}var py=r=>fy(r,!rt(r)),my=r=>fy(r,rt(r));function vy(r,e){return Qt(r,t=>t.empty?r.moveByGroup(t,e):Eo(t,e))}var BB=r=>vy(r,!rt(r)),_B=r=>vy(r,rt(r));var pj=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function FB(r,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function To(r,e,t){let i=ct(r).resolveInner(e.head),n=t?Q.closedBy:Q.openedBy;for(let a=e.head;;){let A=t?i.childAfter(a):i.childBefore(a);if(!A)break;FB(r,A,n)?i=A:a=t?A.to:A.from}let s=i.type.prop(n),g,o;return s&&(g=t?Kt(r,i.from,1):Kt(r,i.to,-1))&&g.matched?o=t?g.end.to:g.end.from:o=t?i.to:i.from,B.cursor(o,t?-1:1)}var LB=r=>Qt(r,e=>To(r.state,e,!rt(r))),zB=r=>Qt(r,e=>To(r.state,e,rt(r)));function by(r,e){return Qt(r,t=>{if(!t.empty)return Eo(t,e);let i=r.moveVertically(t,e);return i.head!=t.head?i:r.moveToLineBoundary(t,e)})}var yy=r=>by(r,!1),wy=r=>by(r,!0);function xy(r){let e=r.scrollDOM.clientHeightg.empty?r.moveVertically(g,e,t.height):Eo(g,e));if(n.eq(i.selection))return!1;let s;if(t.selfScroll){let g=r.coordsAtPos(i.selection.main.head),o=r.scrollDOM.getBoundingClientRect(),a=o.top+t.marginTop,A=o.bottom-t.marginBottom;g&&g.top>a&&g.bottomSy(r,!1),zC=r=>Sy(r,!0);function Ui(r,e,t){let i=r.lineBlockAt(e.head),n=r.moveToLineBoundary(e,t);if(n.head==e.head&&n.head!=(t?i.to:i.from)&&(n=r.moveToLineBoundary(e,t,!1)),!t&&n.head==i.from&&i.length){let s=/^\s*/.exec(r.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;s&&e.head!=i.from+s&&(n=B.cursor(i.from+s))}return n}var qB=r=>Qt(r,e=>Ui(r,e,!0)),VB=r=>Qt(r,e=>Ui(r,e,!1)),WB=r=>Qt(r,e=>Ui(r,e,!rt(r))),GB=r=>Qt(r,e=>Ui(r,e,rt(r))),ZB=r=>Qt(r,e=>B.cursor(r.lineBlockAt(e.head).from,1)),jB=r=>Qt(r,e=>B.cursor(r.lineBlockAt(e.head).to,-1));function HB(r,e,t){let i=!1,n=pr(r.selection,s=>{let g=Kt(r,s.head,-1)||Kt(r,s.head,1)||s.head>0&&Kt(r,s.head-1,1)||s.headHB(r,e,!1);function Bt(r,e){let t=pr(r.state.selection,i=>{let n=e(i);return B.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return t.eq(r.state.selection)?!1:(r.dispatch(Xt(r.state,t)),!0)}function Ey(r,e){return Bt(r,t=>r.moveByChar(t,e))}var Ty=r=>Ey(r,!rt(r)),ky=r=>Ey(r,rt(r));function Oy(r,e){return Bt(r,t=>r.moveByGroup(t,e))}var KB=r=>Oy(r,!rt(r)),UB=r=>Oy(r,rt(r));var XB=r=>Bt(r,e=>To(r.state,e,!rt(r))),QB=r=>Bt(r,e=>To(r.state,e,rt(r)));function Ry(r,e){return Bt(r,t=>r.moveVertically(t,e))}var Dy=r=>Ry(r,!1),Py=r=>Ry(r,!0);function My(r,e){return Bt(r,t=>r.moveVertically(t,e,xy(r).height))}var iy=r=>My(r,!1),ny=r=>My(r,!0),JB=r=>Bt(r,e=>Ui(r,e,!0)),$B=r=>Bt(r,e=>Ui(r,e,!1)),e_=r=>Bt(r,e=>Ui(r,e,!rt(r))),t_=r=>Bt(r,e=>Ui(r,e,rt(r))),i_=r=>Bt(r,e=>B.cursor(r.lineBlockAt(e.head).from)),n_=r=>Bt(r,e=>B.cursor(r.lineBlockAt(e.head).to)),ry=({state:r,dispatch:e})=>(e(Xt(r,{anchor:0})),!0),sy=({state:r,dispatch:e})=>(e(Xt(r,{anchor:r.doc.length})),!0),gy=({state:r,dispatch:e})=>(e(Xt(r,{anchor:r.selection.main.anchor,head:0})),!0),oy=({state:r,dispatch:e})=>(e(Xt(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),r_=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),s_=({state:r,dispatch:e})=>{let t=ko(r).map(({from:i,to:n})=>B.range(i,Math.min(n+1,r.doc.length)));return e(r.update({selection:B.create(t),userEvent:"select"})),!0},g_=({state:r,dispatch:e})=>{let t=pr(r.selection,i=>{let n=ct(r),s=n.resolveStack(i.from,1);if(i.empty){let g=n.resolveStack(i.from,-1);g.node.from>=s.node.from&&g.node.to<=s.node.to&&(s=g)}for(let g=s;g;g=g.next){let{node:o}=g;if((o.from=i.to||o.to>i.to&&o.from<=i.from)&&g.next)return B.range(o.to,o.from)}return i});return t.eq(r.selection)?!1:(e(Xt(r,t)),!0)};function Ny(r,e){let{state:t}=r,i=t.selection,n=t.selection.ranges.slice();for(let s of t.selection.ranges){let g=t.doc.lineAt(s.head);if(e?g.to0)for(let o=s;;){let a=r.moveVertically(o,e);if(a.headg.to){n.some(A=>A.head==a.head)||n.push(a);break}else{if(a.head==o.head)break;o=a}}}return n.length==i.ranges.length?!1:(r.dispatch(Xt(t,B.create(n,n.length-1))),!0)}var o_=r=>Ny(r,!1),a_=r=>Ny(r,!0),A_=({state:r,dispatch:e})=>{let t=r.selection,i=null;return t.ranges.length>1?i=B.create([t.main]):t.main.empty||(i=B.create([B.cursor(t.main.head)])),i?(e(Xt(r,i)),!0):!1};function Os(r,e){if(r.state.readOnly)return!1;let t="delete.selection",{state:i}=r,n=i.changeByRange(s=>{let{from:g,to:o}=s;if(g==o){let a=e(s);ag&&(t="delete.forward",a=wo(r,a,!0)),g=Math.min(g,a),o=Math.max(o,a)}else g=wo(r,g,!1),o=wo(r,o,!0);return g==o?{range:s}:{changes:{from:g,to:o},range:B.cursor(g,gn(r)))i.between(e,e,(n,s)=>{ne&&(e=t?s:n)});return e}var By=(r,e,t)=>Os(r,i=>{let n=i.from,{state:s}=r,g=s.doc.lineAt(n),o,a;if(t&&!e&&n>g.from&&nBy(r,!1,!0);var _y=r=>By(r,!0,!1),Fy=(r,e)=>Os(r,t=>{let i=t.head,{state:n}=r,s=n.doc.lineAt(i),g=n.charCategorizer(i);for(let o=null;;){if(i==(e?s.to:s.from)){i==t.head&&s.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=je(s.text,i-s.from,e)+s.from,A=s.text.slice(Math.min(i,a)-s.from,Math.max(i,a)-s.from),C=g(A);if(o!=null&&C!=o)break;(A!=" "||i!=t.head)&&(o=C),i=a}return i}),Ly=r=>Fy(r,!1),C_=r=>Fy(r,!0);var I_=r=>Os(r,e=>{let t=r.lineBlockAt(e.head).to;return e.headOs(r,e=>{let t=r.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),h_=r=>Os(r,e=>{let t=r.moveToLineBoundary(e,!0).head;return e.head{if(r.readOnly)return!1;let t=r.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:ie.of(["",""])},range:B.cursor(i.from)}));return e(r.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},c_=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(i=>{if(!i.empty||i.from==0||i.from==r.doc.length)return{range:i};let n=i.from,s=r.doc.lineAt(n),g=n==s.from?n-1:je(s.text,n-s.from,!1)+s.from,o=n==s.to?n+1:je(s.text,n-s.from,!0)+s.from;return{changes:{from:g,to:o,insert:r.doc.slice(n,o).append(r.doc.slice(g,n))},range:B.cursor(o)}});return t.changes.empty?!1:(e(r.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function ko(r){let e=[],t=-1;for(let i of r.selection.ranges){let n=r.doc.lineAt(i.from),s=r.doc.lineAt(i.to);if(!i.empty&&i.to==s.from&&(s=r.doc.lineAt(i.to-1)),t>=n.number){let g=e[e.length-1];g.to=s.to,g.ranges.push(i)}else e.push({from:n.from,to:s.to,ranges:[i]});t=s.number+1}return e}function zy(r,e,t){if(r.readOnly)return!1;let i=[],n=[];for(let s of ko(r)){if(t?s.to==r.doc.length:s.from==0)continue;let g=r.doc.lineAt(t?s.to+1:s.from-1),o=g.length+1;if(t){i.push({from:s.to,to:g.to},{from:s.from,insert:g.text+r.lineBreak});for(let a of s.ranges)n.push(B.range(Math.min(r.doc.length,a.anchor+o),Math.min(r.doc.length,a.head+o)))}else{i.push({from:g.from,to:s.from},{from:s.to,insert:r.lineBreak+g.text});for(let a of s.ranges)n.push(B.range(a.anchor-o,a.head-o))}}return i.length?(e(r.update({changes:i,scrollIntoView:!0,selection:B.create(n,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}var u_=({state:r,dispatch:e})=>zy(r,e,!1),f_=({state:r,dispatch:e})=>zy(r,e,!0);function qy(r,e,t){if(r.readOnly)return!1;let i=[];for(let s of ko(r))t?i.push({from:s.from,insert:r.doc.slice(s.from,s.to)+r.lineBreak}):i.push({from:s.to,insert:r.lineBreak+r.doc.slice(s.from,s.to)});let n=r.changes(i);return e(r.update({changes:n,selection:r.selection.map(n,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var p_=({state:r,dispatch:e})=>qy(r,e,!1),m_=({state:r,dispatch:e})=>qy(r,e,!0),v_=r=>{if(r.state.readOnly)return!1;let{state:e}=r,t=e.changes(ko(e).map(({from:n,to:s})=>(n>0?n--:s{let s;if(r.lineWrapping){let g=r.lineBlockAt(n.head),o=r.coordsAtPos(n.head,n.assoc||1);o&&(s=g.bottom+r.documentTop-o.bottom+r.defaultLineHeight/2)}return r.moveVertically(n,!0,s)}).map(t);return r.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function b_(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ct(r).resolveInner(e),i=t.childBefore(e),n=t.childAfter(e),s;return i&&n&&i.to<=e&&n.from>=e&&(s=i.type.prop(Q.closedBy))&&s.indexOf(n.name)>-1&&r.doc.lineAt(i.to).from==r.doc.lineAt(n.from).from&&!/\S/.test(r.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var ay=Vy(!1),y_=Vy(!0);function Vy(r){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:s,to:g}=n,o=e.doc.lineAt(s),a=!r&&s==g&&b_(e,s);r&&(s=g=(g<=o.to?o:e.doc.lineAt(g)).to);let A=new En(e,{simulateBreak:s,simulateDoubleBreak:!!a}),C=yo(A,s);for(C==null&&(C=un(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));go.from&&s{let n=[];for(let g=i.from;g<=i.to;){let o=r.doc.lineAt(g);o.number>t&&(i.empty||i.to>o.from)&&(e(o,n,i),t=o.number),g=o.to+1}let s=r.changes(n);return{changes:n,range:B.range(s.mapPos(i.anchor,1),s.mapPos(i.head,1))}})}var w_=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=Object.create(null),i=new En(r,{overrideIndentation:s=>{let g=t[s];return g??-1}}),n=GC(r,(s,g,o)=>{let a=yo(i,s.from);if(a==null)return;/\S/.test(s.text)||(a=0);let A=/^\s*/.exec(s.text)[0],C=fr(r,a);(A!=C||o.fromr.readOnly?!1:(e(r.update(GC(r,(t,i)=>{i.push({from:t.from,insert:r.facet(Es)})}),{userEvent:"input.indent"})),!0),S_=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(GC(r,(t,i)=>{let n=/^\s*/.exec(t.text)[0];if(!n)return;let s=un(n,r.tabSize),g=0,o=fr(r,Math.max(0,s-Ts(r)));for(;g(r.setTabFocusMode(),!0);var T_=[{key:"Ctrl-b",run:py,shift:Ty,preventDefault:!0},{key:"Ctrl-f",run:my,shift:ky},{key:"Ctrl-p",run:yy,shift:Dy},{key:"Ctrl-n",run:wy,shift:Py},{key:"Ctrl-a",run:ZB,shift:i_},{key:"Ctrl-e",run:jB,shift:n_},{key:"Ctrl-d",run:_y},{key:"Ctrl-h",run:qC},{key:"Ctrl-k",run:I_},{key:"Ctrl-Alt-h",run:Ly},{key:"Ctrl-o",run:d_},{key:"Ctrl-t",run:c_},{key:"Ctrl-v",run:zC}],k_=[{key:"ArrowLeft",run:py,shift:Ty,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:BB,shift:KB,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:WB,shift:e_,preventDefault:!0},{key:"ArrowRight",run:my,shift:ky,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:_B,shift:UB,preventDefault:!0},{mac:"Cmd-ArrowRight",run:GB,shift:t_,preventDefault:!0},{key:"ArrowUp",run:yy,shift:Dy,preventDefault:!0},{mac:"Cmd-ArrowUp",run:ry,shift:gy},{mac:"Ctrl-ArrowUp",run:ty,shift:iy},{key:"ArrowDown",run:wy,shift:Py,preventDefault:!0},{mac:"Cmd-ArrowDown",run:sy,shift:oy},{mac:"Ctrl-ArrowDown",run:zC,shift:ny},{key:"PageUp",run:ty,shift:iy},{key:"PageDown",run:zC,shift:ny},{key:"Home",run:VB,shift:$B,preventDefault:!0},{key:"Mod-Home",run:ry,shift:gy},{key:"End",run:qB,shift:JB,preventDefault:!0},{key:"Mod-End",run:sy,shift:oy},{key:"Enter",run:ay,shift:ay},{key:"Mod-a",run:r_},{key:"Backspace",run:qC,shift:qC,preventDefault:!0},{key:"Delete",run:_y,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ly,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:C_,preventDefault:!0},{mac:"Mod-Backspace",run:l_,preventDefault:!0},{mac:"Mod-Delete",run:h_,preventDefault:!0}].concat(T_.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),Wy=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:LB,shift:XB},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:zB,shift:QB},{key:"Alt-ArrowUp",run:u_},{key:"Shift-Alt-ArrowUp",run:p_},{key:"Alt-ArrowDown",run:f_},{key:"Shift-Alt-ArrowDown",run:m_},{key:"Mod-Alt-ArrowUp",run:o_},{key:"Mod-Alt-ArrowDown",run:a_},{key:"Escape",run:A_},{key:"Mod-Enter",run:y_},{key:"Alt-l",mac:"Ctrl-l",run:s_},{key:"Mod-i",run:g_,preventDefault:!0},{key:"Mod-[",run:S_},{key:"Mod-]",run:x_},{key:"Mod-Alt-\\",run:w_},{key:"Shift-Mod-k",run:v_},{key:"Shift-Mod-\\",run:YB},{key:"Mod-/",run:pB},{key:"Alt-A",run:vB},{key:"Ctrl-m",mac:"Shift-Alt-m",run:E_}].concat(k_);var xj=typeof navigator=="object"&&/Win/.test(navigator.platform);var Oo={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},kn=ce.define({map(r,e){let t=e.mapPos(r,-1,Qe.TrackAfter);return t??void 0}}),jC=new class extends kt{};jC.startSide=1;jC.endSide=-1;var jy=Je.define({create(){return Ie.empty},update(r,e){if(r=r.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);r=r.update({filter:i=>i>=t.from&&i<=t.to})}for(let t of e.effects)t.is(kn)&&(r=r.update({add:[jC.range(t.value,t.value+1)]}));return r}});function Hy(){return[P_,jy]}var ZC="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function O_(r){for(let e=0;e{if((D_?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let n=r.state.selection.main;if(i.length>2||i.length==2&&is(ir(i,0))==1||e!=n.from||t!=n.to)return!1;let s=M_(r.state,i);return s?(r.dispatch(s),!0):!1});function M_(r,e){let t=R_(r,r.selection.main.head),i=t.brackets||Oo.brackets;for(let n of i){let s=O_(ir(n,0));if(e==n)return s==n?__(r,n,i.indexOf(n+n+n)>-1,t):N_(r,n,s,t.before||Oo.before);if(e==s&&Yy(r,r.selection.main.from))return B_(r,n,s)}return null}function Yy(r,e){let t=!1;return r.field(jy).between(0,r.doc.length,i=>{i==e&&(t=!0)}),t}function HC(r,e){let t=r.sliceString(e,e+2);return t.slice(0,is(ir(t,0)))}function N_(r,e,t,i){let n=null,s=r.changeByRange(g=>{if(!g.empty)return{changes:[{insert:e,from:g.from},{insert:t,from:g.to}],effects:kn.of(g.to+e.length),range:B.range(g.anchor+e.length,g.head+e.length)};let o=HC(r.doc,g.head);return!o||/\s/.test(o)||i.indexOf(o)>-1?{changes:{insert:e+t,from:g.head},effects:kn.of(g.head+e.length),range:B.cursor(g.head+e.length)}:{range:n=g}});return n?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function B_(r,e,t){let i=null,n=r.changeByRange(s=>s.empty&&HC(r.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:B.cursor(s.head+t.length)}:i={range:s});return i?null:r.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function __(r,e,t,i){let n=i.stringPrefixes||Oo.stringPrefixes,s=null,g=r.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:e,from:o.to}],effects:kn.of(o.to+e.length),range:B.range(o.anchor+e.length,o.head+e.length)};let a=o.head,A=HC(r.doc,a),C;if(A==e){if(Gy(r,a))return{changes:{insert:e+e,from:a},effects:kn.of(a+e.length),range:B.cursor(a+e.length)};if(Yy(r,a)){let l=t&&r.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+l.length,insert:l},range:B.cursor(a+l.length)}}}else{if(t&&r.sliceDoc(a-2*e.length,a)==e+e&&(C=Zy(r,a-2*e.length,n))>-1&&Gy(r,C))return{changes:{insert:e+e+e+e,from:a},effects:kn.of(a+e.length),range:B.cursor(a+e.length)};if(r.charCategorizer(a)(A)!=st.Word&&Zy(r,a,n)>-1&&!F_(r,a,e,n))return{changes:{insert:e+e,from:a},effects:kn.of(a+e.length),range:B.cursor(a+e.length)}}return{range:s=o}});return s?null:r.update(g,{scrollIntoView:!0,userEvent:"input.type"})}function Gy(r,e){let t=ct(r).resolveInner(e+1);return t.parent&&t.from==e}function F_(r,e,t,i){let n=ct(r).resolveInner(e,-1),s=i.reduce((g,o)=>Math.max(g,o.length),0);for(let g=0;g<5;g++){let o=r.sliceDoc(n.from,Math.min(n.to,n.from+t.length+s)),a=o.indexOf(t);if(!a||a>-1&&i.indexOf(o.slice(0,a))>-1){let C=n.firstChild;for(;C&&C.from==n.from&&C.to-C.from>t.length+a;){if(r.sliceDoc(C.to-t.length,C.to)==t)return!1;C=C.firstChild}return!0}let A=n.to==e&&n.parent;if(!A)break;n=A}return!1}function Zy(r,e,t){let i=r.charCategorizer(e);if(i(r.sliceDoc(e-1,e))!=st.Word)return e;for(let n of t){let s=e-n.length;if(r.sliceDoc(s,e)==n&&i(r.sliceDoc(s-1,s))!=st.Word)return s}return-1}var L_="#e5c07b",Ky="#e06c75",z_="#56b6c2",q_="#ffffff",Ro="#abb2bf",KC="#7d8799",V_="#61afef",W_="#98c379",Uy="#d19a66",G_="#c678dd",Z_="#21252b",Xy="#2c313a",Qy="#282c34",YC="#353a42",j_="#3E4451",Jy="#528bff";var H_=j.theme({"&":{color:Ro,backgroundColor:Qy},".cm-content":{caretColor:Jy},".cm-cursor, .cm-dropCursor":{borderLeftColor:Jy},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:j_},".cm-panels":{backgroundColor:Z_,color:Ro},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Qy,color:KC,border:"none"},".cm-activeLineGutter":{backgroundColor:Xy},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:YC},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:YC,borderBottomColor:YC},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Xy,color:Ro}}},{dark:!0}),Y_=ur.define([{tag:D.keyword,color:G_},{tag:[D.name,D.deleted,D.character,D.propertyName,D.macroName],color:Ky},{tag:[D.function(D.variableName),D.labelName],color:V_},{tag:[D.color,D.constant(D.name),D.standard(D.name)],color:Uy},{tag:[D.definition(D.name),D.separator],color:Ro},{tag:[D.typeName,D.className,D.number,D.changed,D.annotation,D.modifier,D.self,D.namespace],color:L_},{tag:[D.operator,D.operatorKeyword,D.url,D.escape,D.regexp,D.link,D.special(D.string)],color:z_},{tag:[D.meta,D.comment],color:KC},{tag:D.strong,fontWeight:"bold"},{tag:D.emphasis,fontStyle:"italic"},{tag:D.strikethrough,textDecoration:"line-through"},{tag:D.link,color:KC,textDecoration:"underline"},{tag:D.heading,fontWeight:"bold",color:Ky},{tag:[D.atom,D.bool,D.special(D.variableName)],color:Uy},{tag:[D.processingInstruction,D.string,D.inserted],color:W_},{tag:D.invalid,color:q_}]),$y=[H_,Xb(Y_)];var JC={};NP(JC,{CompileLog:()=>Rn,CompileResult:()=>mr,Tok:()=>vr,compile:()=>J_,default:()=>QC,init:()=>XC,initSync:()=>rF,lex:()=>$_,main:()=>eF,test:()=>tF});var W;function K_(r){let e=W.__externref_table_alloc();return W.__wbindgen_externrefs.set(e,r),e}function g0(r,e){r=r>>>0;let t=Mo(),i=[];for(let n=r;n>>0,Q_(r,e)}var Rs=null;function Do(){return(Rs===null||Rs.byteLength===0)&&(Rs=new Uint8Array(W.memory.buffer)),Rs}function e0(r){return r==null}function U_(r,e){let t=e(r.length*4,4)>>>0;for(let i=0;i>>0;return Do().subarray(a,a+o.length).set(o),Ri=o.length,a}let i=r.length,n=e(i,1)>>>0,s=Do(),g=0;for(;g127)break;s[n+g]=o}if(g!==i){g!==0&&(r=r.slice(g)),n=t(n,i,i=g+r.length*3,1)>>>0;let o=Do().subarray(n+g,n+i),a=Ds.encodeInto(r,o);g+=a.written,n=t(n,i,g,1)>>>0}return Ri=g,n}var Po=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Po.decode();var X_=2146435072,UC=0;function Q_(r,e){return UC+=e,UC>=X_&&(Po=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Po.decode(),UC=e),Po.decode(Do().subarray(r,r+e))}var Ds=new TextEncoder;"encodeInto"in Ds||(Ds.encodeInto=function(r,e){let t=Ds.encode(r);return e.set(t),{read:r.length,written:t.length}});var Ri=0,t0=["ident","keyword","error","comment","punc","lpar","lbrace","lbracket","rpar","rbrace","rbracket"],i0=["info","warning","error"],n0=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>W.__wbg_compilelog_free(r>>>0,1)),r0=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>W.__wbg_compileresult_free(r>>>0,1)),s0=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>W.__wbg_tok_free(r>>>0,1)),Rn=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,n0.register(t,t.__wbg_ptr,t),t}static __unwrap(e){return e instanceof r?e.__destroy_into_raw():0}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,n0.unregister(this),e}free(){let e=this.__destroy_into_raw();W.__wbg_compilelog_free(e,0)}get level(){let e=W.__wbg_get_compilelog_level(this.__wbg_ptr);return i0[e]}set level(e){W.__wbg_set_compilelog_level(this.__wbg_ptr,(i0.indexOf(e)+1||4)-1)}get message(){let e,t;try{let i=W.__wbg_get_compilelog_message(this.__wbg_ptr);return e=i[0],t=i[1],No(i[0],i[1])}finally{W.__wbindgen_free(e,t,1)}}set message(e){let t=Ps(e,W.__wbindgen_malloc,W.__wbindgen_realloc),i=Ri;W.__wbg_set_compilelog_message(this.__wbg_ptr,t,i)}get start(){let e=W.__wbg_get_compilelog_start(this.__wbg_ptr);return e===4294967297?void 0:e}set start(e){W.__wbg_set_compilelog_start(this.__wbg_ptr,e0(e)?4294967297:e>>>0)}get end(){let e=W.__wbg_get_compilelog_end(this.__wbg_ptr);return e===4294967297?void 0:e}set end(e){W.__wbg_set_compilelog_end(this.__wbg_ptr,e0(e)?4294967297:e>>>0)}};Symbol.dispose&&(Rn.prototype[Symbol.dispose]=Rn.prototype.free);var mr=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,r0.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,r0.unregister(this),e}free(){let e=this.__destroy_into_raw();W.__wbg_compileresult_free(e,0)}get log(){let e=W.__wbg_get_compileresult_log(this.__wbg_ptr);var t=g0(e[0],e[1]).slice();return W.__wbindgen_free(e[0],e[1]*4,4),t}set log(e){let t=U_(e,W.__wbindgen_malloc),i=Ri;W.__wbg_set_compileresult_log(this.__wbg_ptr,t,i)}get log_formatted(){let e,t;try{let i=W.__wbg_get_compileresult_log_formatted(this.__wbg_ptr);return e=i[0],t=i[1],No(i[0],i[1])}finally{W.__wbindgen_free(e,t,1)}}set log_formatted(e){let t=Ps(e,W.__wbindgen_malloc,W.__wbindgen_realloc),i=Ri;W.__wbg_set_compileresult_log_formatted(this.__wbg_ptr,t,i)}};Symbol.dispose&&(mr.prototype[Symbol.dispose]=mr.prototype.free);var vr=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,s0.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,s0.unregister(this),e}free(){let e=this.__destroy_into_raw();W.__wbg_tok_free(e,0)}get start(){return W.__wbg_get_tok_start(this.__wbg_ptr)>>>0}set start(e){W.__wbg_set_tok_start(this.__wbg_ptr,e)}get end(){return W.__wbg_get_tok_end(this.__wbg_ptr)>>>0}set end(e){W.__wbg_set_tok_end(this.__wbg_ptr,e)}get scope_level(){return W.__wbg_get_tok_scope_level(this.__wbg_ptr)>>>0}set scope_level(e){W.__wbg_set_tok_scope_level(this.__wbg_ptr,e)}get kind(){let e=W.__wbg_get_tok_kind(this.__wbg_ptr);return t0[e]}set kind(e){W.__wbg_set_tok_kind(this.__wbg_ptr,(t0.indexOf(e)+1||12)-1)}};Symbol.dispose&&(vr.prototype[Symbol.dispose]=vr.prototype.free);function J_(r){let e=Ps(r,W.__wbindgen_malloc,W.__wbindgen_realloc),t=Ri,i=W.compile(e,t);return mr.__wrap(i)}function XC(){W.init()}function $_(r){let e=Ps(r,W.__wbindgen_malloc,W.__wbindgen_realloc),t=Ri,i=W.lex(e,t);var n=g0(i[0],i[1]).slice();return W.__wbindgen_free(i[0],i[1]*4,4),n}function eF(){W.main()}function tF(){W.test()}var iF=new Set(["basic","cors","default"]);async function nF(r,e){if(typeof Response=="function"&&r instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(r,e)}catch(i){if(r.ok&&iF.has(r.type)&&r.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}let t=await r.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{let t=await WebAssembly.instantiate(r,e);return t instanceof WebAssembly.Instance?{instance:t,module:r}:t}}function o0(){let r={};return r.wbg={},r.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(e,t){throw new Error(No(e,t))},r.wbg.__wbg_compilelog_new=function(e){return Rn.__wrap(e)},r.wbg.__wbg_compilelog_unwrap=function(e){return Rn.__unwrap(e)},r.wbg.__wbg_error_7534b8e9a36f1ab4=function(e,t){let i,n;try{i=e,n=t,console.error(No(e,t))}finally{W.__wbindgen_free(i,n,1)}},r.wbg.__wbg_new_8a6f238a6ece86ea=function(){return new Error},r.wbg.__wbg_stack_0ed75d68575b0f3c=function(e,t){let i=t.stack,n=Ps(i,W.__wbindgen_malloc,W.__wbindgen_realloc),s=Ri;Mo().setInt32(e+4*1,s,!0),Mo().setInt32(e+4*0,n,!0)},r.wbg.__wbg_tok_new=function(e){return vr.__wrap(e)},r.wbg.__wbindgen_init_externref_table=function(){let e=W.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)},r}function a0(r,e){return W=r.exports,A0.__wbindgen_wasm_module=e,On=null,Rs=null,W.__wbindgen_start(),W}function rF(r){if(W!==void 0)return W;typeof r<"u"&&(Object.getPrototypeOf(r)===Object.prototype?{module:r}=r:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let e=o0();r instanceof WebAssembly.Module||(r=new WebAssembly.Module(r));let t=new WebAssembly.Instance(r,e);return a0(t,r)}async function A0(r){if(W!==void 0)return W;typeof r<"u"&&(Object.getPrototypeOf(r)===Object.prototype?{module_or_path:r}=r:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof r>"u"&&(r=new URL("automata_web_bg.wasm",import.meta.url));let e=o0();(typeof r=="string"||typeof Request=="function"&&r instanceof Request||typeof URL=="function"&&r instanceof URL)&&(r=fetch(r));let{instance:t,module:i}=await nF(await r,e);return a0(t,i)}var QC=A0;console.debug("Loading wasm\u2026");try{console.debug("Wasm loaded. Starting app\u2026"),await QC(),console.debug("App started."),document.getElementById("center_text").innerHTML="",document.getElementById("app").style.display="",XC()}catch(r){console.error("Failed to start: "+r),document.getElementById("the_canvas_id").remove(),document.getElementById("center_text").innerHTML=` +

    + An error occurred during loading: +

    +

    + ${r} +

    +

    + Make sure you use a modern browser with WebGL and WASM enabled. +

    `}var $C=JC;function sF(r){try{return $C.lex(r)}catch(e){return console.log(e),[]}}function gF(r){try{return $C.compile(r)}catch(e){return console.log(e),{log:[],log_formatted:""}}}var oF=r=>({comment:"tok-comment",keyword:"tok-keyword",error:"tok-error",ident:"tok-ident",punc:"tok-punc",string:"tok-string",lpar:"rb-",lbrace:"rb-",lbracket:"rb-",rpar:"rb-",rbrace:"rb-",rbracket:"rb-"})[r]||"tok-ident";function aF(r){let e=(r||"error").toLowerCase();return e==="warning"?"cm-diag-warning":e==="info"?"cm-diag-info":"cm-diag-error"}function Bo(r){return r==="error"?3:r==="warning"?2:1}function C0(r,e){let t=sF(r),{log:i,log_formatted:n}=gF(r),s=[],g=e.length;for(let a of t){let A=Math.max(0,Math.min(g,a.start)),C=Math.max(A,Math.min(g,a.end)),I=oF(a.kind);I==="rb-"&&(I+=a.scope_level.toString()),C>A&&s.push(Ae.mark({class:I}).range(A,C))}for(let a of i){if(a.start===void 0||a.end===void 0)continue;let A=Math.max(0,Math.min(g,a.start)),C=a.end==null?a.start:a.end,I=Math.max(A,Math.min(g,C)),l=aF(a.level);if(I>A)s.push(Ae.mark({class:l}).range(A,I));else{let h=Math.min(g,A+1);h>A&&s.push(Ae.mark({class:l}).range(A,h))}}let o=Ae.set(s,!0);return{tokens:t,log:i,log_formatted:n,deco:o}}var eI=Je.define({create(r){let e=r.doc.toString();return C0(e,r.doc)},update(r,e){if(!e.docChanged)return r;let t=e.state.doc.toString();return C0(t,e.state.doc)},provide:r=>j.decorations.from(r,e=>e.deco)}),AF=kb((r,e)=>{let{log:t}=r.state.field(eI),i=t.filter(s=>s.start!==void 0&&s.end!==void 0&&e>=s.start&&e<=s.end);if(i.length===0)return null;let n=i.reduce((s,g)=>Bo(g.level)>Bo(s.level)?g:s,i[0]);return{pos:e,end:e,above:!0,create(){let s=document.createElement("div");s.className="cm-tooltip cm-tooltip-hover";let g=document.createElement("div");g.className=`tipTitle ${n.level}`,g.textContent=i.length===1?n.level.toUpperCase():`${n.level.toUpperCase()} (${i.length})`;let o=document.createElement("div");return o.className="tipBody",o.textContent=i.slice().sort((a,A)=>Bo(A.level)-Bo(a.level)).map(a=>`[${a.level.toUpperCase()}] ${a.message}`).join(` +`),s.appendChild(g),s.appendChild(o),{dom:s}}}});function I0(r){return r.replace(/&/g,"&").replace(//g,">")}function CF(r){let e=/\x1b\[([0-9;]*)m/g,t="",i=0,n=null,s=null,g=!1,o=!1;function a(I){if(I.length===0)return"";let l=[];return g&&l.push("ansi-bold"),o&&l.push("ansi-dim"),n!=null&&l.push(`ansi-fg-${n}`),s!=null&&l.push(`ansi-bg-${s}`),l.length===0?I0(I):`${I0(I)}`}function A(I){I.length===0&&(I=["0"]);for(let l of I){let h=Number(l);Number.isNaN(h)||(h===0?(n=null,s=null,g=!1,o=!1):h===1?g=!0:h===2?o=!0:h===22?(g=!1,o=!1):h===39?n=null:h===49?s=null:h>=30&&h<=37||h>=90&&h<=97?n=h:(h>=40&&h<=47||h>=100&&h<=107)&&(s=h))}}let C;for(;(C=e.exec(r))!==null;){let I=r.slice(i,C.index);t+=a(I);let l=C[1]?C[1].split(";"):[];A(l),i=e.lastIndex}return t+=a(r.slice(i)),t}function l0(r){let e=document.getElementById("terminal");if(!e)return;let{log:t,log_formatted:i}=r.state.field(eI),n="";n+=`\x1B[90m[compile]\x1B[0m ${t.length} diagnostics +`,e.innerHTML=CF(n+i)}var IF=xt.fromClass(class{constructor(r){this.view=r,l0(r)}update(r){r.docChanged&&l0(r.view)}}),lF=`type=NPDA +Q = {q0, q1} // states +E = {a, b} // alphabet +T = {z0, A, B} // stack +q0 = q0 +z0 = z0 + +// construct all possible permutations of A's and B's +d(q0, epsilon, z0) = { (q0, [A z0]), (q0, [B z0]) } +d(q0, epsilon, A) = { (q0, [A A]), (q0, [B A]) } + +d(q0, epsilon, B) = { (q0, [A B]), (q0, [B B]) } + +// transition to q1 +d(q0, epsilon, z0) = { (q1, z0) } +d(q0, epsilon, A) = { (q1, A) } +d(q0, epsilon, B) = { (q1, B) } + +// consume stack until empty +d(q1, a, A) = { (q1, epsilon) } +d(q1, b, B) = { (q1, epsilon) } +`,hF=xe.create({doc:lF,extensions:[Ob(),Rb(),ly(),Kb(),ey(),Hy(),lo.of([...Wy,...uy]),$y,eI,AF,IF,j.lineWrapping]}),zj=new j({state:hF,parent:document.getElementById("editor")});function Wn(r,e){e===void 0&&(e={});var t=e.insertAt;if(!(!r||typeof document>"u")){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=r:n.appendChild(document.createTextNode(r))}}var dF=`div.vis-network div.vis-manipulation { + box-sizing: content-box; + + border-width: 0; + border-bottom: 1px; + border-style: solid; + border-color: #d6d9d8; + background: #ffffff; /* Old browsers */ + background: -moz-linear-gradient( + top, + #ffffff 0%, + #fcfcfc 48%, + #fafafa 50%, + #fcfcfc 100% + ); /* FF3.6+ */ + background: -webkit-gradient( + linear, + left top, + left bottom, + color-stop(0%, #ffffff), + color-stop(48%, #fcfcfc), + color-stop(50%, #fafafa), + color-stop(100%, #fcfcfc) + ); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient( + top, + #ffffff 0%, + #fcfcfc 48%, + #fafafa 50%, + #fcfcfc 100% + ); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient( + top, + #ffffff 0%, + #fcfcfc 48%, + #fafafa 50%, + #fcfcfc 100% + ); /* Opera 11.10+ */ + background: -ms-linear-gradient( + top, + #ffffff 0%, + #fcfcfc 48%, + #fafafa 50%, + #fcfcfc 100% + ); /* IE10+ */ + background: linear-gradient( + to bottom, + #ffffff 0%, + #fcfcfc 48%, + #fafafa 50%, + #fcfcfc 100% + ); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc',GradientType=0 ); /* IE6-9 */ + + padding-top: 4px; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 28px; +} + +div.vis-network div.vis-edit-mode, +div.vis-network button.vis-edit-mode { + position: absolute; + left: 0; + top: 5px; + height: 30px; +} + +/* FIXME: shouldn't the vis-close button be a child of the vis-manipulation div? */ + +div.vis-network button.vis-close { + position: absolute; + right: 0; + top: 0; + width: 30px; + height: 30px; + + background-color: transparent; + background-position: 20px 3px; + background-repeat: no-repeat; + background-image: url('data:image/png;base64,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/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC'); + border: none; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.vis-network button.vis-close:hover { + opacity: 0.6; +} + +div.vis-network div.vis-manipulation button.vis-button, +div.vis-network div.vis-edit-mode button.vis-button { + float: left; + font-family: verdana; + font-size: 12px; + border: none; + box-sizing: content-box; + -moz-border-radius: 15px; + border-radius: 15px; + background-color: transparent; + background-position: 0px 0px; + background-repeat: no-repeat; + height: 24px; + margin-left: 10px; + cursor: pointer; + padding: 0px 8px 0px 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.vis-network div.vis-manipulation button.vis-button:hover { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.2); +} + +div.vis-network div.vis-manipulation button.vis-button:active { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.5); +} + +div.vis-network div.vis-manipulation button.vis-button.vis-back { + background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC'); +} + +div.vis-network div.vis-manipulation div.vis-none:hover { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0); + cursor: default; +} +div.vis-network div.vis-manipulation div.vis-none:active { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0); +} +div.vis-network div.vis-manipulation div.vis-none { + padding: 0px; + line-height: 23px; +} +div.vis-network div.vis-manipulation div.notification { + margin: 2px; + font-weight: bold; +} + +div.vis-network div.vis-manipulation button.vis-button.vis-add { + background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg=='); +} + +div.vis-network div.vis-manipulation button.vis-button.vis-edit, +div.vis-network div.vis-edit-mode button.vis-button.vis-edit { + background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg=='); +} + +div.vis-network div.vis-edit-mode button.vis-button.vis-edit.vis-edit-mode { + background-color: #fcfcfc; + border: 1px solid #cccccc; +} + +div.vis-network div.vis-manipulation button.vis-button.vis-connect { + background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg=='); +} + +div.vis-network div.vis-manipulation button.vis-button.vis-delete { + background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII='); +} +/* top right bottom left */ +div.vis-network div.vis-manipulation div.vis-label, +div.vis-network div.vis-edit-mode div.vis-label { + margin: 0 0 0 23px; + line-height: 25px; +} +div.vis-network div.vis-manipulation div.vis-separator-line { + float: left; + display: inline-block; + width: 1px; + height: 21px; + background-color: #bdbdbd; + margin: 0px 7px 0 15px; /*top right bottom left*/ +} + +/* TODO: is this redundant? +div.network-navigation_wrapper { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +*/ +`;Wn(dF);var cF=`div.vis-network div.vis-navigation div.vis-button { + width: 34px; + height: 34px; + -moz-border-radius: 17px; + border-radius: 17px; + position: absolute; + display: inline-block; + background-position: 2px 2px; + background-repeat: no-repeat; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.vis-network div.vis-navigation div.vis-button:hover { + box-shadow: 0 0 3px 3px rgba(56, 207, 21, 0.3); +} + +div.vis-network div.vis-navigation div.vis-button:active { + box-shadow: 0 0 1px 3px rgba(56, 207, 21, 0.95); +} + +div.vis-network div.vis-navigation div.vis-button.vis-up { + background-image: url('data:image/png;base64,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'); + bottom: 50px; + left: 55px; +} +div.vis-network div.vis-navigation div.vis-button.vis-down { + background-image: url('data:image/png;base64,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'); + bottom: 10px; + left: 55px; +} +div.vis-network div.vis-navigation div.vis-button.vis-left { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABt5JREFUeNqsl2lUlOcVx//3Pi9DZRsGBgYiS2RYBQKIjAhEJW4pNrXNMbZpWtTGNkttYmJMG5soSZckRk+0p+dYPYY0Gk0ihlhRj63GhVUgBhDD5oIOy8AAMwzD4lCYtx+GqCQKuNyP7/Pc+3u2+7/3JUzEZFBYLh62S7yIZDmVBEIBqOwsQ4DNdtBFASq2A4cuZAwVgCCPF5LGHM0Chz+E1XamzUyAzCMO7IhMI+5MDCK+HpCANd+U2rYgC/Y7BoflYgVA2RAOoNYtyjDTe45+hk96e5QywaJR+NsAwDhocK61VCjLTYWaclNB0OW+en8mhl22g8C/rn7U+uGEwdov+C0i+Q0mIFWzoD7zwVU1czQ/6pjIreR3HPX5VL9jalHXiQgmBoH+XLHAtH5csDaXtxDLLzIBv5jyfOmG2H9U4S7snbpX43KaPpgBIhDx1rPzOlbfPC5GQT/nd1mS1zABa6PfPf5y5F/rcJeWpp7fPkly6f7KXBRCoOSATFfXll19x74HDsvFCghsJAG8HrvlvytCXm7EPVqc5wyzp5NX15muE1omKXXyMnd9yy5r5Q3wPghvJzrLAlimXV38+7D1DbhPFq1M6O4b6rPVWKsCBfHi5EWWv9TkQBYAEPpLvERMC9N8FtRvjt9dPl6wwo5jPvuas7WV5jNqEjz8wA+CBsaan+w9x1hrrXJtuaZX97ooLfqPLCUEGRR+iOwAsF2X98Uc30W3fb02u41frVqeVmo6FUkkwCAwCWxJ2Ls/0TPFNBb8TNdp9WvnVz4OAKdmX2QOzcMsAAjziDGMBd3asCF6SXHyknJTfqQTK+zpvhnVKT5zawCgzFTgN94pJXvP7gxxjTAIkpB+MnSWRMQZYEDnPVt/K4ejbZ/77726Lb6h95tAAiPELaJ1bcTbRfGeM8xv1azWSeyEa0P9igk+Nr1+oNFfkpwzJCJKIQA679ntN08yDXYo3qh+LuUrc0E4EcNL4dP7VNDzpU8FP3vpekoQQ5CEw4bPdEfa9+sAgEZUmkmAAAS5hLQ9p11XGO+pM8V5JLUfMeQARDMlEMKIGFOVCZYb0C7Fz0oeXmIZ6nZzYoV9od/jVS+GbahUOnn9b7T6sEOviUGyA8bMDlUa0W79wBW/bZf+lrY98cDBUI8YCxGDgHCJiVVEDN8R7QWAE8Z/+1mGut2i3eP1r0S+XRztkdBzq6NbF7WpbF3UprKxjvfHxbrfttla/QBArVDbJJIAQCURMRg8ugrKIAKBSNxzHtN3VdmxY0iQYSZmTeegwTlgknYAAB7RZBh2Nm7urbeeC1r19ROT52kWn3shfH2Fu1AO3RxjY/0fdac7/hPPJMDE11GC+HpBJmIEuAS3Oa6w01lybMbMgvgCE6O255zy24DeCr/Bvckn9+u8ZjXYIYvjxoMJy8oeXZrT9GHIqMWTwA2oI6cFMeDIcAiSEOyibXsmZG0hAFzuq1OyY6xBAnMJgdPOmks08zU/bbsB9x18P37PqS/b8+o/a96ZcLm3PmBH46Z5x40HW1eFvl4Uq0w0MwiCBOb7/qTsd6GvVY537DXWas1Iw1AiNJnOgwJi+bXhAbE08OnvaXSIW0TvYw88eaF/uM/WNdju3m5r9TlhPBzVNNDoPGC/5tRma/GJ80xqjPPUjVuvP2narrMOWd1Jlv/E1fN782UiNPZf9C/qOKa+ndOz2j+cz046sn+6KrVOsODirpOxld0lUxmEBK/ktvGgFd2l6taBZn9BAtEz5xYIvAn4/8rFKkgstAyZ6Yf+S67ezlkiSU73XXRV6xqh93TyssR4JF75efBvymLdE03jgT/Wb5tutLWpGbTm7wHZxQQAT+yDuKLyHRIk4cnAZ4pfCF9/HvfR9uh3xBxtz00BANsVDylnac6wAICaHMiBmW5NRLy4trcq0MtZ3RnpHme5H9AvjYeCc1t3pzMJgOSVnyw4eHZUB9Kyu68iMFPpysSppab8UJVC3Rnp/pDlXqF7mnYsdKQbv7cr6fDGW/Zczbt6jgUtV6kIlFxuyg/tH+6zJXmlGe8G+mlzdsyB1j3pTAwZ9q3/Sspbc9tmDwD0H3UffXCFlyuTlFpnPRdYb612c5c8+idPCu6fCLDKUubzsf6fSaWm0wmO9hbvZU8fDR2zoZ97OuppAu0UJEDEmOISZohT6q7Gek5rD3GN6FEp1DaAYB7sdNYPXPao7anS1Fmrg402g7+jYhGIaOXOaQc+uONfmCwZXJIf8xKx2KRgxYgOS+CROuyoyQKCxIhkOr4T6JWgxGnvZ1HWnf/CfHcBXxcnpRHxYwRKkUjSErFKkAQiNjP4kmBRTHbKm5KkKxwL+K39fwDX1XGF8ct++QAAAABJRU5ErkJggg=='); + bottom: 10px; + left: 15px; +} +div.vis-network div.vis-navigation div.vis-button.vis-right { + background-image: url('data:image/png;base64,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'); + bottom: 10px; + left: 95px; +} +div.vis-network div.vis-navigation div.vis-button.vis-zoomIn { + background-image: url('data:image/png;base64,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'); + bottom: 10px; + right: 15px; +} +div.vis-network div.vis-navigation div.vis-button.vis-zoomOut { + background-image: url('data:image/png;base64,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'); + bottom: 10px; + right: 55px; +} +div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends { + background-image: url('data:image/png;base64,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'); + bottom: 50px; + right: 15px; +} +`;Wn(cF);var uF=`.vis-overlay { + position: absolute; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + /* Must be displayed above for example selected Timeline items */ + z-index: 10; +} + +.vis-active { + box-shadow: 0 0 10px #86d5f8; +} +`;Wn(uF);var fF=`/* override some bootstrap styles screwing up the timelines css */ + +.vis [class*="span"] { + min-height: 0; + width: auto; +} +`;Wn(fF);var pF=`div.vis-color-picker { + position: absolute; + top: 0px; + left: 30px; + margin-top: -140px; + margin-left: 30px; + width: 310px; + height: 444px; + z-index: 1; + padding: 10px; + border-radius: 15px; + background-color: #ffffff; + display: none; + box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 10px 0px; +} + +div.vis-color-picker div.vis-arrow { + position: absolute; + top: 147px; + left: 5px; +} + +div.vis-color-picker div.vis-arrow::after, +div.vis-color-picker div.vis-arrow::before { + right: 100%; + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} + +div.vis-color-picker div.vis-arrow:after { + border-color: rgba(255, 255, 255, 0); + border-right-color: #ffffff; + border-width: 30px; + margin-top: -30px; +} + +div.vis-color-picker div.vis-color { + position: absolute; + width: 289px; + height: 289px; + cursor: pointer; +} + +div.vis-color-picker div.vis-brightness { + position: absolute; + top: 313px; +} + +div.vis-color-picker div.vis-opacity { + position: absolute; + top: 350px; +} + +div.vis-color-picker div.vis-selector { + position: absolute; + top: 137px; + left: 137px; + width: 15px; + height: 15px; + border-radius: 15px; + border: 1px solid #ffffff; + background: #4c4c4c; /* Old browsers */ + background: -moz-linear-gradient( + top, + #4c4c4c 0%, + #595959 12%, + #666666 25%, + #474747 39%, + #2c2c2c 50%, + #000000 51%, + #111111 60%, + #2b2b2b 76%, + #1c1c1c 91%, + #131313 100% + ); /* FF3.6+ */ + background: -webkit-gradient( + linear, + left top, + left bottom, + color-stop(0%, #4c4c4c), + color-stop(12%, #595959), + color-stop(25%, #666666), + color-stop(39%, #474747), + color-stop(50%, #2c2c2c), + color-stop(51%, #000000), + color-stop(60%, #111111), + color-stop(76%, #2b2b2b), + color-stop(91%, #1c1c1c), + color-stop(100%, #131313) + ); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient( + top, + #4c4c4c 0%, + #595959 12%, + #666666 25%, + #474747 39%, + #2c2c2c 50%, + #000000 51%, + #111111 60%, + #2b2b2b 76%, + #1c1c1c 91%, + #131313 100% + ); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient( + top, + #4c4c4c 0%, + #595959 12%, + #666666 25%, + #474747 39%, + #2c2c2c 50%, + #000000 51%, + #111111 60%, + #2b2b2b 76%, + #1c1c1c 91%, + #131313 100% + ); /* Opera 11.10+ */ + background: -ms-linear-gradient( + top, + #4c4c4c 0%, + #595959 12%, + #666666 25%, + #474747 39%, + #2c2c2c 50%, + #000000 51%, + #111111 60%, + #2b2b2b 76%, + #1c1c1c 91%, + #131313 100% + ); /* IE10+ */ + background: linear-gradient( + to bottom, + #4c4c4c 0%, + #595959 12%, + #666666 25%, + #474747 39%, + #2c2c2c 50%, + #000000 51%, + #111111 60%, + #2b2b2b 76%, + #1c1c1c 91%, + #131313 100% + ); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313',GradientType=0 ); /* IE6-9 */ +} + +div.vis-color-picker div.vis-new-color { + position: absolute; + width: 140px; + height: 20px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 5px; + top: 380px; + left: 159px; + text-align: right; + padding-right: 2px; + font-size: 10px; + color: rgba(0, 0, 0, 0.4); + vertical-align: middle; + line-height: 20px; +} + +div.vis-color-picker div.vis-initial-color { + position: absolute; + width: 140px; + height: 20px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 5px; + top: 380px; + left: 10px; + text-align: left; + padding-left: 2px; + font-size: 10px; + color: rgba(0, 0, 0, 0.4); + vertical-align: middle; + line-height: 20px; +} + +div.vis-color-picker div.vis-label { + position: absolute; + width: 300px; + left: 10px; +} + +div.vis-color-picker div.vis-label.vis-brightness { + top: 300px; +} + +div.vis-color-picker div.vis-label.vis-opacity { + top: 338px; +} + +div.vis-color-picker div.vis-button { + position: absolute; + width: 68px; + height: 25px; + border-radius: 10px; + vertical-align: middle; + text-align: center; + line-height: 25px; + top: 410px; + border: 2px solid #d9d9d9; + background-color: #f7f7f7; + cursor: pointer; +} + +div.vis-color-picker div.vis-button.vis-cancel { + /*border:2px solid #ff4e33;*/ + /*background-color: #ff7761;*/ + left: 5px; +} +div.vis-color-picker div.vis-button.vis-load { + /*border:2px solid #a153e6;*/ + /*background-color: #cb8dff;*/ + left: 82px; +} +div.vis-color-picker div.vis-button.vis-apply { + /*border:2px solid #4588e6;*/ + /*background-color: #82b6ff;*/ + left: 159px; +} +div.vis-color-picker div.vis-button.vis-save { + /*border:2px solid #45e655;*/ + /*background-color: #6dff7c;*/ + left: 236px; +} + +div.vis-color-picker input.vis-range { + width: 290px; + height: 20px; +} + +/* TODO: is this redundant? +div.vis-color-picker input.vis-range-brightness { + width: 289px !important; +} + + +div.vis-color-picker input.vis-saturation-range { + width: 289px !important; +}*/ +`;Wn(pF);var mF=`div.vis-configuration { + position: relative; + display: block; + float: left; + font-size: 12px; +} + +div.vis-configuration-wrapper { + display: block; + width: 700px; +} + +div.vis-configuration-wrapper::after { + clear: both; + content: ""; + display: block; +} + +div.vis-configuration.vis-config-option-container { + display: block; + width: 495px; + background-color: #ffffff; + border: 2px solid #f7f8fa; + border-radius: 4px; + margin-top: 20px; + left: 10px; + padding-left: 5px; +} + +div.vis-configuration.vis-config-button { + display: block; + width: 495px; + height: 25px; + vertical-align: middle; + line-height: 25px; + background-color: #f7f8fa; + border: 2px solid #ceced0; + border-radius: 4px; + margin-top: 20px; + left: 10px; + padding-left: 5px; + cursor: pointer; + margin-bottom: 30px; +} + +div.vis-configuration.vis-config-button.hover { + background-color: #4588e6; + border: 2px solid #214373; + color: #ffffff; +} + +div.vis-configuration.vis-config-item { + display: block; + float: left; + width: 495px; + height: 25px; + vertical-align: middle; + line-height: 25px; +} + +div.vis-configuration.vis-config-item.vis-config-s2 { + left: 10px; + background-color: #f7f8fa; + padding-left: 5px; + border-radius: 3px; +} +div.vis-configuration.vis-config-item.vis-config-s3 { + left: 20px; + background-color: #e4e9f0; + padding-left: 5px; + border-radius: 3px; +} +div.vis-configuration.vis-config-item.vis-config-s4 { + left: 30px; + background-color: #cfd8e6; + padding-left: 5px; + border-radius: 3px; +} + +div.vis-configuration.vis-config-header { + font-size: 18px; + font-weight: bold; +} + +div.vis-configuration.vis-config-label { + width: 120px; + height: 25px; + line-height: 25px; +} + +div.vis-configuration.vis-config-label.vis-config-s3 { + width: 110px; +} +div.vis-configuration.vis-config-label.vis-config-s4 { + width: 100px; +} + +div.vis-configuration.vis-config-colorBlock { + top: 1px; + width: 30px; + height: 19px; + border: 1px solid #444444; + border-radius: 2px; + padding: 0px; + margin: 0px; + cursor: pointer; +} + +input.vis-configuration.vis-config-checkbox { + left: -5px; +} + +input.vis-configuration.vis-config-rangeinput { + position: relative; + top: -5px; + width: 60px; + /*height:13px;*/ + padding: 1px; + margin: 0; + pointer-events: none; +} + +input.vis-configuration.vis-config-range { + /*removes default webkit styles*/ + -webkit-appearance: none; + + /*fix for FF unable to apply focus style bug */ + border: 0px solid white; + background-color: rgba(0, 0, 0, 0); + + /*required for proper track sizing in FF*/ + width: 300px; + height: 20px; +} +input.vis-configuration.vis-config-range::-webkit-slider-runnable-track { + width: 300px; + height: 5px; + background: #dedede; /* Old browsers */ + background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* FF3.6+ */ + background: -webkit-gradient( + linear, + left top, + left bottom, + color-stop(0%, #dedede), + color-stop(99%, #c8c8c8) + ); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient( + top, + #dedede 0%, + #c8c8c8 99% + ); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient( + top, + #dedede 0%, + #c8c8c8 99% + ); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* IE10+ */ + background: linear-gradient(to bottom, #dedede 0%, #c8c8c8 99%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */ + + border: 1px solid #999999; + box-shadow: #aaaaaa 0px 0px 3px 0px; + border-radius: 3px; +} +input.vis-configuration.vis-config-range::-webkit-slider-thumb { + -webkit-appearance: none; + border: 1px solid #14334b; + height: 17px; + width: 17px; + border-radius: 50%; + background: #3876c2; /* Old browsers */ + background: -moz-linear-gradient(top, #3876c2 0%, #385380 100%); /* FF3.6+ */ + background: -webkit-gradient( + linear, + left top, + left bottom, + color-stop(0%, #3876c2), + color-stop(100%, #385380) + ); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient( + top, + #3876c2 0%, + #385380 100% + ); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient( + top, + #3876c2 0%, + #385380 100% + ); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #3876c2 0%, #385380 100%); /* IE10+ */ + background: linear-gradient(to bottom, #3876c2 0%, #385380 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380',GradientType=0 ); /* IE6-9 */ + box-shadow: #111927 0px 0px 1px 0px; + margin-top: -7px; +} +input.vis-configuration.vis-config-range:focus { + outline: none; +} +input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track { + background: #9d9d9d; /* Old browsers */ + background: -moz-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); /* FF3.6+ */ + background: -webkit-gradient( + linear, + left top, + left bottom, + color-stop(0%, #9d9d9d), + color-stop(99%, #c8c8c8) + ); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient( + top, + #9d9d9d 0%, + #c8c8c8 99% + ); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient( + top, + #9d9d9d 0%, + #c8c8c8 99% + ); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); /* IE10+ */ + background: linear-gradient(to bottom, #9d9d9d 0%, #c8c8c8 99%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */ +} + +input.vis-configuration.vis-config-range::-moz-range-track { + width: 300px; + height: 10px; + background: #dedede; /* Old browsers */ + background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* FF3.6+ */ + background: -webkit-gradient( + linear, + left top, + left bottom, + color-stop(0%, #dedede), + color-stop(99%, #c8c8c8) + ); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient( + top, + #dedede 0%, + #c8c8c8 99% + ); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient( + top, + #dedede 0%, + #c8c8c8 99% + ); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* IE10+ */ + background: linear-gradient(to bottom, #dedede 0%, #c8c8c8 99%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */ + + border: 1px solid #999999; + box-shadow: #aaaaaa 0px 0px 3px 0px; + border-radius: 3px; +} +input.vis-configuration.vis-config-range::-moz-range-thumb { + border: none; + height: 16px; + width: 16px; + + border-radius: 50%; + background: #385380; +} + +/*hide the outline behind the border*/ +input.vis-configuration.vis-config-range:-moz-focusring { + outline: 1px solid white; + outline-offset: -1px; +} + +input.vis-configuration.vis-config-range::-ms-track { + width: 300px; + height: 5px; + + /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */ + background: transparent; + + /*leave room for the larger thumb to overflow with a transparent border */ + border-color: transparent; + border-width: 6px 0; + + /*remove default tick marks*/ + color: transparent; +} +input.vis-configuration.vis-config-range::-ms-fill-lower { + background: #777; + border-radius: 10px; +} +input.vis-configuration.vis-config-range::-ms-fill-upper { + background: #ddd; + border-radius: 10px; +} +input.vis-configuration.vis-config-range::-ms-thumb { + border: none; + height: 16px; + width: 16px; + border-radius: 50%; + background: #385380; +} +input.vis-configuration.vis-config-range:focus::-ms-fill-lower { + background: #888; +} +input.vis-configuration.vis-config-range:focus::-ms-fill-upper { + background: #ccc; +} + +.vis-configuration-popup { + position: absolute; + background: rgba(57, 76, 89, 0.85); + border: 2px solid #f2faff; + line-height: 30px; + height: 30px; + width: 150px; + text-align: center; + color: #ffffff; + font-size: 14px; + border-radius: 4px; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; +} +.vis-configuration-popup:after, +.vis-configuration-popup:before { + left: 100%; + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} + +.vis-configuration-popup:after { + border-color: rgba(136, 183, 213, 0); + border-left-color: rgba(57, 76, 89, 0.85); + border-width: 8px; + margin-top: -8px; +} +.vis-configuration-popup:before { + border-color: rgba(194, 225, 245, 0); + border-left-color: #f2faff; + border-width: 12px; + margin-top: -12px; +} +`;Wn(mF);var vF=`div.vis-tooltip { + position: absolute; + visibility: hidden; + padding: 5px; + white-space: nowrap; + + font-family: verdana; + font-size: 14px; + color: #000000; + background-color: #f5f4ed; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #808074; + + box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2); + pointer-events: none; + + z-index: 5; +} +`;Wn(vF);var h0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Y(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var d0={},Ms,c0;function Te(){if(c0)return Ms;c0=1;var r=function(e){return e&&e.Math===Math&&e};return Ms=r(typeof globalThis=="object"&&globalThis)||r(typeof window=="object"&&window)||r(typeof self=="object"&&self)||r(typeof h0=="object"&&h0)||r(typeof Ms=="object"&&Ms)||function(){return this}()||Function("return this")(),Ms}var tI,u0;function te(){return u0||(u0=1,tI=function(r){try{return!!r()}catch{return!0}}),tI}var iI,f0;function Qs(){if(f0)return iI;f0=1;var r=te();return iI=!r(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")}),iI}var nI,p0;function Ia(){if(p0)return nI;p0=1;var r=Qs(),e=Function.prototype,t=e.apply,i=e.call;return nI=typeof Reflect=="object"&&Reflect.apply||(r?i.bind(t):function(){return i.apply(t,arguments)}),nI}var rI,m0;function ne(){if(m0)return rI;m0=1;var r=Qs(),e=Function.prototype,t=e.call,i=r&&e.bind.bind(t,t);return rI=r?i:function(n){return function(){return t.apply(n,arguments)}},rI}var sI,v0;function bi(){if(v0)return sI;v0=1;var r=ne(),e=r({}.toString),t=r("".slice);return sI=function(i){return t(e(i),8,-1)},sI}var gI,b0;function Zp(){if(b0)return gI;b0=1;var r=bi(),e=ne();return gI=function(t){if(r(t)==="Function")return e(t)},gI}var oI,y0;function Ke(){if(y0)return oI;y0=1;var r=typeof document=="object"&&document.all;return oI=typeof r>"u"&&r!==void 0?function(e){return typeof e=="function"||e===r}:function(e){return typeof e=="function"},oI}var aI={},AI,w0;function Fe(){if(w0)return AI;w0=1;var r=te();return AI=!r(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),AI}var CI,x0;function pt(){if(x0)return CI;x0=1;var r=Qs(),e=Function.prototype.call;return CI=r?e.bind(e):function(){return e.apply(e,arguments)},CI}var II={},S0;function la(){if(S0)return II;S0=1;var r={}.propertyIsEnumerable,e=Object.getOwnPropertyDescriptor,t=e&&!r.call({1:2},1);return II.f=t?function(n){var s=e(this,n);return!!s&&s.enumerable}:r,II}var lI,E0;function Js(){return E0||(E0=1,lI=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}),lI}var hI,T0;function ha(){if(T0)return hI;T0=1;var r=ne(),e=te(),t=bi(),i=Object,n=r("".split);return hI=e(function(){return!i("z").propertyIsEnumerable(0)})?function(s){return t(s)==="String"?n(s,""):i(s)}:i,hI}var dI,k0;function Br(){return k0||(k0=1,dI=function(r){return r==null}),dI}var cI,O0;function _i(){if(O0)return cI;O0=1;var r=Br(),e=TypeError;return cI=function(t){if(r(t))throw new e("Can't call method on "+t);return t},cI}var uI,R0;function ni(){if(R0)return uI;R0=1;var r=ha(),e=_i();return uI=function(t){return r(e(t))},uI}var fI,D0;function Ue(){if(D0)return fI;D0=1;var r=Ke();return fI=function(e){return typeof e=="object"?e!==null:r(e)},fI}var pI,P0;function le(){return P0||(P0=1,pI={}),pI}var mI,M0;function Et(){if(M0)return mI;M0=1;var r=le(),e=Te(),t=Ke(),i=function(n){return t(n)?n:void 0};return mI=function(n,s){return arguments.length<2?i(r[n])||i(e[n]):r[n]&&r[n][s]||e[n]&&e[n][s]},mI}var vI,N0;function Re(){if(N0)return vI;N0=1;var r=ne();return vI=r({}.isPrototypeOf),vI}var bI,B0;function _r(){if(B0)return bI;B0=1;var r=Te(),e=r.navigator,t=e&&e.userAgent;return bI=t?String(t):"",bI}var yI,_0;function $s(){if(_0)return yI;_0=1;var r=Te(),e=_r(),t=r.process,i=r.Deno,n=t&&t.versions||i&&i.version,s=n&&n.v8,g,o;return s&&(g=s.split("."),o=g[0]>0&&g[0]<4?1:+(g[0]+g[1])),!o&&e&&(g=e.match(/Edge\/(\d+)/),(!g||g[1]>=74)&&(g=e.match(/Chrome\/(\d+)/),g&&(o=+g[1]))),yI=o,yI}var wI,F0;function Fr(){if(F0)return wI;F0=1;var r=$s(),e=te(),t=Te(),i=t.String;return wI=!!Object.getOwnPropertySymbols&&!e(function(){var n=Symbol("symbol detection");return!i(n)||!(Object(n)instanceof Symbol)||!Symbol.sham&&r&&r<41}),wI}var xI,L0;function zD(){if(L0)return xI;L0=1;var r=Fr();return xI=r&&!Symbol.sham&&typeof Symbol.iterator=="symbol",xI}var SI,z0;function eg(){if(z0)return SI;z0=1;var r=Et(),e=Ke(),t=Re(),i=zD(),n=Object;return SI=i?function(s){return typeof s=="symbol"}:function(s){var g=r("Symbol");return e(g)&&t(g.prototype,n(s))},SI}var EI,q0;function Lr(){if(q0)return EI;q0=1;var r=String;return EI=function(e){try{return r(e)}catch{return"Object"}},EI}var TI,V0;function yi(){if(V0)return TI;V0=1;var r=Ke(),e=Lr(),t=TypeError;return TI=function(i){if(r(i))return i;throw new t(e(i)+" is not a function")},TI}var kI,W0;function jp(){if(W0)return kI;W0=1;var r=yi(),e=Br();return kI=function(t,i){var n=t[i];return e(n)?void 0:r(n)},kI}var OI,G0;function bF(){if(G0)return OI;G0=1;var r=pt(),e=Ke(),t=Ue(),i=TypeError;return OI=function(n,s){var g,o;if(s==="string"&&e(g=n.toString)&&!t(o=r(g,n))||e(g=n.valueOf)&&!t(o=r(g,n))||s!=="string"&&e(g=n.toString)&&!t(o=r(g,n)))return o;throw new i("Can't convert object to primitive value")},OI}var RI={exports:{}},DI,Z0;function zr(){return Z0||(Z0=1,DI=!0),DI}var PI,j0;function yF(){if(j0)return PI;j0=1;var r=Te(),e=Object.defineProperty;return PI=function(t,i){try{e(r,t,{value:i,configurable:!0,writable:!0})}catch{r[t]=i}return i},PI}var H0;function Hp(){if(H0)return RI.exports;H0=1;var r=zr(),e=Te(),t=yF(),i="__core-js_shared__",n=RI.exports=e[i]||t(i,{});return(n.versions||(n.versions=[])).push({version:"3.44.0",mode:r?"pure":"global",copyright:"\xA9 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.44.0/LICENSE",source:"https://github.com/zloirock/core-js"}),RI.exports}var MI,Y0;function qr(){if(Y0)return MI;Y0=1;var r=Hp();return MI=function(e,t){return r[e]||(r[e]=t||{})},MI}var NI,K0;function mt(){if(K0)return NI;K0=1;var r=_i(),e=Object;return NI=function(t){return e(r(t))},NI}var BI,U0;function He(){if(U0)return BI;U0=1;var r=ne(),e=mt(),t=r({}.hasOwnProperty);return BI=Object.hasOwn||function(n,s){return t(e(n),s)},BI}var _I,X0;function da(){if(X0)return _I;X0=1;var r=ne(),e=0,t=Math.random(),i=r(1.1.toString);return _I=function(n){return"Symbol("+(n===void 0?"":n)+")_"+i(++e+t,36)},_I}var FI,Q0;function Ve(){if(Q0)return FI;Q0=1;var r=Te(),e=qr(),t=He(),i=da(),n=Fr(),s=zD(),g=r.Symbol,o=e("wks"),a=s?g.for||g:g&&g.withoutSetter||i;return FI=function(A){return t(o,A)||(o[A]=n&&t(g,A)?g[A]:a("Symbol."+A)),o[A]},FI}var LI,J0;function qD(){if(J0)return LI;J0=1;var r=pt(),e=Ue(),t=eg(),i=jp(),n=bF(),s=Ve(),g=TypeError,o=s("toPrimitive");return LI=function(a,A){if(!e(a)||t(a))return a;var C=i(a,o),I;if(C){if(A===void 0&&(A="default"),I=r(C,a,A),!e(I)||t(I))return I;throw new g("Can't convert object to primitive value")}return A===void 0&&(A="number"),n(a,A)},LI}var zI,$0;function Yp(){if($0)return zI;$0=1;var r=qD(),e=eg();return zI=function(t){var i=r(t,"string");return e(i)?i:i+""},zI}var qI,ew;function VD(){if(ew)return qI;ew=1;var r=Te(),e=Ue(),t=r.document,i=e(t)&&e(t.createElement);return qI=function(n){return i?t.createElement(n):{}},qI}var VI,tw;function WD(){if(tw)return VI;tw=1;var r=Fe(),e=te(),t=VD();return VI=!r&&!e(function(){return Object.defineProperty(t("div"),"a",{get:function(){return 7}}).a!==7}),VI}var iw;function ca(){if(iw)return aI;iw=1;var r=Fe(),e=pt(),t=la(),i=Js(),n=ni(),s=Yp(),g=He(),o=WD(),a=Object.getOwnPropertyDescriptor;return aI.f=r?a:function(C,I){if(C=n(C),I=s(I),o)try{return a(C,I)}catch{}if(g(C,I))return i(!e(t.f,C,I),C[I])},aI}var WI,nw;function wF(){if(nw)return WI;nw=1;var r=te(),e=Ke(),t=/#|\.prototype\./,i=function(a,A){var C=s[n(a)];return C===o?!0:C===g?!1:e(A)?r(A):!!A},n=i.normalize=function(a){return String(a).replace(t,".").toLowerCase()},s=i.data={},g=i.NATIVE="N",o=i.POLYFILL="P";return WI=i,WI}var GI,rw;function tg(){if(rw)return GI;rw=1;var r=Zp(),e=yi(),t=Qs(),i=r(r.bind);return GI=function(n,s){return e(n),s===void 0?n:t?i(n,s):function(){return n.apply(s,arguments)}},GI}var ZI={},jI,sw;function GD(){if(sw)return jI;sw=1;var r=Fe(),e=te();return jI=r&&e(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),jI}var HI,gw;function wi(){if(gw)return HI;gw=1;var r=Ue(),e=String,t=TypeError;return HI=function(i){if(r(i))return i;throw new t(e(i)+" is not an object")},HI}var ow;function zt(){if(ow)return ZI;ow=1;var r=Fe(),e=WD(),t=GD(),i=wi(),n=Yp(),s=TypeError,g=Object.defineProperty,o=Object.getOwnPropertyDescriptor,a="enumerable",A="configurable",C="writable";return ZI.f=r?t?function(l,h,d){if(i(l),h=n(h),i(d),typeof l=="function"&&h==="prototype"&&"value"in d&&C in d&&!d[C]){var c=o(l,h);c&&c[C]&&(l[h]=d.value,d={configurable:A in d?d[A]:c[A],enumerable:a in d?d[a]:c[a],writable:!1})}return g(l,h,d)}:g:function(l,h,d){if(i(l),h=n(h),i(d),e)try{return g(l,h,d)}catch{}if("get"in d||"set"in d)throw new s("Accessors not supported");return"value"in d&&(l[h]=d.value),l},ZI}var YI,aw;function Vr(){if(aw)return YI;aw=1;var r=Fe(),e=zt(),t=Js();return YI=r?function(i,n,s){return e.f(i,n,t(1,s))}:function(i,n,s){return i[n]=s,i},YI}var KI,Aw;function Z(){if(Aw)return KI;Aw=1;var r=Te(),e=Ia(),t=Zp(),i=Ke(),n=ca().f,s=wF(),g=le(),o=tg(),a=Vr(),A=He(),C=function(I){var l=function(h,d,c){if(this instanceof l){switch(arguments.length){case 0:return new I;case 1:return new I(h);case 2:return new I(h,d)}return new I(h,d,c)}return e(I,this,arguments)};return l.prototype=I.prototype,l};return KI=function(I,l){var h=I.target,d=I.global,c=I.stat,f=I.proto,u=d?r:c?r[h]:r[h]&&r[h].prototype,p=d?g:g[h]||a(g,h,{})[h],v=p.prototype,m,b,w,x,y,S,k,R,E;for(x in l)m=s(d?x:h+(c?".":"#")+x,I.forced),b=!m&&u&&A(u,x),S=p[x],b&&(I.dontCallGetSet?(E=n(u,x),k=E&&E.value):k=u[x]),y=b&&k?k:l[x],!(!m&&!f&&typeof S==typeof y)&&(I.bind&&b?R=o(y,r):I.wrap&&b?R=C(y):f&&i(y)?R=t(y):R=y,(I.sham||y&&y.sham||S&&S.sham)&&a(R,"sham",!0),a(p,x,R),f&&(w=h+"Prototype",A(g,w)||a(g,w,{}),a(g[w],x,y),I.real&&v&&(m||!v[x])&&a(v,x,y)))},KI}var UI,Cw;function xF(){if(Cw)return UI;Cw=1;var r=Math.ceil,e=Math.floor;return UI=Math.trunc||function(i){var n=+i;return(n>0?e:r)(n)},UI}var XI,Iw;function Wr(){if(Iw)return XI;Iw=1;var r=xF();return XI=function(e){var t=+e;return t!==t||t===0?0:r(t)},XI}var QI,lw;function ua(){if(lw)return QI;lw=1;var r=Wr(),e=Math.max,t=Math.min;return QI=function(i,n){var s=r(i);return s<0?e(s+n,0):t(s,n)},QI}var JI,hw;function ZD(){if(hw)return JI;hw=1;var r=Wr(),e=Math.min;return JI=function(t){var i=r(t);return i>0?e(i,9007199254740991):0},JI}var $I,dw;function ri(){if(dw)return $I;dw=1;var r=ZD();return $I=function(e){return r(e.length)},$I}var el,cw;function Kp(){if(cw)return el;cw=1;var r=ni(),e=ua(),t=ri(),i=function(n){return function(s,g,o){var a=r(s),A=t(a);if(A===0)return!n&&-1;var C=e(o,A),I;if(n&&g!==g){for(;A>C;)if(I=a[C++],I!==I)return!0}else for(;A>C;C++)if((n||C in a)&&a[C]===g)return n||C||0;return!n&&-1}};return el={includes:i(!0),indexOf:i(!1)},el}var tl,uw;function ig(){return uw||(uw=1,tl={}),tl}var il,fw;function jD(){if(fw)return il;fw=1;var r=ne(),e=He(),t=ni(),i=Kp().indexOf,n=ig(),s=r([].push);return il=function(g,o){var a=t(g),A=0,C=[],I;for(I in a)!e(n,I)&&e(a,I)&&s(C,I);for(;o.length>A;)e(a,I=o[A++])&&(~i(C,I)||s(C,I));return C},il}var nl,pw;function Up(){return pw||(pw=1,nl=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]),nl}var rl,mw;function ng(){if(mw)return rl;mw=1;var r=jD(),e=Up();return rl=Object.keys||function(i){return r(i,e)},rl}var sl={},vw;function fa(){return vw||(vw=1,sl.f=Object.getOwnPropertySymbols),sl}var gl,bw;function SF(){if(bw)return gl;bw=1;var r=Fe(),e=ne(),t=pt(),i=te(),n=ng(),s=fa(),g=la(),o=mt(),a=ha(),A=Object.assign,C=Object.defineProperty,I=e([].concat);return gl=!A||i(function(){if(r&&A({b:1},A(C({},"a",{enumerable:!0,get:function(){C(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var l={},h={},d=Symbol("assign detection"),c="abcdefghijklmnopqrst";return l[d]=7,c.split("").forEach(function(f){h[f]=f}),A({},l)[d]!==7||n(A({},h)).join("")!==c})?function(h,d){for(var c=o(h),f=arguments.length,u=1,p=s.f,v=g.f;f>u;)for(var m=a(arguments[u++]),b=p?I(n(m),p(m)):n(m),w=b.length,x=0,y;w>x;)y=b[x++],(!r||t(v,m,y))&&(c[y]=m[y]);return c}:A,gl}var yw;function EF(){if(yw)return d0;yw=1;var r=Z(),e=SF();return r({target:"Object",stat:!0,arity:2,forced:Object.assign!==e},{assign:e}),d0}var ol,ww;function TF(){if(ww)return ol;ww=1,EF();var r=le();return ol=r.Object.assign,ol}var al,xw;function kF(){if(xw)return al;xw=1;var r=TF();return al=r,al}var Al,Sw;function OF(){return Sw||(Sw=1,Al=kF()),Al}var RF=OF(),_e=Y(RF),Ew={},Cl,Tw;function Gr(){if(Tw)return Cl;Tw=1;var r=ne();return Cl=r([].slice),Cl}var Il,kw;function DF(){if(kw)return Il;kw=1;var r=ne(),e=yi(),t=Ue(),i=He(),n=Gr(),s=Qs(),g=Function,o=r([].concat),a=r([].join),A={},C=function(I,l,h){if(!i(A,l)){for(var d=[],c=0;c=.1;)d=+s[I++%g],d>C&&(d=C),h=Math.sqrt(d*d/(1+A*A)),h=o<0?-h:h,e+=h,t+=A*h,l===!0?r.lineTo(e,t):r.moveTo(e,t),C-=d,l=!l}function GF(r,e,t,i){r.beginPath();let n=6,s=Math.PI*2/n;r.moveTo(e+i,t);for(let g=1;g1?t-1:0),n=1;ne)throw r("Maximum allowed index exceeded");return t},ml}var vl,qw;function pa(){if(qw)return vl;qw=1;var r=Fe(),e=zt(),t=Js();return vl=function(i,n,s){r?e.f(i,n,t(0,s)):i[n]=s},vl}var bl,Vw;function Jp(){if(Vw)return bl;Vw=1;var r=Ve(),e=r("toStringTag"),t={};return t[e]="z",bl=String(t)==="[object z]",bl}var yl,Ww;function on(){if(Ww)return yl;Ww=1;var r=Jp(),e=Ke(),t=bi(),i=Ve(),n=i("toStringTag"),s=Object,g=t(function(){return arguments}())==="Arguments",o=function(a,A){try{return a[A]}catch{}};return yl=r?t:function(a){var A,C,I;return a===void 0?"Undefined":a===null?"Null":typeof(C=o(A=s(a),n))=="string"?C:g?t(A):(I=t(A))==="Object"&&e(A.callee)?"Arguments":I},yl}var wl,Gw;function YF(){if(Gw)return wl;Gw=1;var r=ne(),e=Ke(),t=Hp(),i=r(Function.toString);return e(t.inspectSource)||(t.inspectSource=function(n){return i(n)}),wl=t.inspectSource,wl}var xl,Zw;function XD(){if(Zw)return xl;Zw=1;var r=ne(),e=te(),t=Ke(),i=on(),n=Et(),s=YF(),g=function(){},o=n("Reflect","construct"),a=/^\s*(?:class|function)\b/,A=r(a.exec),C=!a.test(g),I=function(d){if(!t(d))return!1;try{return o(g,[],d),!0}catch{return!1}},l=function(d){if(!t(d))return!1;switch(i(d)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return C||!!A(a,s(d))}catch{return!0}};return l.sham=!0,xl=!o||e(function(){var h;return I(I.call)||!I(Object)||!I(function(){h=!0})||h})?l:I,xl}var Sl,jw;function KF(){if(jw)return Sl;jw=1;var r=gn(),e=XD(),t=Ue(),i=Ve(),n=i("species"),s=Array;return Sl=function(g){var o;return r(g)&&(o=g.constructor,e(o)&&(o===s||r(o.prototype))?o=void 0:t(o)&&(o=o[n],o===null&&(o=void 0))),o===void 0?s:o},Sl}var El,Hw;function ma(){if(Hw)return El;Hw=1;var r=KF();return El=function(e,t){return new(r(e))(t===0?0:t)},El}var Tl,Yw;function rg(){if(Yw)return Tl;Yw=1;var r=te(),e=Ve(),t=$s(),i=e("species");return Tl=function(n){return t>=51||!r(function(){var s=[],g=s.constructor={};return g[i]=function(){return{foo:1}},s[n](Boolean).foo!==1})},Tl}var Kw;function QD(){if(Kw)return Fw;Kw=1;var r=Z(),e=te(),t=gn(),i=Ue(),n=mt(),s=ri(),g=Qp(),o=pa(),a=ma(),A=rg(),C=Ve(),I=$s(),l=C("isConcatSpreadable"),h=I>=51||!e(function(){var f=[];return f[l]=!1,f.concat()[0]!==f}),d=function(f){if(!i(f))return!1;var u=f[l];return u!==void 0?!!u:t(f)},c=!h||!A("concat");return r({target:"Array",proto:!0,arity:1,forced:c},{concat:function(u){var p=n(this),v=a(p,0),m=0,b,w,x,y,S;for(b=-1,x=arguments.length;bl;)t.f(o,h=C[l++],A[h]);return o},Ol}var Rl,$w;function UF(){if($w)return Rl;$w=1;var r=Et();return Rl=r("document","documentElement"),Rl}var Dl,e1;function va(){if(e1)return Dl;e1=1;var r=qr(),e=da(),t=r("keys");return Dl=function(i){return t[i]||(t[i]=e(i))},Dl}var Pl,t1;function sg(){if(t1)return Pl;t1=1;var r=wi(),e=$p(),t=Up(),i=ig(),n=UF(),s=VD(),g=va(),o=">",a="<",A="prototype",C="script",I=g("IE_PROTO"),l=function(){},h=function(p){return a+C+o+p+a+"/"+C+o},d=function(p){p.write(h("")),p.close();var v=p.parentWindow.Object;return p=null,v},c=function(){var p=s("iframe"),v="java"+C+":",m;return p.style.display="none",n.appendChild(p),p.src=String(v),m=p.contentWindow.document,m.open(),m.write(h("document.F=Object")),m.close(),m.F},f,u=function(){try{f=new ActiveXObject("htmlfile")}catch{}u=typeof document<"u"?document.domain&&f?d(f):c():d(f);for(var p=t.length;p--;)delete u[A][t[p]];return u()};return i[I]=!0,Pl=Object.create||function(v,m){var b;return v!==null?(l[A]=r(v),b=new l,l[A]=null,b[I]=v):b=u(),m===void 0?b:e.f(b,m)},Pl}var Ml={},i1;function ba(){if(i1)return Ml;i1=1;var r=jD(),e=Up(),t=e.concat("length","prototype");return Ml.f=Object.getOwnPropertyNames||function(n){return r(n,t)},Ml}var Nl={},n1;function em(){if(n1)return Nl;n1=1;var r=bi(),e=ni(),t=ba().f,i=Gr(),n=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(g){try{return t(g)}catch{return i(n)}};return Nl.f=function(o){return n&&r(o)==="Window"?s(o):t(e(o))},Nl}var Bl,r1;function gg(){if(r1)return Bl;r1=1;var r=Vr();return Bl=function(e,t,i,n){return n&&n.enumerable?e[t]=i:r(e,t,i),e},Bl}var _l,s1;function tm(){if(s1)return _l;s1=1;var r=zt();return _l=function(e,t,i){return r.f(e,t,i)},_l}var Fl={},g1;function ya(){if(g1)return Fl;g1=1;var r=Ve();return Fl.f=r,Fl}var Ll,o1;function De(){if(o1)return Ll;o1=1;var r=le(),e=He(),t=ya(),i=zt().f;return Ll=function(n){var s=r.Symbol||(r.Symbol={});e(s,n)||i(s,n,{value:t.f(n)})},Ll}var zl,a1;function JD(){if(a1)return zl;a1=1;var r=pt(),e=Et(),t=Ve(),i=gg();return zl=function(){var n=e("Symbol"),s=n&&n.prototype,g=s&&s.valueOf,o=t("toPrimitive");s&&!s[o]&&i(s,o,function(a){return r(g,this)},{arity:1})},zl}var ql,A1;function XF(){if(A1)return ql;A1=1;var r=Jp(),e=on();return ql=r?{}.toString:function(){return"[object "+e(this)+"]"},ql}var Vl,C1;function Gn(){if(C1)return Vl;C1=1;var r=Jp(),e=zt().f,t=Vr(),i=He(),n=XF(),s=Ve(),g=s("toStringTag");return Vl=function(o,a,A,C){var I=A?o:o&&o.prototype;I&&(i(I,g)||e(I,g,{configurable:!0,value:a}),C&&!r&&t(I,"toString",n))},Vl}var Wl,I1;function $D(){if(I1)return Wl;I1=1;var r=Te(),e=Ke(),t=r.WeakMap;return Wl=e(t)&&/native code/.test(String(t)),Wl}var Gl,l1;function Zn(){if(l1)return Gl;l1=1;var r=$D(),e=Te(),t=Ue(),i=Vr(),n=He(),s=Hp(),g=va(),o=ig(),a="Object already initialized",A=e.TypeError,C=e.WeakMap,I,l,h,d=function(p){return h(p)?l(p):I(p,{})},c=function(p){return function(v){var m;if(!t(v)||(m=l(v)).type!==p)throw new A("Incompatible receiver, "+p+" required");return m}};if(r||s.state){var f=s.state||(s.state=new C);f.get=f.get,f.has=f.has,f.set=f.set,I=function(p,v){if(f.has(p))throw new A(a);return v.facade=p,f.set(p,v),v},l=function(p){return f.get(p)||{}},h=function(p){return f.has(p)}}else{var u=g("state");o[u]=!0,I=function(p,v){if(n(p,u))throw new A(a);return v.facade=p,i(p,u,v),v},l=function(p){return n(p,u)?p[u]:{}},h=function(p){return n(p,u)}}return Gl={set:I,get:l,has:h,enforce:d,getterFor:c},Gl}var Zl,h1;function an(){if(h1)return Zl;h1=1;var r=tg(),e=ne(),t=ha(),i=mt(),n=ri(),s=ma(),g=e([].push),o=function(a){var A=a===1,C=a===2,I=a===3,l=a===4,h=a===6,d=a===7,c=a===5||h;return function(f,u,p,v){for(var m=i(f),b=t(m),w=n(b),x=r(u,p),y=0,S=v||s,k=A?S(f,w):C||d?S(f,0):void 0,R,E;w>y;y++)if((c||y in b)&&(R=b[y],E=x(R,y,m),a))if(A)k[y]=E;else if(E)switch(a){case 3:return!0;case 5:return R;case 6:return y;case 2:g(k,R)}else switch(a){case 4:return!1;case 7:g(k,R)}return h?-1:I||l?l:k}};return Zl={forEach:o(0),map:o(1),filter:o(2),some:o(3),every:o(4),find:o(5),findIndex:o(6),filterReject:o(7)},Zl}var d1;function QF(){if(d1)return Xw;d1=1;var r=Z(),e=Te(),t=pt(),i=ne(),n=zr(),s=Fe(),g=Fr(),o=te(),a=He(),A=Re(),C=wi(),I=ni(),l=Yp(),h=qt(),d=Js(),c=sg(),f=ng(),u=ba(),p=em(),v=fa(),m=ca(),b=zt(),w=$p(),x=la(),y=gg(),S=tm(),k=qr(),R=va(),E=ig(),O=da(),N=Ve(),F=ya(),U=De(),K=JD(),ae=Gn(),re=Zn(),Pe=an().forEach,X=R("hidden"),he="Symbol",ke="prototype",Ge=re.set,Tt=re.getterFor(he),Xe=Object[ke],si=e.Symbol,Ur=si&&si[ke],kP=e.RangeError,OP=e.TypeError,_a=e.QObject,ym=m.f,An=b.f,wm=p.f,RP=x.f,xm=i([].push),Si=k("symbols"),Xr=k("op-symbols"),DP=k("wks"),Fa=!_a||!_a[ke]||!_a[ke].findChild,Sm=function(ye,ee,se){var ge=ym(Xe,ee);ge&&delete Xe[ee],An(ye,ee,se),ge&&ye!==Xe&&An(Xe,ee,ge)},La=s&&o(function(){return c(An({},"a",{get:function(){return An(this,"a",{value:7}).a}})).a!==7})?Sm:An,za=function(ye,ee){var se=Si[ye]=c(Ur);return Ge(se,{type:he,tag:ye,description:ee}),s||(se.description=ee),se},mg=function(ee,se,ge){ee===Xe&&mg(Xr,se,ge),C(ee);var we=l(se);return C(ge),a(Si,we)?(ge.enumerable?(a(ee,X)&&ee[X][we]&&(ee[X][we]=!1),ge=c(ge,{enumerable:d(0,!1)})):(a(ee,X)||An(ee,X,d(1,c(null))),ee[X][we]=!0),La(ee,we,ge)):An(ee,we,ge)},qa=function(ee,se){C(ee);var ge=I(se),we=f(ge).concat(km(ge));return Pe(we,function(lt){(!s||t(Va,ge,lt))&&mg(ee,lt,ge[lt])}),ee},PP=function(ee,se){return se===void 0?c(ee):qa(c(ee),se)},Va=function(ee){var se=l(ee),ge=t(RP,this,se);return this===Xe&&a(Si,se)&&!a(Xr,se)?!1:ge||!a(this,se)||!a(Si,se)||a(this,X)&&this[X][se]?ge:!0},Em=function(ee,se){var ge=I(ee),we=l(se);if(!(ge===Xe&&a(Si,we)&&!a(Xr,we))){var lt=ym(ge,we);return lt&&a(Si,we)&&!(a(ge,X)&&ge[X][we])&&(lt.enumerable=!0),lt}},Tm=function(ee){var se=wm(I(ee)),ge=[];return Pe(se,function(we){!a(Si,we)&&!a(E,we)&&xm(ge,we)}),ge},km=function(ye){var ee=ye===Xe,se=wm(ee?Xr:I(ye)),ge=[];return Pe(se,function(we){a(Si,we)&&(!ee||a(Xe,we))&&xm(ge,Si[we])}),ge};return g||(si=function(){if(A(Ur,this))throw new OP("Symbol is not a constructor");var ee=!arguments.length||arguments[0]===void 0?void 0:h(arguments[0]),se=O(ee),ge=function(we){var lt=this===void 0?e:this;lt===Xe&&t(ge,Xr,we),a(lt,X)&&a(lt[X],se)&&(lt[X][se]=!1);var Om=d(1,we);try{La(lt,se,Om)}catch(Rm){if(!(Rm instanceof kP))throw Rm;Sm(lt,se,Om)}};return s&&Fa&&La(Xe,se,{configurable:!0,set:ge}),za(se,ee)},Ur=si[ke],y(Ur,"toString",function(){return Tt(this).tag}),y(si,"withoutSetter",function(ye){return za(O(ye),ye)}),x.f=Va,b.f=mg,w.f=qa,m.f=Em,u.f=p.f=Tm,v.f=km,F.f=function(ye){return za(N(ye),ye)},s&&(S(Ur,"description",{configurable:!0,get:function(){return Tt(this).description}}),n||y(Xe,"propertyIsEnumerable",Va,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!g,sham:!g},{Symbol:si}),Pe(f(DP),function(ye){U(ye)}),r({target:he,stat:!0,forced:!g},{useSetter:function(){Fa=!0},useSimple:function(){Fa=!1}}),r({target:"Object",stat:!0,forced:!g,sham:!s},{create:PP,defineProperty:mg,defineProperties:qa,getOwnPropertyDescriptor:Em}),r({target:"Object",stat:!0,forced:!g},{getOwnPropertyNames:Tm}),K(),ae(si,he),E[X]=!0,Xw}var c1={},jl,u1;function e2(){if(u1)return jl;u1=1;var r=Fr();return jl=r&&!!Symbol.for&&!!Symbol.keyFor,jl}var f1;function JF(){if(f1)return c1;f1=1;var r=Z(),e=Et(),t=He(),i=qt(),n=qr(),s=e2(),g=n("string-to-symbol-registry"),o=n("symbol-to-string-registry");return r({target:"Symbol",stat:!0,forced:!s},{for:function(a){var A=i(a);if(t(g,A))return g[A];var C=e("Symbol")(A);return g[A]=C,o[C]=A,C}}),c1}var p1={},m1;function $F(){if(m1)return p1;m1=1;var r=Z(),e=He(),t=eg(),i=Lr(),n=qr(),s=e2(),g=n("symbol-to-string-registry");return r({target:"Symbol",stat:!0,forced:!s},{keyFor:function(a){if(!t(a))throw new TypeError(i(a)+" is not a symbol");if(e(g,a))return g[a]}}),p1}var v1={},Hl,b1;function eL(){if(b1)return Hl;b1=1;var r=ne(),e=gn(),t=Ke(),i=bi(),n=qt(),s=r([].push);return Hl=function(g){if(t(g))return g;if(e(g)){for(var o=g.length,a=[],A=0;A=d.length)return h.target=null,g(void 0,!0);switch(h.kind){case"keys":return g(c,!1);case"values":return g(d[c],!1)}return g([c,d[c]],!1)},"values");var l=t.Arguments=t.Array;if(e("keys"),e("values"),e("entries"),!o&&a&&l.name!=="values")try{n(l,"name",{value:"values"})}catch{}return oh}var ah,vx;function bL(){return vx||(vx=1,ah={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}),ah}var bx;function Li(){if(bx)return sx;bx=1,Fi();var r=bL(),e=Te(),t=Gn(),i=Zr();for(var n in r)t(e[n],n),i[n]=i.Array;return sx}var Ah,yx;function A2(){if(yx)return Ah;yx=1;var r=dL();return Li(),Ah=r,Ah}var Ch,wx;function yL(){return wx||(wx=1,Ch=A2()),Ch}var wL=yL(),xL=Y(wL),xx={},Sx;function SL(){if(Sx)return xx;Sx=1;var r=Z(),e=gn(),t=XD(),i=Ue(),n=ua(),s=ri(),g=ni(),o=pa(),a=Ve(),A=rg(),C=Gr(),I=A("slice"),l=a("species"),h=Array,d=Math.max;return r({target:"Array",proto:!0,forced:!I},{slice:function(f,u){var p=g(this),v=s(p),m=n(f,v),b=n(u===void 0?v:u,v),w,x,y;if(e(p)&&(w=p.constructor,t(w)&&(w===h||e(w.prototype))?w=void 0:i(w)&&(w=w[l],w===null&&(w=void 0)),w===h||w===void 0))return C(p,m,b);for(x=new(w===void 0?h:w)(d(b-m,0)),y=0;m1?arguments[1]:void 0)}}),Vx}var yh,Gx;function GL(){if(Gx)return yh;Gx=1,WL();var r=We();return yh=r("Array","map"),yh}var wh,Zx;function ZL(){if(Zx)return wh;Zx=1;var r=Re(),e=GL(),t=Array.prototype;return wh=function(i){var n=i.map;return i===t||r(t,i)&&n===t.map?e:n},wh}var xh,jx;function jL(){if(jx)return xh;jx=1;var r=ZL();return xh=r,xh}var Sh,Hx;function HL(){return Hx||(Hx=1,Sh=jL()),Sh}var YL=HL(),tt=Y(YL),Yx={},Kx;function KL(){if(Kx)return Yx;Kx=1;var r=Z(),e=mt(),t=ng(),i=te(),n=i(function(){t(1)});return r({target:"Object",stat:!0,forced:n},{keys:function(g){return t(e(g))}}),Yx}var Eh,Ux;function UL(){if(Ux)return Eh;Ux=1,KL();var r=le();return Eh=r.Object.keys,Eh}var Th,Xx;function XL(){if(Xx)return Th;Xx=1;var r=UL();return Th=r,Th}var kh,Qx;function QL(){return Qx||(Qx=1,kh=XL()),kh}var JL=QL(),Se=Y(JL),Jx={},$x;function $L(){if($x)return Jx;$x=1;var r=Z(),e=ne(),t=Date,i=e(t.prototype.getTime);return r({target:"Date",stat:!0},{now:function(){return i(new t)}}),Jx}var Oh,eS;function ez(){if(eS)return Oh;eS=1,$L();var r=le();return Oh=r.Date.now,Oh}var Rh,tS;function tz(){if(tS)return Rh;tS=1;var r=ez();return Rh=r,Rh}var Dh,iS;function iz(){return iS||(iS=1,Dh=tz()),Dh}var nz=iz(),Wo=Y(nz),nS={},Ph,rS;function jr(){if(rS)return Ph;rS=1;var r=te();return Ph=function(e,t){var i=[][e];return!!i&&r(function(){i.call(null,t||function(){return 1},1)})},Ph}var Mh,sS;function rz(){if(sS)return Mh;sS=1;var r=an().forEach,e=jr(),t=e("forEach");return Mh=t?[].forEach:function(n){return r(this,n,arguments.length>1?arguments[1]:void 0)},Mh}var gS;function sz(){if(gS)return nS;gS=1;var r=Z(),e=rz();return r({target:"Array",proto:!0,forced:[].forEach!==e},{forEach:e}),nS}var Nh,oS;function gz(){if(oS)return Nh;oS=1,sz();var r=We();return Nh=r("Array","forEach"),Nh}var Bh,aS;function oz(){if(aS)return Bh;aS=1;var r=gz();return Bh=r,Bh}var _h,AS;function az(){if(AS)return _h;AS=1;var r=on(),e=He(),t=Re(),i=oz(),n=Array.prototype,s={DOMTokenList:!0,NodeList:!0};return _h=function(g){var o=g.forEach;return g===n||t(n,g)&&o===n.forEach||e(s,r(g))?i:o},_h}var Fh,CS;function Az(){return CS||(CS=1,Fh=az()),Fh}var Cz=Az(),oe=Y(Cz),IS={},lS;function Iz(){if(lS)return IS;lS=1;var r=Z(),e=ne(),t=gn(),i=e([].reverse),n=[1,2];return r({target:"Array",proto:!0,forced:String(n)===String(n.reverse())},{reverse:function(){return t(this)&&(this.length=this.length),i(this)}}),IS}var Lh,hS;function lz(){if(hS)return Lh;hS=1,Iz();var r=We();return Lh=r("Array","reverse"),Lh}var zh,dS;function hz(){if(dS)return zh;dS=1;var r=Re(),e=lz(),t=Array.prototype;return zh=function(i){var n=i.reverse;return i===t||r(t,i)&&n===t.reverse?e:n},zh}var qh,cS;function dz(){if(cS)return qh;cS=1;var r=hz();return qh=r,qh}var Vh,uS;function cz(){return uS||(uS=1,Vh=dz()),Vh}var uz=cz(),Bn=Y(uz),fS={},Wh,pS;function fz(){if(pS)return Wh;pS=1;var r=Fe(),e=gn(),t=TypeError,i=Object.getOwnPropertyDescriptor,n=r&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(s){return s instanceof TypeError}}();return Wh=n?function(s,g){if(e(s)&&!i(s,"length").writable)throw new t("Cannot set read only .length");return s.length=g}:function(s,g){return s.length=g},Wh}var Gh,mS;function I2(){if(mS)return Gh;mS=1;var r=Lr(),e=TypeError;return Gh=function(t,i){if(!delete t[i])throw new e("Cannot delete property "+r(i)+" of "+r(t))},Gh}var vS;function pz(){if(vS)return fS;vS=1;var r=Z(),e=mt(),t=ua(),i=Wr(),n=ri(),s=fz(),g=Qp(),o=ma(),a=pa(),A=I2(),C=rg(),I=C("splice"),l=Math.max,h=Math.min;return r({target:"Array",proto:!0,forced:!I},{splice:function(c,f){var u=e(this),p=n(u),v=t(c,p),m=arguments.length,b,w,x,y,S,k;for(m===0?b=w=0:m===1?(b=0,w=p-v):(b=m-2,w=h(l(i(f),0),p-v)),g(p+b-w),x=o(u,w),y=0;yp-w+b;y--)A(u,y-1)}else if(b>w)for(y=p-w;y>v;y--)S=y+w-1,k=y+b-1,S in u?u[k]=u[S]:A(u,k);for(y=0;y1?arguments[1]:void 0)}}),i("includes"),SS}var Kh,TS;function Sz(){if(TS)return Kh;TS=1,xz();var r=We();return Kh=r("Array","includes"),Kh}var kS={},Uh,OS;function Ez(){if(OS)return Uh;OS=1;var r=Ue(),e=bi(),t=Ve(),i=t("match");return Uh=function(n){var s;return r(n)&&((s=n[i])!==void 0?!!s:e(n)==="RegExp")},Uh}var Xh,RS;function Tz(){if(RS)return Xh;RS=1;var r=Ez(),e=TypeError;return Xh=function(t){if(r(t))throw new e("The method doesn't accept regular expressions");return t},Xh}var Qh,DS;function kz(){if(DS)return Qh;DS=1;var r=Ve(),e=r("match");return Qh=function(t){var i=/./;try{"/./"[t](i)}catch{try{return i[e]=!1,"/./"[t](i)}catch{}}return!1},Qh}var PS;function Oz(){if(PS)return kS;PS=1;var r=Z(),e=ne(),t=Tz(),i=_i(),n=qt(),s=kz(),g=e("".indexOf);return r({target:"String",proto:!0,forced:!s("includes")},{includes:function(a){return!!~g(n(i(this)),n(t(a)),arguments.length>1?arguments[1]:void 0)}}),kS}var Jh,MS;function Rz(){if(MS)return Jh;MS=1,Oz();var r=We();return Jh=r("String","includes"),Jh}var $h,NS;function Dz(){if(NS)return $h;NS=1;var r=Re(),e=Sz(),t=Rz(),i=Array.prototype,n=String.prototype;return $h=function(s){var g=s.includes;return s===i||r(i,s)&&g===i.includes?e:typeof s=="string"||s===n||r(n,s)&&g===n.includes?t:g},$h}var ed,BS;function Pz(){if(BS)return ed;BS=1;var r=Dz();return ed=r,ed}var td,_S;function Mz(){return _S||(_S=1,td=Pz()),td}var Nz=Mz(),$i=Y(Nz),FS={},LS;function Bz(){if(LS)return FS;LS=1;var r=Z(),e=te(),t=mt(),i=xa(),n=o2(),s=e(function(){i(1)});return r({target:"Object",stat:!0,forced:s,sham:!n},{getPrototypeOf:function(o){return i(t(o))}}),FS}var id,zS;function _z(){if(zS)return id;zS=1,Bz();var r=le();return id=r.Object.getPrototypeOf,id}var nd,qS;function Fz(){if(qS)return nd;qS=1;var r=_z();return nd=r,nd}var rd,VS;function Lz(){return VS||(VS=1,rd=Fz()),rd}var zz=Lz(),WS=Y(zz),sd,GS;function qz(){if(GS)return sd;GS=1,QD();var r=We();return sd=r("Array","concat"),sd}var gd,ZS;function Vz(){if(ZS)return gd;ZS=1;var r=Re(),e=qz(),t=Array.prototype;return gd=function(i){var n=i.concat;return i===t||r(t,i)&&n===t.concat?e:n},gd}var od,jS;function Wz(){if(jS)return od;jS=1;var r=Vz();return od=r,od}var ad,HS;function Gz(){return HS||(HS=1,ad=Wz()),ad}var Zz=Gz(),l2=Y(Zz),YS={},KS;function jz(){if(KS)return YS;KS=1;var r=Z(),e=an().filter,t=rg(),i=t("filter");return r({target:"Array",proto:!0,forced:!i},{filter:function(s){return e(this,s,arguments.length>1?arguments[1]:void 0)}}),YS}var Ad,US;function Hz(){if(US)return Ad;US=1,jz();var r=We();return Ad=r("Array","filter"),Ad}var Cd,XS;function Yz(){if(XS)return Cd;XS=1;var r=Re(),e=Hz(),t=Array.prototype;return Cd=function(i){var n=i.filter;return i===t||r(t,i)&&n===t.filter?e:n},Cd}var Id,QS;function Kz(){if(QS)return Id;QS=1;var r=Yz();return Id=r,Id}var ld,JS;function Uz(){return JS||(JS=1,ld=Kz()),ld}var Xz=Uz(),ze=Y(Xz),$S={},hd,eE;function Qz(){if(eE)return hd;eE=1;var r=Fe(),e=te(),t=ne(),i=xa(),n=ng(),s=ni(),g=la().f,o=t(g),a=t([].push),A=r&&e(function(){var I=Object.create(null);return I[2]=2,!o(I,2)}),C=function(I){return function(l){for(var h=s(l),d=n(h),c=A&&i(h)===null,f=d.length,u=0,p=[],v;f>u;)v=d[u++],(!r||(c?v in h:o(h,v)))&&a(p,I?[v,h[v]]:h[v]);return p}};return hd={entries:C(!0),values:C(!1)},hd}var tE;function Jz(){if(tE)return $S;tE=1;var r=Z(),e=Qz().values;return r({target:"Object",stat:!0},{values:function(i){return e(i)}}),$S}var dd,iE;function $z(){if(iE)return dd;iE=1,Jz();var r=le();return dd=r.Object.values,dd}var cd,nE;function e3(){if(nE)return cd;nE=1;var r=$z();return cd=r,cd}var ud,rE;function t3(){return rE||(rE=1,ud=e3()),ud}var i3=t3(),n3=Y(i3),sE={},fd,gE;function rm(){return gE||(gE=1,fd=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`),fd}var pd,oE;function h2(){if(oE)return pd;oE=1;var r=ne(),e=_i(),t=qt(),i=rm(),n=r("".replace),s=RegExp("^["+i+"]+"),g=RegExp("(^|[^"+i+"])["+i+"]+$"),o=function(a){return function(A){var C=t(e(A));return a&1&&(C=n(C,s,"")),a&2&&(C=n(C,g,"$1")),C}};return pd={start:o(1),end:o(2),trim:o(3)},pd}var md,aE;function r3(){if(aE)return md;aE=1;var r=Te(),e=te(),t=ne(),i=qt(),n=h2().trim,s=rm(),g=r.parseInt,o=r.Symbol,a=o&&o.iterator,A=/^[+-]?0x/i,C=t(A.exec),I=g(s+"08")!==8||g(s+"0x16")!==22||a&&!e(function(){g(Object(a))});return md=I?function(h,d){var c=n(i(h));return g(c,d>>>0||(C(A,c)?16:10))}:g,md}var AE;function s3(){if(AE)return sE;AE=1;var r=Z(),e=r3();return r({global:!0,forced:parseInt!==e},{parseInt:e}),sE}var vd,CE;function g3(){if(CE)return vd;CE=1,s3();var r=le();return vd=r.parseInt,vd}var bd,IE;function o3(){if(IE)return bd;IE=1;var r=g3();return bd=r,bd}var yd,lE;function a3(){return lE||(lE=1,yd=o3()),yd}var A3=a3(),$t=Y(A3),hE={},dE;function C3(){if(dE)return hE;dE=1;var r=Z(),e=Zp(),t=Kp().indexOf,i=jr(),n=e([].indexOf),s=!!n&&1/n([1],1,-0)<0,g=s||!i("indexOf");return r({target:"Array",proto:!0,forced:g},{indexOf:function(a){var A=arguments.length>1?arguments[1]:void 0;return s?n(this,a,A)||0:t(this,a,A)}}),hE}var wd,cE;function I3(){if(cE)return wd;cE=1,C3();var r=We();return wd=r("Array","indexOf"),wd}var xd,uE;function l3(){if(uE)return xd;uE=1;var r=Re(),e=I3(),t=Array.prototype;return xd=function(i){var n=i.indexOf;return i===t||r(t,i)&&n===t.indexOf?e:n},xd}var Sd,fE;function h3(){if(fE)return Sd;fE=1;var r=l3();return Sd=r,Sd}var Ed,pE;function d3(){return pE||(pE=1,Ed=h3()),Ed}var c3=d3(),de=Y(c3),mE={},vE;function u3(){if(vE)return mE;vE=1;var r=Z(),e=Fe(),t=sg();return r({target:"Object",stat:!0,sham:!e},{create:t}),mE}var Td,bE;function f3(){if(bE)return Td;bE=1,u3();var r=le(),e=r.Object;return Td=function(i,n){return e.create(i,n)},Td}var kd,yE;function p3(){if(yE)return kd;yE=1;var r=f3();return kd=r,kd}var Od,wE;function m3(){return wE||(wE=1,Od=p3()),Od}var v3=m3(),en=Y(v3),xE={},Rd,SE;function b3(){if(SE)return Rd;SE=1;var r=Wr(),e=qt(),t=_i(),i=RangeError;return Rd=function(s){var g=e(t(this)),o="",a=r(s);if(a<0||a===1/0)throw new i("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(g+=g))a&1&&(o+=g);return o},Rd}var Dd,EE;function y3(){if(EE)return Dd;EE=1;var r=ne(),e=ZD(),t=qt(),i=b3(),n=_i(),s=r(i),g=r("".slice),o=Math.ceil,a=function(A){return function(C,I,l){var h=t(n(C)),d=e(I),c=h.length,f=l===void 0?" ":t(l),u,p;return d<=c||f===""?h:(u=d-c,p=s(f,o(u/f.length)),p.length>u&&(p=g(p,0,u)),A?h+p:p+h)}};return Dd={start:a(!1),end:a(!0)},Dd}var Pd,TE;function w3(){if(TE)return Pd;TE=1;var r=ne(),e=te(),t=y3().start,i=RangeError,n=isFinite,s=Math.abs,g=Date.prototype,o=g.toISOString,a=r(g.getTime),A=r(g.getUTCDate),C=r(g.getUTCFullYear),I=r(g.getUTCHours),l=r(g.getUTCMilliseconds),h=r(g.getUTCMinutes),d=r(g.getUTCMonth),c=r(g.getUTCSeconds);return Pd=e(function(){return o.call(new Date(-5e13-1))!=="0385-07-25T07:06:39.999Z"})||!e(function(){o.call(new Date(NaN))})?function(){if(!n(a(this)))throw new i("Invalid time value");var u=this,p=C(u),v=l(u),m=p<0?"-":p>9999?"+":"";return m+t(s(p),m?6:4,0)+"-"+t(d(u)+1,2,0)+"-"+t(A(u),2,0)+"T"+t(I(u),2,0)+":"+t(h(u),2,0)+":"+t(c(u),2,0)+"."+t(v,3,0)+"Z"}:o,Pd}var kE;function x3(){if(kE)return xE;kE=1;var r=Z(),e=pt(),t=mt(),i=qD(),n=w3(),s=bi(),g=te(),o=g(function(){return new Date(NaN).toJSON()!==null||e(Date.prototype.toJSON,{toISOString:function(){return 1}})!==1});return r({target:"Date",proto:!0,forced:o},{toJSON:function(A){var C=t(this),I=i(C,"number");return typeof I=="number"&&!isFinite(I)?null:!("toISOString"in C)&&s(C)==="Date"?e(n,C):C.toISOString()}}),xE}var Md,OE;function S3(){if(OE)return Md;OE=1,x3(),t2();var r=le(),e=Ia();return r.JSON||(r.JSON={stringify:JSON.stringify}),Md=function(i,n,s){return e(r.JSON.stringify,null,arguments)},Md}var Nd,RE;function E3(){if(RE)return Nd;RE=1;var r=S3();return Nd=r,Nd}var Bd,DE;function T3(){return DE||(DE=1,Bd=E3()),Bd}var k3=T3(),Hr=Y(k3),PE={},ME={},_d,NE;function d2(){if(NE)return _d;NE=1;var r=Te(),e=_r(),t=bi(),i=function(n){return e.slice(0,n.length)===n};return _d=function(){return i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":r.Bun&&typeof Bun.version=="string"?"BUN":r.Deno&&typeof Deno.version=="object"?"DENO":t(r.process)==="process"?"NODE":r.window&&r.document?"BROWSER":"REST"}(),_d}var Fd,BE;function O3(){if(BE)return Fd;BE=1;var r=TypeError;return Fd=function(e,t){if(eI,c=t(l)?l:o(l),f=d?s(arguments,I):[],u=d?function(){e(c,this,f)}:c;return C?A(u,h):A(u)}:A},Ld}var FE;function R3(){if(FE)return ME;FE=1;var r=Z(),e=Te(),t=c2(),i=t(e.setInterval,!0);return r({global:!0,bind:!0,forced:e.setInterval!==i},{setInterval:i}),ME}var LE={},zE;function D3(){if(zE)return LE;zE=1;var r=Z(),e=Te(),t=c2(),i=t(e.setTimeout,!0);return r({global:!0,bind:!0,forced:e.setTimeout!==i},{setTimeout:i}),LE}var qE;function u2(){return qE||(qE=1,R3(),D3()),PE}var zd,VE;function P3(){if(VE)return zd;VE=1,u2();var r=le();return zd=r.setTimeout,zd}var qd,WE;function M3(){return WE||(WE=1,qd=P3()),qd}var N3=M3(),ci=Y(N3),GE={},Vd,ZE;function B3(){if(ZE)return Vd;ZE=1;var r=mt(),e=ua(),t=ri();return Vd=function(n){for(var s=r(this),g=t(s),o=arguments.length,a=e(o>1?arguments[1]:void 0,g),A=o>2?arguments[2]:void 0,C=A===void 0?g:e(A,g);C>a;)s[a++]=n;return s},Vd}var jE;function _3(){if(jE)return GE;jE=1;var r=Z(),e=B3(),t=wa();return r({target:"Array",proto:!0},{fill:e}),t("fill"),GE}var Wd,HE;function F3(){if(HE)return Wd;HE=1,_3();var r=We();return Wd=r("Array","fill"),Wd}var Gd,YE;function L3(){if(YE)return Gd;YE=1;var r=Re(),e=F3(),t=Array.prototype;return Gd=function(i){var n=i.fill;return i===t||r(t,i)&&n===t.fill?e:n},Gd}var Zd,KE;function z3(){if(KE)return Zd;KE=1;var r=L3();return Zd=r,Zd}var jd,UE;function q3(){return UE||(UE=1,jd=z3()),jd}var V3=q3(),og=Y(V3);function ii(){return ii=Object.assign||function(r){for(var e=1;e"u"?{style:{}}:document.createElement("div"),G3="function",xr=Math.round,zn=Math.abs,sm=Date.now;function Sa(r,e){for(var t,i,n=e[0].toUpperCase()+e.slice(1),s=0;s"u"?Di={}:Di=window;var f2=Sa(W3.style,"touchAction"),p2=f2!==void 0;function Z3(){if(!p2)return!1;var r={},e=Di.CSS&&Di.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(t){return r[t]=e?Di.CSS.supports("touch-action",t):!0}),r}var m2="compute",v2="auto",Bf="manipulation",_n="none",Gs="pan-x",Zs="pan-y",Fo=Z3(),j3=/mobile|tablet|ip(ad|hone|od)|android/i,b2="ontouchstart"in Di,H3=Sa(Di,"PointerEvent")!==void 0,Y3=b2&&j3.test(navigator.userAgent),ag="touch",K3="pen",gm="mouse",U3="kinect",X3=25,It=1,jn=2,qe=4,ft=8,Go=1,Ag=2,Cg=4,Ig=8,Dr=16,ui=Ag|Cg,Fn=Ig|Dr,y2=ui|Fn,w2=["x","y"],Zo=["clientX","clientY"];function Pi(r,e,t){var i;if(r)if(r.forEach)r.forEach(e,t);else if(r.length!==void 0)for(i=0;i-1}function Q3(r){if(Mn(r,_n))return _n;var e=Mn(r,Gs),t=Mn(r,Zs);return e&&t?_n:e||t?e?Gs:Zs:Mn(r,Bf)?Bf:v2}var x2=function(){function r(t,i){this.manager=t,this.set(i)}var e=r.prototype;return e.set=function(i){i===m2&&(i=this.compute()),p2&&this.manager.element.style&&Fo[i]&&(this.manager.element.style[f2]=i),this.actions=i.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var i=[];return Pi(this.manager.recognizers,function(n){Ea(n.options.enable,[n])&&(i=i.concat(n.getTouchAction()))}),Q3(i.join(" "))},e.preventDefaults=function(i){var n=i.srcEvent,s=i.offsetDirection;if(this.manager.session.prevented){n.preventDefault();return}var g=this.actions,o=Mn(g,_n)&&!Fo[_n],a=Mn(g,Zs)&&!Fo[Zs],A=Mn(g,Gs)&&!Fo[Gs];if(o){var C=i.pointers.length===1,I=i.distance<2,l=i.deltaTime<250;if(C&&I&&l)return}if(!(A&&a)&&(o||a&&s&ui||A&&s&Fn))return this.preventSrc(n)},e.preventSrc=function(i){this.manager.session.prevented=!0,i.preventDefault()},r}();function om(r,e){for(;r;){if(r===e)return!0;r=r.parentNode}return!1}function S2(r){var e=r.length;if(e===1)return{x:xr(r[0].clientX),y:xr(r[0].clientY)};for(var t=0,i=0,n=0;n=zn(e)?r<0?Ag:Cg:e<0?Ig:Dr}function J3(r,e){var t=e.center,i=r.offsetDelta||{},n=r.prevDelta||{},s=r.prevInput||{};(e.eventType===It||s.eventType===qe)&&(n=r.prevDelta={x:s.deltaX||0,y:s.deltaY||0},i=r.offsetDelta={x:t.x,y:t.y}),e.deltaX=n.x+(t.x-i.x),e.deltaY=n.y+(t.y-i.y)}function T2(r,e,t){return{x:e/r||0,y:t/r||0}}function $3(r,e){return jo(e[0],e[1],Zo)/jo(r[0],r[1],Zo)}function e5(r,e){return _f(e[1],e[0],Zo)+_f(r[1],r[0],Zo)}function t5(r,e){var t=r.lastInterval||e,i=e.timeStamp-t.timeStamp,n,s,g,o;if(e.eventType!==ft&&(i>X3||t.velocity===void 0)){var a=e.deltaX-t.deltaX,A=e.deltaY-t.deltaY,C=T2(i,a,A);s=C.x,g=C.y,n=zn(C.x)>zn(C.y)?C.x:C.y,o=E2(a,A),r.lastInterval=e}else n=t.velocity,s=t.velocityX,g=t.velocityY,o=t.direction;e.velocity=n,e.velocityX=s,e.velocityY=g,e.direction=o}function i5(r,e){var t=r.session,i=e.pointers,n=i.length;t.firstInput||(t.firstInput=QE(e)),n>1&&!t.firstMultiple?t.firstMultiple=QE(e):n===1&&(t.firstMultiple=!1);var s=t.firstInput,g=t.firstMultiple,o=g?g.center:s.center,a=e.center=S2(i);e.timeStamp=sm(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=_f(o,a),e.distance=jo(o,a),J3(t,e),e.offsetDirection=E2(e.deltaX,e.deltaY);var A=T2(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=A.x,e.overallVelocityY=A.y,e.overallVelocity=zn(A.x)>zn(A.y)?A.x:A.y,e.scale=g?$3(g.pointers,i):1,e.rotation=g?e5(g.pointers,i):0,e.maxPointers=t.prevInput?e.pointers.length>t.prevInput.maxPointers?e.pointers.length:t.prevInput.maxPointers:e.pointers.length,t5(t,e);var C=r.element,I=e.srcEvent,l;I.composedPath?l=I.composedPath()[0]:I.path?l=I.path[0]:l=I.target,om(l,C)&&(C=l),e.target=C}function n5(r,e,t){var i=t.pointers.length,n=t.changedPointers.length,s=e&It&&i-n===0,g=e&(qe|ft)&&i-n===0;t.isFirst=!!s,t.isFinal=!!g,s&&(r.session={}),t.eventType=e,i5(r,t),r.emit("hammer.input",t),r.recognize(t),r.session.prevInput=t}function js(r){return r.trim().split(/\s+/g)}function Ls(r,e,t){Pi(js(e),function(i){r.addEventListener(i,t,!1)})}function zs(r,e,t){Pi(js(e),function(i){r.removeEventListener(i,t,!1)})}function JE(r){var e=r.ownerDocument||r;return e.defaultView||e.parentWindow||window}var Yr=function(){function r(t,i){var n=this;this.manager=t,this.callback=i,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(s){Ea(t.options.enable,[t])&&n.handler(s)},this.init()}var e=r.prototype;return e.handler=function(){},e.init=function(){this.evEl&&Ls(this.element,this.evEl,this.domHandler),this.evTarget&&Ls(this.target,this.evTarget,this.domHandler),this.evWin&&Ls(JE(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&zs(this.element,this.evEl,this.domHandler),this.evTarget&&zs(this.target,this.evTarget,this.domHandler),this.evWin&&zs(JE(this.element),this.evWin,this.domHandler)},r}();function qn(r,e,t){if(r.indexOf&&!t)return r.indexOf(e);for(var i=0;ia[e]}):i=i.sort()),i}var g5={touchstart:It,touchmove:jn,touchend:qe,touchcancel:ft},o5="touchstart touchmove touchend touchcancel",Am=function(r){Vt(e,r);function e(){var i;return e.prototype.evTarget=o5,i=r.apply(this,arguments)||this,i.targetIds={},i}var t=e.prototype;return t.handler=function(n){var s=g5[n.type],g=a5.call(this,n,s);g&&this.callback(this.manager,s,{pointers:g[0],changedPointers:g[1],pointerType:ag,srcEvent:n})},e}(Yr);function a5(r,e){var t=Hs(r.touches),i=this.targetIds;if(e&(It|jn)&&t.length===1)return i[t[0].identifier]=!0,[t,t];var n,s,g=Hs(r.changedTouches),o=[],a=this.target;if(s=t.filter(function(A){return om(A.target,a)}),e===It)for(n=0;n-1&&n.splice(o,1)};setTimeout(s,l5)}}function h5(r,e){r&It?(this.primaryTouch=e.changedPointers[0].identifier,eT.call(this,e)):r&(qe|ft)&&eT.call(this,e)}function d5(r){for(var e=r.srcEvent.clientX,t=r.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(n,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(i){return!!this.simultaneous[i.id]},e.emit=function(i){var n=this,s=this.state;function g(o){n.manager.emit(o,i)}s=tn&&g(n.options.event+tT(s))},e.tryEmit=function(i){if(this.canEmit())return this.emit(i);this.state=li},e.canEmit=function(){for(var i=0;is.threshold&&a&s.direction},t.attrTest=function(n){return Mr.prototype.attrTest.call(this,n)&&(this.state&Lt||!(this.state&Lt)&&this.directionTest(n))},t.emit=function(n){this.pX=n.deltaX,this.pY=n.deltaY;var s=P2(n.direction);s&&(n.additionalEvent=this.options.event+s),r.prototype.emit.call(this,n)},e}(Mr),M2=function(r){Vt(e,r);function e(i){return i===void 0&&(i={}),r.call(this,ii({event:"swipe",threshold:10,velocity:.3,direction:ui|Fn,pointers:1},i))||this}var t=e.prototype;return t.getTouchAction=function(){return Im.prototype.getTouchAction.call(this)},t.attrTest=function(n){var s=this.options.direction,g;return s&(ui|Fn)?g=n.overallVelocity:s&ui?g=n.overallVelocityX:s&Fn&&(g=n.overallVelocityY),r.prototype.attrTest.call(this,n)&&s&n.offsetDirection&&n.distance>this.options.threshold&&n.maxPointers===this.options.pointers&&zn(g)>this.options.velocity&&n.eventType&qe},t.emit=function(n){var s=P2(n.offsetDirection);s&&this.manager.emit(this.options.event+s,n),this.manager.emit(this.options.event,n)},e}(Mr),N2=function(r){Vt(e,r);function e(i){return i===void 0&&(i={}),r.call(this,ii({event:"pinch",threshold:0,pointers:2},i))||this}var t=e.prototype;return t.getTouchAction=function(){return[_n]},t.attrTest=function(n){return r.prototype.attrTest.call(this,n)&&(Math.abs(n.scale-1)>this.options.threshold||this.state&Lt)},t.emit=function(n){if(n.scale!==1){var s=n.scale<1?"in":"out";n.additionalEvent=this.options.event+s}r.prototype.emit.call(this,n)},e}(Mr),B2=function(r){Vt(e,r);function e(i){return i===void 0&&(i={}),r.call(this,ii({event:"rotate",threshold:0,pointers:2},i))||this}var t=e.prototype;return t.getTouchAction=function(){return[_n]},t.attrTest=function(n){return r.prototype.attrTest.call(this,n)&&(Math.abs(n.rotation)>this.options.threshold||this.state&Lt)},e}(Mr),_2=function(r){Vt(e,r);function e(i){var n;return i===void 0&&(i={}),n=r.call(this,ii({event:"press",pointers:1,time:251,threshold:9},i))||this,n._timer=null,n._input=null,n}var t=e.prototype;return t.getTouchAction=function(){return[v2]},t.process=function(n){var s=this,g=this.options,o=n.pointers.length===g.pointers,a=n.distanceg.time;if(this._input=n,!a||!o||n.eventType&(qe|ft)&&!A)this.reset();else if(n.eventType&It)this.reset(),this._timer=setTimeout(function(){s.state=Mi,s.tryEmit()},g.time);else if(n.eventType&qe)return Mi;return li},t.reset=function(){clearTimeout(this._timer)},t.emit=function(n){this.state===Mi&&(n&&n.eventType&qe?this.manager.emit(this.options.event+"up",n):(this._input.timeStamp=sm(),this.manager.emit(this.options.event,this._input)))},e}(lg),F2={domEvents:!1,touchAction:m2,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},iT=[[B2,{enable:!1}],[N2,{enable:!1},["rotate"]],[M2,{direction:ui}],[Im,{direction:ui},["swipe"]],[Ff],[Ff,{event:"doubletap",taps:2},["tap"]],[_2]],p5=1,nT=2;function rT(r,e){var t=r.element;if(t.style){var i;Pi(r.options.cssProps,function(n,s){i=Sa(t.style,s),e?(r.oldCssProps[i]=t.style[i],t.style[i]=n):t.style[i]=r.oldCssProps[i]||""}),e||(r.oldCssProps={})}}function m5(r,e){var t=document.createEvent("Event");t.initEvent(r,!0,!0),t.gesture=e,e.target.dispatchEvent(t)}var sT=function(){function r(t,i){var n=this;this.options=Ln({},F2,i||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=c5(this),this.touchAction=new x2(this,this.options.touchAction),rT(this,!0),Pi(this.options.recognizers,function(s){var g=n.add(new s[0](s[1]));s[2]&&g.recognizeWith(s[2]),s[3]&&g.requireFailure(s[3])},this)}var e=r.prototype;return e.set=function(i){return Ln(this.options,i),i.touchAction&&this.touchAction.update(),i.inputTarget&&(this.input.destroy(),this.input.target=i.inputTarget,this.input.init()),this},e.stop=function(i){this.session.stopped=i?nT:p5},e.recognize=function(i){var n=this.session;if(!n.stopped){this.touchAction.preventDefaults(i);var s,g=this.recognizers,o=n.curRecognizer;(!o||o&&o.state&Mi)&&(n.curRecognizer=null,o=null);for(var a=0;a\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",g=window.console&&(window.console.warn||window.console.log);return g&&g.call(window.console,i,s),r.apply(this,arguments)}}var z2=L2(function(r,e,t){for(var i=Object.keys(e),n=0;n1?e-1:0),i=1;i2)return Ho(W2(e[0],e[1]),...ei(e).call(e,2));let i=e[0],n=e[1];if(i instanceof Date&&n instanceof Date)return i.setTime(n.getTime()),i;for(let s of _L(n))Object.prototype.propertyIsEnumerable.call(n,s)&&(n[s]===V2?delete i[s]:i[s]!==null&&n[s]!==null&&typeof i[s]=="object"&&typeof n[s]=="object"&&!Ce(i[s])&&!Ce(n[s])?i[s]=Ho(i[s],n[s]):i[s]=G2(n[s]));return i}function G2(r){return Ce(r)?tt(r).call(r,e=>G2(e)):typeof r=="object"&&r!==null?r instanceof Date?new Date(r.getTime()):Ho({},r):r}function Z2(r){for(let e of Se(r))r[e]===V2?delete r[e]:typeof r[e]=="object"&&r[e]!==null&&Z2(r[e])}function Ta(){for(var r=arguments.length,e=new Array(r),t=0;t{let g=2091639*e+n*23283064365386963e-26;return e=t,t=i,i=g-(n=g|0)};return s.uint32=()=>s()*4294967296,s.fract53=()=>s()+(s()*2097152|0)*11102230246251565e-32,s.algorithm="Alea",s.seed=r,s.version="0.9",s}function O5(){let r=R5(),e=r(" "),t=r(" "),i=r(" ");for(let n=0;n>>0,n-=r,n*=r,r=n>>>0,n-=r,r+=n*4294967296}return(r>>>0)*23283064365386963e-26}}function D5(){let r=()=>{};return{on:r,off:r,destroy:r,emit:r,get(){return{set:r}}}}var lm=typeof window<"u"?window.Hammer||q2:function(){return D5()};function hi(r){var e;this._cleanupQueue=[],this.active=!1,this._dom={container:r,overlay:document.createElement("div")},this._dom.overlay.classList.add("vis-overlay"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push(()=>{this._dom.overlay.parentNode.removeChild(this._dom.overlay)});let t=lm(this._dom.overlay);t.on("tap",M(e=this._onTapOverlay).call(e,this)),this._cleanupQueue.push(()=>{t.destroy()});let i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];oe(i).call(i,n=>{t.on(n,s=>{s.srcEvent.stopPropagation()})}),document&&document.body&&(this._onClick=n=>{P5(n.target,r)||this.deactivate()},document.body.addEventListener("click",this._onClick),this._cleanupQueue.push(()=>{document.body.removeEventListener("click",this._onClick)})),this._escListener=n=>{("key"in n?n.key==="Escape":n.keyCode===27)&&this.deactivate()}}UD(hi.prototype);hi.current=null;hi.prototype.destroy=function(){this.deactivate();for(let t of Bn(r=di(e=this._cleanupQueue).call(e,0)).call(r)){var r,e;t()}};hi.prototype.activate=function(){hi.current&&hi.current.deactivate(),hi.current=this,this.active=!0,this._dom.overlay.style.display="none",this._dom.container.classList.add("vis-active"),this.emit("change"),this.emit("activate"),document.body.addEventListener("keydown",this._escListener)};hi.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display="block",this._dom.container.classList.remove("vis-active"),document.body.removeEventListener("keydown",this._escListener),this.emit("change"),this.emit("deactivate")};hi.prototype._onTapOverlay=function(r){this.activate(),r.srcEvent.stopPropagation()};function P5(r,e){for(;r;){if(r===e)return!0;r=r.parentNode}return!1}var M5=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,N5=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,B5=/^rgb\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *\)$/i,_5=/^rgba\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *([01]|0?\.\d+) *\)$/i;function Xi(r){if(r)for(;r.hasChildNodes()===!0;){let e=r.firstChild;e&&(Xi(e),r.removeChild(e))}}function Tr(r){return r instanceof String||typeof r=="string"}function oT(r){return typeof r=="object"&&r!==null}function Vn(r,e,t,i){let n=!1;i===!0&&(n=e[t]===null&&r[t]!==void 0),n?delete r[t]:r[t]=e[t]}function j2(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;for(let i in r)if(e[i]!==void 0)if(e[i]===null||typeof e[i]!="object")Vn(r,e,i,t);else{let n=r[i],s=e[i];oT(n)&&oT(s)&&j2(n,s,t)}}function Kr(r,e,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(Ce(t))throw new TypeError("Arrays are not supported by deepExtend");for(let n=0;n3&&arguments[3]!==void 0?arguments[3]:!1;if(Ce(t))throw new TypeError("Arrays are not supported by deepExtend");for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&!$i(r).call(r,n))if(t[n]&&t[n].constructor===Object)e[n]===void 0&&(e[n]={}),e[n].constructor===Object?ve(e[n],t[n]):Vn(e,t,n,i);else if(Ce(t[n])){e[n]=[];for(let s=0;s2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)||t===!0)if(typeof e[s]=="object"&&e[s]!==null&&WS(e[s])===Object.prototype)r[s]===void 0?r[s]=ve({},e[s],t):typeof r[s]=="object"&&r[s]!==null&&WS(r[s])===Object.prototype?ve(r[s],e[s],t):Vn(r,e,s,i);else if(Ce(e[s])){var n;r[s]=ei(n=e[s]).call(n)}else Vn(r,e,s,i);return r}function Ko(r,e){return[...r,e]}function F5(r){return ei(r).call(r)}function L5(r){return r.getBoundingClientRect().left}function z5(r){return r.getBoundingClientRect().top}function $(r,e){if(Ce(r)){let t=r.length;for(let i=0;i3&&arguments[3]!==void 0?arguments[3]:{},n=function(h){return h!=null},s=function(h){return h!==null&&typeof h=="object"},g=function(h){for(let d in h)if(Object.prototype.hasOwnProperty.call(h,d))return!1;return!0};if(!s(r))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(t))throw new Error("Parameter option must have a value");if(!s(i))throw new Error("Parameter globalOptions must be an object");let o=function(h,d,c){s(h[c])||(h[c]={});let f=d[c],u=h[c];for(let p in f)Object.prototype.hasOwnProperty.call(f,p)&&(u[p]=f[p])},a=e[t],C=s(i)&&!g(i)?i[t]:void 0,I=C?C.enabled:void 0;if(a===void 0)return;if(typeof a=="boolean"){s(r[t])||(r[t]={}),r[t].enabled=a;return}if(a===null&&!s(r[t]))if(n(C))r[t]=en(C);else return;if(!s(a))return;let l=!0;a.enabled!==void 0?l=a.enabled:I!==void 0&&(l=C.enabled),o(r,e,t),r[t].enabled=l}var W5={linear(r){return r},easeInQuad(r){return r*r},easeOutQuad(r){return r*(2-r)},easeInOutQuad(r){return r<.5?2*r*r:-1+(4-2*r)*r},easeInCubic(r){return r*r*r},easeOutCubic(r){return--r*r*r+1},easeInOutCubic(r){return r<.5?4*r*r*r:(r-1)*(2*r-2)*(2*r-2)+1},easeInQuart(r){return r*r*r*r},easeOutQuart(r){return 1- --r*r*r*r},easeInOutQuart(r){return r<.5?8*r*r*r*r:1-8*--r*r*r*r},easeInQuint(r){return r*r*r*r*r},easeOutQuint(r){return 1+--r*r*r*r*r},easeInOutQuint(r){return r<.5?16*r*r*r*r*r:1+16*--r*r*r*r*r}};function Qi(r,e){let t;Ce(e)||(e=[e]);for(let i of r)if(i){t=i[e[0]];for(let n=1;n0&&arguments[0]!==void 0?arguments[0]:1;this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:289/2,y:289/2},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=()=>{},this.closeCallback=()=>{},this._create()}insertTo(e){this.hammer!==void 0&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}setUpdateCallback(e){if(typeof e=="function")this.updateCallback=e;else throw new Error("Function attempted to set as colorPicker update callback is not a function.")}setCloseCallback(e){if(typeof e=="function")this.closeCallback=e;else throw new Error("Function attempted to set as colorPicker closing callback is not a function.")}_isColorString(e){if(typeof e=="string")return G5[e]}setColor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e==="none")return;let i,n=this._isColorString(e);if(n!==void 0&&(e=n),Tr(e)===!0){if(K2(e)===!0){let s=e.substr(4).substr(0,e.length-5).split(",");i={r:s[0],g:s[1],b:s[2],a:1}}else if(V5(e)===!0){let s=e.substr(5).substr(0,e.length-6).split(",");i={r:s[0],g:s[1],b:s[2],a:s[3]}}else if(Y2(e)===!0){let s=hm(e);i={r:s.r,g:s.g,b:s.b,a:1}}}else if(e instanceof Object&&e.r!==void 0&&e.g!==void 0&&e.b!==void 0){let s=e.a!==void 0?e.a:"1.0";i={r:e.r,g:e.g,b:e.b,a:s}}if(i===void 0)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+Hr(e));this._setColor(i,t)}show(){this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}_hide(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)===!0&&(this.previousColor=_e({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",ci(()=>{this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0)},0)}_save(){this.updateCallback(this.color),this.applied=!1,this._hide()}_apply(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}_loadLast(){this.previousColor!==void 0?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}_setColor(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!0&&(this.initialColor=_e({},e)),this.color=e;let i=_s(e.r,e.g,e.b),n=2*Math.PI,s=this.r*i.s,g=this.centerCoordinates.x+s*Math.sin(n*i.h),o=this.centerCoordinates.y+s*Math.cos(n*i.h);this.colorPickerSelector.style.left=g-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=o-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(e)}_setOpacity(e){this.color.a=e/100,this._updatePicker(this.color)}_setBrightness(e){let t=_s(this.color.r,this.color.g,this.color.b);t.v=e/100;let i=Vo(t.h,t.s,t.v);i.a=this.color.a,this.color=i,this._updatePicker()}_updatePicker(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.color,t=_s(e.r,e.g,e.b),i=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);let n=this.colorPickerCanvas.clientWidth,s=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,n,s),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-t.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),og(i).call(i),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}_setSize(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}_create(){var e,t,i,n;if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){let g=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(g.webkitBackingStorePixelRatio||g.mozBackingStorePixelRatio||g.msBackingStorePixelRatio||g.oBackingStorePixelRatio||g.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{let g=document.createElement("DIV");g.style.color="red",g.style.fontWeight="bold",g.style.padding="10px",g.innerText="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(g)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch{}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch{}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);let s=this;this.opacityRange.onchange=function(){s._setOpacity(this.value)},this.opacityRange.oninput=function(){s._setOpacity(this.value)},this.brightnessRange.onchange=function(){s._setBrightness(this.value)},this.brightnessRange.oninput=function(){s._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerText="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerText="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerText="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerText="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerText="cancel",this.cancelButton.onclick=M(e=this._hide).call(e,this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerText="apply",this.applyButton.onclick=M(t=this._apply).call(t,this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerText="save",this.saveButton.onclick=M(i=this._save).call(i,this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerText="load last",this.loadButton.onclick=M(n=this._loadLast).call(n,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}_bindHammer(){this.drag={},this.pinch={},this.hammer=new lm(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("hammer.input",e=>{e.isFirst&&this._moveSelector(e)}),this.hammer.on("tap",e=>{this._moveSelector(e)}),this.hammer.on("panstart",e=>{this._moveSelector(e)}),this.hammer.on("panmove",e=>{this._moveSelector(e)}),this.hammer.on("panend",e=>{this._moveSelector(e)})}_generateHueCircle(){if(this.generated===!1){let e=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);let t=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,t,i);let n,s,g,o;this.centerCoordinates={x:t*.5,y:i*.5},this.r=.49*t;let a=2*Math.PI/360,A=1/360,C=1/this.r,I;for(g=0;g<360;g++)for(o=0;o3&&arguments[3]!==void 0?arguments[3]:1,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:()=>!1;this.parent=e,this.changedOptions=[],this.container=t,this.allowCreation=!1,this.hideOption=s,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},_e(this.options,this.defaultOptions),this.configureOptions=i,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new Z5(n),this.wrapper=void 0}setOptions(e){if(e!==void 0){this.popupHistory={},this._removePopup();let t=!0;if(typeof e=="string")this.options.filter=e;else if(Ce(e))this.options.filter=e.join();else if(typeof e=="object"){if(e==null)throw new TypeError("options cannot be null");e.container!==void 0&&(this.options.container=e.container),ze(e)!==void 0&&(this.options.filter=ze(e)),e.showButton!==void 0&&(this.options.showButton=e.showButton),e.enabled!==void 0&&(t=e.enabled)}else typeof e=="boolean"?(this.options.filter=!0,t=e):typeof e=="function"&&(this.options.filter=e,t=!0);ze(this.options)===!1&&(t=!1),this.options.enabled=t}this._clean()}setModuleOptions(e){this.moduleOptions=e,this.options.enabled===!0&&(this._clean(),this.options.container!==void 0&&(this.container=this.options.container),this._create())}_create(){this._clean(),this.changedOptions=[];let e=ze(this.options),t=0,i=!1;for(let n in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,n)&&(this.allowCreation=!1,i=!1,typeof e=="function"?(i=e(n,[]),i=i||this._handleObject(this.configureOptions[n],[n],!0)):(e===!0||de(e).call(e,n)!==-1)&&(i=!0),i!==!1&&(this.allowCreation=!0,t>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),t++);this._makeButton(),this._push()}_push(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(let e=0;e1?t-1:0),n=1;n{s.appendChild(g)}),this.domElements.push(s),this.domElements.length}return 0}_makeHeader(e){let t=document.createElement("div");t.className="vis-configuration vis-config-header",t.innerText=e,this._makeItem([],t)}_makeLabel(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=document.createElement("div");if(n.className="vis-configuration vis-config-label vis-config-s"+t.length,i===!0){for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(qf("i","b",e))}else n.innerText=e+":";return n}_makeDropdown(e,t,i){let n=document.createElement("select");n.className="vis-configuration vis-config-select";let s=0;t!==void 0&&de(e).call(e,t)!==-1&&(s=de(e).call(e,t));for(let a=0;ag&&g!==1&&(a.max=Math.ceil(t*1.2),C=a.max,A="range increased"),a.value=t):a.value=n;let I=document.createElement("input");I.className="vis-configuration vis-config-rangeinput",I.value=a.value;let l=this;a.onchange=function(){I.value=this.value,l._update(Number(this.value),i)},a.oninput=function(){I.value=this.value};let h=this._makeLabel(i[i.length-1],i),d=this._makeItem(i,h,a,I);A!==""&&this.popupHistory[d]!==C&&(this.popupHistory[d]=C,this._setupPopup(A,d))}_makeButton(){if(this.options.showButton===!0){let e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerText="generate options",e.onclick=()=>{this._printOptions()},e.onmouseover=()=>{e.className="vis-configuration vis-config-button hover"},e.onmouseout=()=>{e.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(e)}}_setupPopup(e,t){if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter{this._removePopup()},this.popupCounter+=1,this.popupDiv={html:i,index:t}}}_removePopup(){this.popupDiv.html!==void 0&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}_showPopupIfNeeded(){if(this.popupDiv.html!==void 0){let t=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=t.left+"px",this.popupDiv.html.style.top=t.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=ci(()=>{this.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=ci(()=>{this._removePopup()},1800)}}_makeCheckbox(e,t,i){let n=document.createElement("input");n.type="checkbox",n.className="vis-configuration vis-config-checkbox",n.checked=e,t!==void 0&&(n.checked=t,t!==e&&(typeof e=="object"?t!==e.enabled&&this.changedOptions.push({path:i,value:t}):this.changedOptions.push({path:i,value:t})));let s=this;n.onchange=function(){s._update(this.checked,i)};let g=this._makeLabel(i[i.length-1],i);this._makeItem(i,g,n)}_makeTextInput(e,t,i){let n=document.createElement("input");n.type="text",n.className="vis-configuration vis-config-text",n.value=t,t!==e&&this.changedOptions.push({path:i,value:t});let s=this;n.onchange=function(){s._update(this.value,i)};let g=this._makeLabel(i[i.length-1],i);this._makeItem(i,g,n)}_makeColorField(e,t,i){let n=e[1],s=document.createElement("div");t=t===void 0?n:t,t!=="none"?(s.className="vis-configuration vis-config-colorBlock",s.style.backgroundColor=t):s.className="vis-configuration vis-config-colorBlock none",t=t===void 0?n:t,s.onclick=()=>{this._showColorPicker(t,s,i)};let g=this._makeLabel(i[i.length-1],i);this._makeItem(i,g,s)}_showColorPicker(e,t,i){t.onclick=function(){},this.colorPicker.insertTo(t),this.colorPicker.show(),this.colorPicker.setColor(e),this.colorPicker.setUpdateCallback(n=>{let s="rgba("+n.r+","+n.g+","+n.b+","+n.a+")";t.style.backgroundColor=s,this._update(s,i)}),this.colorPicker.setCloseCallback(()=>{t.onclick=()=>{this._showColorPicker(e,t,i)}})}_handleObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=!1,s=ze(this.options),g=!1;for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o)){n=!0;let a=e[o],A=Ko(t,o);if(typeof s=="function"&&(n=s(o,t),n===!1&&!Ce(a)&&typeof a!="string"&&typeof a!="boolean"&&a instanceof Object&&(this.allowCreation=!1,n=this._handleObject(a,A,!0),this.allowCreation=i===!1)),n!==!1){g=!0;let C=this._getValue(A);if(Ce(a))this._handleArray(a,C,A);else if(typeof a=="string")this._makeTextInput(a,C,A);else if(typeof a=="boolean")this._makeCheckbox(a,C,A);else if(a instanceof Object){if(!this.hideOption(t,o,this.moduleOptions))if(a.enabled!==void 0){let I=Ko(A,"enabled"),l=this._getValue(I);if(l===!0){let h=this._makeLabel(o,A,!0);this._makeItem(A,h),g=this._handleObject(a,A)||g}else this._makeCheckbox(a,l,A)}else{let I=this._makeLabel(o,A,!0);this._makeItem(A,I),g=this._handleObject(a,A)||g}}else console.error("dont know how to handle",a,o,A)}}return g}_handleArray(e,t,i){typeof e[0]=="string"&&e[0]==="color"?(this._makeColorField(e,t,i),e[1]!==t&&this.changedOptions.push({path:i,value:t})):typeof e[0]=="string"?(this._makeDropdown(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:t})):typeof e[0]=="number"&&(this._makeRange(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:Number(t)}))}_update(e,t){let i=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}_constructOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i;e=e==="true"?!0:e,e=e==="false"?!1:e;for(let s=0;ss-this.padding&&(a=!0),a?g=this.x-i:g=this.x,A?o=this.y-t:o=this.y}else o=this.y-t,o+t+this.padding>n&&(o=n-t-this.padding),os&&(g=s-i-this.padding),gs.distance?a=" in "+Be.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+Be.printLocation(s.path,s.closestMatch,""):n.distance<=g?a='. Did you mean "'+n.closestMatch+'"?'+Be.printLocation(n.path,e):a=". Did you mean one of these: "+Be.print(Se(t))+Be.printLocation(i,e),console.error('%cUnknown option detected: "'+e+'"'+a,Vf),Ns=!0}static findInOptions(e,t,i){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=1e9,g="",o=[],a=e.toLowerCase(),A;for(let I in t){let l;if(t[I].__type__!==void 0&&n===!0){let h=Be.findInOptions(e,t[I],Ko(i,I));s>h.distance&&(g=h.closestMatch,o=h.path,s=h.distance,A=h.indexMatch)}else{var C;de(C=I.toLowerCase()).call(C,a)!==-1&&(A=I),l=Be.levenshteinDistance(e,I),s>l&&(g=I,o=F5(i),s=l)}}return{closestMatch:g,path:o,distance:s,indexMatch:A}}static printLocation(e,t){let n=` + +`+(arguments.length>2&&arguments[2]!==void 0?arguments[2]:`Problem value found at: +`)+`options = { +`;for(let s=0;s":!0,"--":!0},Ji="",Nr=0,J="",H="",ut=At.NULL;function $5(){Nr=0,J=Ji.charAt(0)}function Ye(){Nr++,J=Ji.charAt(Nr)}function br(){return Ji.charAt(Nr+1)}function CT(r){var e=r.charCodeAt(0);return e<47?e===35||e===46:e<59?e>47:e<91?e>64:e<96?e===95:e<123?e>96:!1}function sn(r,e){if(r||(r={}),e)for(var t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r}function eq(r,e,t){for(var i=e.split("."),n=r;i.length;){var s=i.shift();i.length?(n[s]||(n[s]={}),n=n[s]):n[s]=t}}function Q2(r,e){for(var t,i,n=null,s=[r],g=r;g.parent;)s.push(g.parent),g=g.parent;if(g.nodes){for(t=0,i=g.nodes.length;t=0;t--){var o,a=s[t];a.nodes||(a.nodes=[]),de(o=a.nodes).call(o,n)===-1&&a.nodes.push(n)}e.attr&&(n.attr=sn(n.attr,e.attr))}function tq(r,e){if(r.edges||(r.edges=[]),r.edges.push(e),r.edge){var t=sn({},r.edge);e.attr=sn(t,e.attr)}}function J2(r,e,t,i,n){var s={from:e,to:t,type:i};return r.edge&&(s.attr=sn({},r.edge)),s.attr=sn(s.attr||{},n),n!=null&&n.hasOwnProperty("arrows")&&n.arrows!=null&&(s.arrows={to:{enabled:!0,type:n.arrows.type}},n.arrows=null),s}function be(){for(ut=At.NULL,H="";J===" "||J===" "||J===` +`||J==="\r";)Ye();do{var r=!1;if(J==="#"){for(var e=Nr-1;Ji.charAt(e)===" "||Ji.charAt(e)===" ";)e--;if(Ji.charAt(e)===` +`||Ji.charAt(e)===""){for(;J!=""&&J!=` +`;)Ye();r=!0}}if(J==="/"&&br()==="/"){for(;J!=""&&J!=` +`;)Ye();r=!0}if(J==="/"&&br()==="*"){for(;J!="";)if(J==="*"&&br()==="/"){Ye(),Ye();break}else Ye();r=!0}for(;J===" "||J===" "||J===` +`||J==="\r";)Ye()}while(r);if(J===""){ut=At.DELIMITER;return}var t=J+br();if(AT[t]){ut=At.DELIMITER,H=t,Ye(),Ye();return}if(AT[J]){ut=At.DELIMITER,H=J,Ye();return}if(CT(J)||J==="-"){for(H+=J,Ye();CT(J);)H+=J,Ye();H==="false"?H=!1:H==="true"?H=!0:isNaN(Number(H))||(H=Number(H)),ut=At.IDENTIFIER;return}if(J==='"'){for(Ye();J!=""&&(J!='"'||J==='"'&&br()==='"');)J==='"'?(H+=J,Ye()):J==="\\"&&br()==="n"?(H+=` +`,Ye()):H+=J,Ye();if(J!='"')throw Ct('End of string " expected');Ye(),ut=At.IDENTIFIER;return}for(ut=At.UNKNOWN;J!="";)H+=J,Ye();throw new SyntaxError('Syntax error in part "'+iP(H,30)+'"')}function iq(){var r={};if($5(),be(),H==="strict"&&(r.strict=!0,be()),(H==="graph"||H==="digraph")&&(r.type=H,be()),ut===At.IDENTIFIER&&(r.id=H,be()),H!="{")throw Ct("Angle bracket { expected");if(be(),$2(r),H!="}")throw Ct("Angle bracket } expected");if(be(),H!=="")throw Ct("End of file expected");return be(),delete r.node,delete r.edge,delete r.graph,r}function $2(r){for(;H!==""&&H!="}";)nq(r),H===";"&&be()}function nq(r){var e=eP(r);if(e){tP(r,e);return}var t=rq(r);if(!t){if(ut!=At.IDENTIFIER)throw Ct("Identifier expected");var i=H;if(be(),H==="="){if(be(),ut!=At.IDENTIFIER)throw Ct("Identifier expected");r[i]=H,be()}else sq(r,i)}}function eP(r){var e=null;if(H==="subgraph"&&(e={},e.type="subgraph",be(),ut===At.IDENTIFIER&&(e.id=H,be())),H==="{"){if(be(),e||(e={}),e.parent=r,e.node=r.node,e.edge=r.edge,e.graph=r.graph,$2(e),H!="}")throw Ct("Angle bracket } expected");be(),delete e.node,delete e.edge,delete e.graph,delete e.parent,r.subgraphs||(r.subgraphs=[]),r.subgraphs.push(e)}return e}function rq(r){return H==="node"?(be(),r.node=qs(),"node"):H==="edge"?(be(),r.edge=qs(),"edge"):H==="graph"?(be(),r.graph=qs(),"graph"):null}function sq(r,e){var t={id:e},i=qs();i&&(t.attr=i),Q2(r,t),tP(r,e)}function tP(r,e){for(;H==="->"||H==="--";){var t,i=H;be();var n=eP(r);if(n)t=n;else{if(ut!=At.IDENTIFIER)throw Ct("Identifier or subgraph expected");t=H,Q2(r,{id:t}),be()}var s=qs(),g=J2(r,e,t,i,s);tq(r,g),e=t}}function qs(){for(var r,e=null,t={dashed:!0,solid:!1,dotted:[1,5]},i={dot:"circle",box:"box",crow:"crow",curve:"curve",icurve:"inv_curve",normal:"triangle",inv:"inv_triangle",diamond:"diamond",tee:"bar",vee:"vee"},n=new Array,s=new Array;H==="[";){for(be(),e={};H!==""&&H!="]";){if(ut!=At.IDENTIFIER)throw Ct("Attribute name expected");var g=H;if(be(),H!="=")throw Ct("Equal sign = expected");if(be(),ut!=At.IDENTIFIER)throw Ct("Attribute value expected");var o=H;g==="style"&&(o=t[o]);var a;g==="arrowhead"&&(a=i[o],g="arrows",o={to:{enabled:!0,type:a}}),g==="arrowtail"&&(a=i[o],g="arrows",o={from:{enabled:!0,type:a}}),n.push({attr:e,name:g,value:o}),s.push(g),be(),H==","&&be()}if(H!="]")throw Ct("Bracket ] expected");be()}if($i(s).call(s,"dir")){var A={};for(A.arrows={},r=0;r"&&(o.arrows="to"),o};oe(n=e.edges).call(n,function(g){var o,a;if(g.from instanceof Object?o=g.from.nodes:o={id:g.from},g.to instanceof Object?a=g.to.nodes:a={id:g.to},g.from instanceof Object&&g.from.edges){var A;oe(A=g.from.edges).call(A,function(I){var l=s(I);t.edges.push(l)})}if(gq(o,a,function(I,l){var h=J2(t,I.id,l.id,g.type,g.attr),d=s(h);t.edges.push(d)}),g.to instanceof Object&&g.to.edges){var C;oe(C=g.to.edges).call(C,function(I){var l=s(I);t.edges.push(l)})}})}return e.attr&&(t.options=e.attr),t}function aq(r,e){var t;let i={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};e!=null&&(e.fixed!=null&&(i.nodes.fixed=e.fixed),e.parseColor!=null&&(i.nodes.parseColor=e.parseColor),e.inheritColor!=null&&(i.edges.inheritColor=e.inheritColor));let n=r.edges,s=tt(n).call(n,o=>{let a={from:o.source,id:o.id,to:o.target};return o.attributes!=null&&(a.attributes=o.attributes),o.label!=null&&(a.label=o.label),o.attributes!=null&&o.attributes.title!=null&&(a.title=o.attributes.title),o.type==="Directed"&&(a.arrows="to"),o.color&&i.edges.inheritColor===!1&&(a.color=o.color),a});return{nodes:tt(t=r.nodes).call(t,o=>{let a={id:o.id,fixed:i.nodes.fixed&&o.x!=null&&o.y!=null};return o.attributes!=null&&(a.attributes=o.attributes),o.label!=null&&(a.label=o.label),o.size!=null&&(a.size=o.size),o.attributes!=null&&o.attributes.title!=null&&(a.title=o.attributes.title),o.title!=null&&(a.title=o.title),o.x!=null&&(a.x=o.x),o.y!=null&&(a.y=o.y),o.color!=null&&(i.nodes.parseColor===!0?a.color=o.color:a.color={background:o.color,border:o.color,highlight:{background:o.color,border:o.color},hover:{background:o.color,border:o.color}}),a}),edges:s}}var Aq={addDescription:"Click in an empty space to place a new node.",addEdge:"Add Edge",addNode:"Add Node",back:"Back",close:"Close",createEdgeError:"Cannot link edges to a cluster.",del:"Delete selected",deleteClusterError:"Clusters cannot be deleted.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",edit:"Edit",editClusterError:"Clusters cannot be edited.",editEdge:"Edit Edge",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",editNode:"Edit Node"},Cq={addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",addEdge:"Kante hinzuf\xFCgen",addNode:"Knoten hinzuf\xFCgen",back:"Zur\xFCck",close:"Schlie\xDFen",createEdgeError:"Es ist nicht m\xF6glich, Kanten mit Clustern zu verbinden.",del:"L\xF6sche Auswahl",deleteClusterError:"Cluster k\xF6nnen nicht gel\xF6scht werden.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",edit:"Editieren",editClusterError:"Cluster k\xF6nnen nicht editiert werden.",editEdge:"Kante editieren",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",editNode:"Knoten editieren"},Iq={addDescription:"Haga clic en un lugar vac\xEDo para colocar un nuevo nodo.",addEdge:"A\xF1adir arista",addNode:"A\xF1adir nodo",back:"Atr\xE1s",close:"Cerrar",createEdgeError:"No se puede conectar una arista a un grupo.",del:"Eliminar selecci\xF3n",deleteClusterError:"No es posible eliminar grupos.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",edit:"Editar",editClusterError:"No es posible editar grupos.",editEdge:"Editar arista",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",editNode:"Editar nodo"},lq={addDescription:"Clicca per aggiungere un nuovo nodo",addEdge:"Aggiungi un vertice",addNode:"Aggiungi un nodo",back:"Indietro",close:"Chiudere",createEdgeError:"Non si possono collegare vertici ad un cluster",del:"Cancella la selezione",deleteClusterError:"I cluster non possono essere cancellati",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",edit:"Modifica",editClusterError:"I clusters non possono essere modificati.",editEdge:"Modifica il vertice",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",editNode:"Modifica il nodo"},hq={addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",addEdge:"Link toevoegen",addNode:"Node toevoegen",back:"Terug",close:"Sluiten",createEdgeError:"Kan geen link maken naar een cluster.",del:"Selectie verwijderen",deleteClusterError:"Clusters kunnen niet worden verwijderd.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",edit:"Wijzigen",editClusterError:"Clusters kunnen niet worden aangepast.",editEdge:"Link wijzigen",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",editNode:"Node wijzigen"},dq={addDescription:"Clique em um espa\xE7o em branco para adicionar um novo n\xF3",addEdge:"Adicionar aresta",addNode:"Adicionar n\xF3",back:"Voltar",close:"Fechar",createEdgeError:"N\xE3o foi poss\xEDvel linkar arestas a um cluster.",del:"Remover selecionado",deleteClusterError:"Clusters n\xE3o puderam ser removidos.",edgeDescription:"Clique em um n\xF3 e arraste a aresta at\xE9 outro n\xF3 para conect\xE1-los",edit:"Editar",editClusterError:"Clusters n\xE3o puderam ser editados.",editEdge:"Editar aresta",editEdgeDescription:"Clique nos pontos de controle e os arraste para um n\xF3 para conect\xE1-los",editNode:"Editar n\xF3"},cq={addDescription:"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u0432 \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E\u0435 \u043C\u0435\u0441\u0442\u043E, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0443\u0437\u0435\u043B.",addEdge:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0431\u0440\u043E",addNode:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0437\u0435\u043B",back:"\u041D\u0430\u0437\u0430\u0434",close:"\u0417\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C",createEdgeError:"\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0440\u0435\u0431\u0440\u0430 \u0432 \u043A\u043B\u0430\u0441\u0442\u0435\u0440.",del:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435",deleteClusterError:"\u041A\u043B\u0430\u0441\u0442\u0435\u0440\u044B \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u044B",edgeDescription:"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u043D\u0430 \u0443\u0437\u0435\u043B \u0438 \u043F\u0440\u043E\u0442\u044F\u043D\u0438\u0442\u0435 \u0440\u0435\u0431\u0440\u043E \u043A \u0434\u0440\u0443\u0433\u043E\u043C\u0443 \u0443\u0437\u043B\u0443, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0438\u0445.",edit:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C",editClusterError:"\u041A\u043B\u0430\u0441\u0442\u0435\u0440\u044B \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.",editEdge:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0431\u0440\u043E",editEdgeDescription:"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u044B\u0435 \u0442\u043E\u0447\u043A\u0438 \u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0438\u0445 \u0432 \u0443\u0437\u0435\u043B, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u043D\u0435\u043C\u0443.",editNode:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0443\u0437\u0435\u043B"},uq={addDescription:"\u5355\u51FB\u7A7A\u767D\u5904\u653E\u7F6E\u65B0\u8282\u70B9\u3002",addEdge:"\u6DFB\u52A0\u8FDE\u63A5\u7EBF",addNode:"\u6DFB\u52A0\u8282\u70B9",back:"\u8FD4\u56DE",close:"\u95DC\u9589",createEdgeError:"\u65E0\u6CD5\u5C06\u8FDE\u63A5\u7EBF\u8FDE\u63A5\u5230\u7FA4\u96C6\u3002",del:"\u5220\u9664\u9009\u5B9A",deleteClusterError:"\u65E0\u6CD5\u5220\u9664\u7FA4\u96C6\u3002",edgeDescription:"\u5355\u51FB\u67D0\u4E2A\u8282\u70B9\u5E76\u5C06\u8BE5\u8FDE\u63A5\u7EBF\u62D6\u52A8\u5230\u53E6\u4E00\u4E2A\u8282\u70B9\u4EE5\u8FDE\u63A5\u5B83\u4EEC\u3002",edit:"\u7F16\u8F91",editClusterError:"\u65E0\u6CD5\u7F16\u8F91\u7FA4\u96C6\u3002",editEdge:"\u7F16\u8F91\u8FDE\u63A5\u7EBF",editEdgeDescription:"\u5355\u51FB\u63A7\u5236\u8282\u70B9\u5E76\u5C06\u5B83\u4EEC\u62D6\u5230\u8282\u70B9\u4E0A\u8FDE\u63A5\u3002",editNode:"\u7F16\u8F91\u8282\u70B9"},fq={addDescription:"K\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u0432\u0456\u043B\u044C\u043D\u0435 \u043C\u0456\u0441\u0446\u0435, \u0449\u043E\u0431 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u043E\u0432\u0438\u0439 \u0432\u0443\u0437\u043E\u043B.",addEdge:"\u0414\u043E\u0434\u0430\u0442\u0438 \u043A\u0440\u0430\u0439",addNode:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B",back:"\u041D\u0430\u0437\u0430\u0434",close:"\u0417\u0430\u043A\u0440\u0438\u0442\u0438",createEdgeError:"\u041D\u0435 \u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043E\u0431'\u0454\u0434\u043D\u0430\u0442\u0438 \u043A\u0440\u0430\u0457 \u0432 \u0433\u0440\u0443\u043F\u0443.",del:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u043E\u0431\u0440\u0430\u043D\u0435",deleteClusterError:"\u0413\u0440\u0443\u043F\u0438 \u043D\u0435 \u043C\u043E\u0436\u0443\u0442\u044C \u0431\u0443\u0442\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u0456.",edgeDescription:"\u041A\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u0432\u0443\u0437\u043E\u043B \u0456 \u043F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u043A\u0440\u0430\u0439 \u0434\u043E \u0456\u043D\u0448\u043E\u0433\u043E \u0432\u0443\u0437\u043B\u0430, \u0449\u043E\u0431 \u0457\u0445 \u0437'\u0454\u0434\u043D\u0430\u0442\u0438.",edit:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438",editClusterError:"\u0413\u0440\u0443\u043F\u0438 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0456 \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043D\u043D\u044F.",editEdge:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043A\u0440\u0430\u0439",editEdgeDescription:"\u041A\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0456 \u0442\u043E\u0447\u043A\u0438 \u0456 \u043F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0457\u0445 \u0443 \u0432\u0443\u0437\u043E\u043B, \u0449\u043E\u0431 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438\u0441\u044F \u0434\u043E \u043D\u044C\u043E\u0433\u043E.",editNode:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B"},pq={addDescription:"Cliquez dans un endroit vide pour placer un n\u0153ud.",addEdge:"Ajouter un lien",addNode:"Ajouter un n\u0153ud",back:"Retour",close:"Fermer",createEdgeError:"Impossible de cr\xE9er un lien vers un cluster.",del:"Effacer la s\xE9lection",deleteClusterError:"Les clusters ne peuvent pas \xEAtre effac\xE9s.",edgeDescription:"Cliquez sur un n\u0153ud et glissez le lien vers un autre n\u0153ud pour les connecter.",edit:"\xC9diter",editClusterError:"Les clusters ne peuvent pas \xEAtre \xE9dit\xE9s.",editEdge:"\xC9diter le lien",editEdgeDescription:"Cliquez sur les points de contr\xF4le et glissez-les pour connecter un n\u0153ud.",editNode:"\xC9diter le n\u0153ud"},mq={addDescription:"Kluknut\xEDm do pr\xE1zdn\xE9ho prostoru m\u016F\u017Eete p\u0159idat nov\xFD vrchol.",addEdge:"P\u0159idat hranu",addNode:"P\u0159idat vrchol",back:"Zp\u011Bt",close:"Zav\u0159\xEDt",createEdgeError:"Nelze p\u0159ipojit hranu ke shluku.",del:"Smazat v\xFDb\u011Br",deleteClusterError:"Nelze mazat shluky.",edgeDescription:"P\u0159eta\u017Een\xEDm z jednoho vrcholu do druh\xE9ho m\u016F\u017Eete spojit tyto vrcholy novou hranou.",edit:"Upravit",editClusterError:"Nelze upravovat shluky.",editEdge:"Upravit hranu",editEdgeDescription:"P\u0159eta\u017Een\xEDm kontroln\xEDho vrcholu hrany ji m\u016F\u017Eete p\u0159ipojit k jin\xE9mu vrcholu.",editNode:"Upravit vrchol"},vq=Object.freeze({__proto__:null,cn:uq,cs:mq,de:Cq,en:Aq,es:Iq,fr:pq,it:lq,nl:hq,pt:dq,ru:cq,uk:fq});function bq(r,e){try{let[i,n]=e.split(/[-_ /]/,2),s=i!=null?i.toLowerCase():null,g=n!=null?n.toUpperCase():null;if(s&&g){let o=s+"-"+g;if(Object.prototype.hasOwnProperty.call(r,o))return o;var t;console.warn(l2(t="Unknown variant ".concat(g," of language ")).call(t,s,"."))}if(s){let o=s;if(Object.prototype.hasOwnProperty.call(r,o))return o;console.warn("Unknown language ".concat(s))}return console.warn("Unknown locale ".concat(e,", falling back to English.")),"en"}catch(i){return console.error(i),console.warn("Unexpected error while normalizing locale ".concat(e,", falling back to English.")),"en"}}var Wf=class{constructor(){this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}init(){if(this.initialized())return;this.src=this.image.src;let e=this.image.width,t=this.image.height;this.width=e,this.height=t;let i=Math.floor(t/2),n=Math.floor(t/4),s=Math.floor(t/8),g=Math.floor(t/16),o=Math.floor(e/2),a=Math.floor(e/4),A=Math.floor(e/8),C=Math.floor(e/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,o,i],[o,0,a,n],[o,n,A,s],[5*A,n,C,g]],this._fillMipMap()}initialized(){return this.coordinates!==void 0}_fillMipMap(){let e=this.canvas.getContext("2d"),t=this.coordinates[0];e.drawImage(this.image,t[0],t[1],t[2],t[3]);for(let i=1;i2){t*=.5;let o=0;for(;t>2&&o=this.NUM_ITERATIONS&&(o=this.NUM_ITERATIONS-1);let a=this.coordinates[o];e.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,n,s,g)}else e.drawImage(this.image,i,n,s,g)}},Gf=class{constructor(e){this.images={},this.imageBroken={},this.callback=e}_tryloadBrokenUrl(e,t,i){if(!(e===void 0||i===void 0)){if(t===void 0){console.warn("No broken url image defined");return}i.image.onerror=()=>{console.error("Could not load brokenImage:",t)},i.image.src=t}}_redrawWithImage(e){this.callback&&this.callback(e)}load(e,t){let i=this.images[e];if(i)return i;let n=new Wf;return this.images[e]=n,n.image.onload=()=>{this._fixImageCoordinates(n.image),n.init(),this._redrawWithImage(n)},n.image.onerror=()=>{console.error("Could not load image:",e),this._tryloadBrokenUrl(e,t,n)},n.image.src=e,n}_fixImageCoordinates(e){e.width===0&&(document.body.appendChild(e),e.width=e.offsetWidth,e.height=e.offsetHeight,document.body.removeChild(e))}},lT={},hT={},Yd={exports:{}},Kd,dT;function yq(){if(dT)return Kd;dT=1;var r=te();return Kd=r(function(){if(typeof ArrayBuffer=="function"){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}),Kd}var Ud,cT;function wq(){if(cT)return Ud;cT=1;var r=te(),e=Ue(),t=bi(),i=yq(),n=Object.isExtensible,s=r(function(){});return Ud=s||i?function(o){return!e(o)||i&&t(o)==="ArrayBuffer"?!1:n?n(o):!0}:n,Ud}var Xd,uT;function nP(){if(uT)return Xd;uT=1;var r=te();return Xd=!r(function(){return Object.isExtensible(Object.preventExtensions({}))}),Xd}var fT;function ka(){if(fT)return Yd.exports;fT=1;var r=Z(),e=ne(),t=ig(),i=Ue(),n=He(),s=zt().f,g=ba(),o=em(),a=wq(),A=da(),C=nP(),I=!1,l=A("meta"),h=0,d=function(m){s(m,l,{value:{objectID:"O"+h++,weakData:{}}})},c=function(m,b){if(!i(m))return typeof m=="symbol"?m:(typeof m=="string"?"S":"P")+m;if(!n(m,l)){if(!a(m))return"F";if(!b)return"E";d(m)}return m[l].objectID},f=function(m,b){if(!n(m,l)){if(!a(m))return!0;if(!b)return!1;d(m)}return m[l].weakData},u=function(m){return C&&I&&a(m)&&!n(m,l)&&d(m),m},p=function(){v.enable=function(){},I=!0;var m=g.f,b=e([].splice),w={};w[l]=1,m(w).length&&(g.f=function(x){for(var y=m(x),S=0,k=y.length;Sy;y++)if(k=N(h[y]),k&&g(l,k))return k;return new I(!1)}w=o(h,x)}for(R=p?h.next:w.next;!(E=e(R,w)).done;){try{k=N(E.value)}catch(F){A(w,"throw",F)}if(typeof k=="object"&&k&&g(l,k))return k}return new I(!1)},tc}var ic,wT;function um(){if(wT)return ic;wT=1;var r=Re(),e=TypeError;return ic=function(t,i){if(r(i,t))return t;throw new e("Incorrect invocation")},ic}var nc,xT;function fm(){if(xT)return nc;xT=1;var r=Z(),e=Te(),t=ka(),i=te(),n=Vr(),s=Oa(),g=um(),o=Ke(),a=Ue(),A=Br(),C=Gn(),I=zt().f,l=an().forEach,h=Fe(),d=Zn(),c=d.set,f=d.getterFor;return nc=function(u,p,v){var m=u.indexOf("Map")!==-1,b=u.indexOf("Weak")!==-1,w=m?"set":"add",x=e[u],y=x&&x.prototype,S={},k;if(!h||!o(x)||!(b||y.forEach&&!i(function(){new x().entries().next()})))k=v.getConstructor(p,u,m,w),t.enable();else{k=p(function(O,N){c(g(O,R),{type:u,collection:new x}),A(N)||s(N,O[w],{that:O,AS_ENTRIES:m})});var R=k.prototype,E=f(u);l(["add","clear","delete","forEach","get","has","set","keys","values","entries"],function(O){var N=O==="add"||O==="set";O in y&&!(b&&O==="clear")&&n(R,O,function(F,U){var K=E(this).collection;if(!N&&b&&!a(F))return O==="get"?void 0:!1;var ae=K[O](F===0?0:F,U);return N?this:ae})}),b||I(R,"size",{configurable:!0,get:function(){return E(this).collection.size}})}return C(k,u,!1,!0),S[u]=k,r({global:!0,forced:!0},S),b||v.setStrong(k,u,m),k},nc}var rc,ST;function pm(){if(ST)return rc;ST=1;var r=gg();return rc=function(e,t,i){for(var n in t)i&&i.unsafe&&e[n]?e[n]=t[n]:r(e,n,t[n],i);return e},rc}var sc,ET;function Sq(){if(ET)return sc;ET=1;var r=Et(),e=tm(),t=Ve(),i=Fe(),n=t("species");return sc=function(s){var g=r(s);i&&g&&!g[n]&&e(g,n,{configurable:!0,get:function(){return this}})},sc}var gc,TT;function gP(){if(TT)return gc;TT=1;var r=sg(),e=tm(),t=pm(),i=tg(),n=um(),s=Br(),g=Oa(),o=im(),a=nm(),A=Sq(),C=Fe(),I=ka().fastKey,l=Zn(),h=l.set,d=l.getterFor;return gc={getConstructor:function(c,f,u,p){var v=c(function(y,S){n(y,m),h(y,{type:f,index:r(null),first:null,last:null,size:0}),C||(y.size=0),s(S)||g(S,y[p],{that:y,AS_ENTRIES:u})}),m=v.prototype,b=d(f),w=function(y,S,k){var R=b(y),E=x(y,S),O,N;return E?E.value=k:(R.last=E={index:N=I(S,!0),key:S,value:k,previous:O=R.last,next:null,removed:!1},R.first||(R.first=E),O&&(O.next=E),C?R.size++:y.size++,N!=="F"&&(R.index[N]=E)),y},x=function(y,S){var k=b(y),R=I(S),E;if(R!=="F")return k.index[R];for(E=k.first;E;E=E.next)if(E.key===S)return E};return t(m,{clear:function(){for(var S=this,k=b(S),R=k.first;R;)R.removed=!0,R.previous&&(R.previous=R.previous.next=null),R=R.next;k.first=k.last=null,k.index=r(null),C?k.size=0:S.size=0},delete:function(y){var S=this,k=b(S),R=x(S,y);if(R){var E=R.next,O=R.previous;delete k.index[R.index],R.removed=!0,O&&(O.next=E),E&&(E.previous=O),k.first===R&&(k.first=E),k.last===R&&(k.last=O),C?k.size--:S.size--}return!!R},forEach:function(S){for(var k=b(this),R=i(S,arguments.length>1?arguments[1]:void 0),E;E=E?E.next:k.first;)for(R(E.value,E.key,this);E&&E.removed;)E=E.previous},has:function(S){return!!x(this,S)}}),t(m,u?{get:function(S){var k=x(this,S);return k&&k.value},set:function(S,k){return w(this,S===0?0:S,k)}}:{add:function(S){return w(this,S=S===0?0:S,S)}}),C&&e(m,"size",{configurable:!0,get:function(){return b(this).size}}),v},setStrong:function(c,f,u){var p=f+" Iterator",v=d(f),m=d(p);o(c,f,function(b,w){h(this,{type:p,target:b,state:v(b),kind:w,last:null})},function(){for(var b=m(this),w=b.kind,x=b.last;x&&x.removed;)x=x.previous;return!b.target||!(b.last=x=x?x.next:b.state.first)?(b.target=null,a(void 0,!0)):a(w==="keys"?x.key:w==="values"?x.value:[x.key,x.value],!1)},u?"entries":"values",!u,!0),A(f)}},gc}var kT;function Eq(){if(kT)return hT;kT=1;var r=fm(),e=gP();return r("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},e),hT}var OT;function Tq(){return OT||(OT=1,Eq()),lT}var RT={},oc,DT;function oP(){return DT||(DT=1,oc=function(r,e){return e===1?function(t,i){return t[r](i)}:function(t,i,n){return t[r](i,n)}}),oc}var ac,PT;function kq(){if(PT)return ac;PT=1;var r=Et(),e=oP(),t=r("Map");return ac={Map:t,set:e("set",2),get:e("get",1),has:e("has",1),remove:e("delete",1),proto:t.prototype},ac}var MT;function Oq(){if(MT)return RT;MT=1;var r=Z(),e=ne(),t=yi(),i=_i(),n=Oa(),s=kq(),g=zr(),o=te(),a=s.Map,A=s.has,C=s.get,I=s.set,l=e([].push),h=g||o(function(){return a.groupBy("ab",function(d){return d}).get("a").length!==1});return r({target:"Map",stat:!0,forced:g||h},{groupBy:function(c,f){i(c),t(f);var u=new a,p=0;return n(c,function(v){var m=f(v,p++);A(u,m)?l(C(u,m),v):I(u,m,[v])}),u}}),RT}var NT={},Ac,BT;function Rq(){if(BT)return Ac;BT=1;var r=ne(),e=Wr(),t=qt(),i=_i(),n=r("".charAt),s=r("".charCodeAt),g=r("".slice),o=function(a){return function(A,C){var I=t(i(A)),l=e(C),h=I.length,d,c;return l<0||l>=h?a?"":void 0:(d=s(I,l),d<55296||d>56319||l+1===h||(c=s(I,l+1))<56320||c>57343?a?n(I,l):d:a?g(I,l,l+2):(d-55296<<10)+(c-56320)+65536)}};return Ac={codeAt:o(!1),charAt:o(!0)},Ac}var _T;function Ra(){if(_T)return NT;_T=1;var r=Rq().charAt,e=qt(),t=Zn(),i=im(),n=nm(),s="String Iterator",g=t.set,o=t.getterFor(s);return i(String,"String",function(a){g(this,{type:s,string:e(a),index:0})},function(){var A=o(this),C=A.string,I=A.index,l;return I>=C.length?n(void 0,!0):(l=r(C,I),A.index+=l.length,n(l,!1))}),NT}var Cc,FT;function Dq(){if(FT)return Cc;FT=1,Fi(),Tq(),Oq(),Ra();var r=le();return Cc=r.Map,Cc}var Ic,LT;function Pq(){if(LT)return Ic;LT=1;var r=Dq();return Li(),Ic=r,Ic}var lc,zT;function Mq(){return zT||(zT=1,lc=Pq()),lc}var Nq=Mq(),hg=Y(Nq),Zf=class{constructor(){this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},_e(this.options,this.defaultOptions)}setOptions(e){let t=["useDefaultGroups"];if(e!==void 0){for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&de(t).call(t,i)===-1){let n=e[i];this.add(i,n)}}}clear(){this._groups=new hg,this._groupNames=[]}get(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this._groups.get(e);if(i===void 0&&t)if(this.options.useDefaultGroups===!1&&this._groupNames.length>0){let n=this._groupIndex%this._groupNames.length;++this._groupIndex,i={},i.color=this._groups.get(this._groupNames[n]),this._groups.set(e,i)}else{let n=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,i={},i.color=this._defaultGroups[n],this._groups.set(e,i)}return i}add(e,t){return this._groups.has(e)||this._groupNames.push(e),this._groups.set(e,t),t}},qT={},VT;function Bq(){if(VT)return qT;VT=1;var r=Z();return r({target:"Number",stat:!0},{isNaN:function(t){return t!==t}}),qT}var hc,WT;function _q(){if(WT)return hc;WT=1,Bq();var r=le();return hc=r.Number.isNaN,hc}var dc,GT;function Fq(){if(GT)return dc;GT=1;var r=_q();return dc=r,dc}var cc,ZT;function Lq(){return ZT||(ZT=1,cc=Fq()),cc}var zq=Lq(),jf=Y(zq),jT={},uc,HT;function qq(){if(HT)return uc;HT=1;var r=Te(),e=r.isFinite;return uc=Number.isFinite||function(i){return typeof i=="number"&&e(i)},uc}var YT;function Vq(){if(YT)return jT;YT=1;var r=Z(),e=qq();return r({target:"Number",stat:!0},{isFinite:e}),jT}var fc,KT;function Wq(){if(KT)return fc;KT=1,Vq();var r=le();return fc=r.Number.isFinite,fc}var pc,UT;function Gq(){if(UT)return pc;UT=1;var r=Wq();return pc=r,pc}var mc,XT;function Zq(){return XT||(XT=1,mc=Gq()),mc}var jq=Zq(),Nn=Y(jq),QT={},JT;function Hq(){if(JT)return QT;JT=1;var r=Z(),e=an().some,t=jr(),i=t("some");return r({target:"Array",proto:!0,forced:!i},{some:function(s){return e(this,s,arguments.length>1?arguments[1]:void 0)}}),QT}var vc,$T;function Yq(){if($T)return vc;$T=1,Hq();var r=We();return vc=r("Array","some"),vc}var bc,ek;function Kq(){if(ek)return bc;ek=1;var r=Re(),e=Yq(),t=Array.prototype;return bc=function(i){var n=i.some;return i===t||r(t,i)&&n===t.some?e:n},bc}var yc,tk;function Uq(){if(tk)return yc;tk=1;var r=Kq();return yc=r,yc}var wc,ik;function Xq(){return ik||(ik=1,wc=Uq()),wc}var Qq=Xq(),aP=Y(Qq),xc,nk;function Jq(){if(nk)return xc;nk=1,i2();var r=le();return xc=r.Object.getOwnPropertySymbols,xc}var Sc,rk;function $q(){if(rk)return Sc;rk=1;var r=Jq();return Sc=r,Sc}var Ec,sk;function eV(){return sk||(sk=1,Ec=$q()),Ec}var tV=eV(),fi=Y(tV),Tc={exports:{}},gk={},ok;function iV(){if(ok)return gk;ok=1;var r=Z(),e=te(),t=ni(),i=ca().f,n=Fe(),s=!n||e(function(){i(1)});return r({target:"Object",stat:!0,forced:s,sham:!n},{getOwnPropertyDescriptor:function(o,a){return i(t(o),a)}}),gk}var ak;function nV(){if(ak)return Tc.exports;ak=1,iV();var r=le(),e=r.Object,t=Tc.exports=function(n,s){return e.getOwnPropertyDescriptor(n,s)};return e.getOwnPropertyDescriptor.sham&&(t.sham=!0),Tc.exports}var kc,Ak;function rV(){if(Ak)return kc;Ak=1;var r=nV();return kc=r,kc}var Oc,Ck;function sV(){return Ck||(Ck=1,Oc=rV()),Oc}var gV=sV(),xi=Y(gV),Ik={},lk;function oV(){if(lk)return Ik;lk=1;var r=Z(),e=Fe(),t=C2(),i=ni(),n=ca(),s=pa();return r({target:"Object",stat:!0,sham:!e},{getOwnPropertyDescriptors:function(o){for(var a=i(o),A=n.f,C=t(a),I={},l=0,h,d;C.length>l;)d=A(a,h=C[l++]),d!==void 0&&s(I,h,d);return I}}),Ik}var Rc,hk;function aV(){if(hk)return Rc;hk=1,oV();var r=le();return Rc=r.Object.getOwnPropertyDescriptors,Rc}var Dc,dk;function AV(){if(dk)return Dc;dk=1;var r=aV();return Dc=r,Dc}var Pc,ck;function CV(){return ck||(ck=1,Pc=AV()),Pc}var IV=CV(),pi=Y(IV),Mc={exports:{}},uk={},fk;function lV(){if(fk)return uk;fk=1;var r=Z(),e=Fe(),t=$p().f;return r({target:"Object",stat:!0,forced:Object.defineProperties!==t,sham:!e},{defineProperties:t}),uk}var pk;function hV(){if(pk)return Mc.exports;pk=1,lV();var r=le(),e=r.Object,t=Mc.exports=function(n,s){return e.defineProperties(n,s)};return e.defineProperties.sham&&(t.sham=!0),Mc.exports}var Nc,mk;function dV(){if(mk)return Nc;mk=1;var r=hV();return Nc=r,Nc}var Bc,vk;function cV(){return vk||(vk=1,Bc=dV()),Bc}var uV=cV(),dg=Y(uV),_c={exports:{}},bk={},yk;function fV(){if(yk)return bk;yk=1;var r=Z(),e=Fe(),t=zt().f;return r({target:"Object",stat:!0,forced:Object.defineProperty!==t,sham:!e},{defineProperty:t}),bk}var wk;function pV(){if(wk)return _c.exports;wk=1,fV();var r=le(),e=r.Object,t=_c.exports=function(n,s,g){return e.defineProperty(n,s,g)};return e.defineProperty.sham&&(t.sham=!0),_c.exports}var Fc,xk;function AP(){if(xk)return Fc;xk=1;var r=pV();return Fc=r,Fc}var Lc,Sk;function mV(){if(Sk)return Lc;Sk=1;var r=AP();return Lc=r,Lc}var zc,Ek;function vV(){if(Ek)return zc;Ek=1;var r=mV();return zc=r,zc}var qc,Tk;function bV(){return Tk||(Tk=1,qc=vV()),qc}var yV=bV(),wV=Y(yV),kk={},Ok;function xV(){if(Ok)return kk;Ok=1;var r=Ve(),e=zt().f,t=r("metadata"),i=Function.prototype;return i[t]===void 0&&e(i,t,{value:null}),kk}var Rk={},Dk;function SV(){return Dk||(Dk=1,n2()),Rk}var Pk={},Mk;function EV(){return Mk||(Mk=1,r2()),Pk}var Nk={},Bk;function TV(){if(Bk)return Nk;Bk=1;var r=De();return r("metadata"),Nk}var Vc,_k;function kV(){if(_k)return Vc;_k=1;var r=A2();return xV(),SV(),EV(),TV(),Vc=r,Vc}var Fk={},Wc,Lk;function CP(){if(Lk)return Wc;Lk=1;var r=Et(),e=ne(),t=r("Symbol"),i=t.keyFor,n=e(t.prototype.valueOf);return Wc=t.isRegisteredSymbol||function(g){try{return i(n(g))!==void 0}catch{return!1}},Wc}var zk;function OV(){if(zk)return Fk;zk=1;var r=Z(),e=CP();return r({target:"Symbol",stat:!0},{isRegisteredSymbol:e}),Fk}var qk={},Gc,Vk;function IP(){if(Vk)return Gc;Vk=1;for(var r=qr(),e=Et(),t=ne(),i=eg(),n=Ve(),s=e("Symbol"),g=s.isWellKnownSymbol,o=e("Object","getOwnPropertyNames"),a=t(s.prototype.valueOf),A=r("wks"),C=0,I=o(s),l=I.length;C=0:d>c;c+=f)c in h&&(I=A(I,h[c],c,l));return I}};return iu={left:g(!1),right:g(!0)},iu}var nu,mO;function rW(){if(mO)return nu;mO=1;var r=d2();return nu=r==="NODE",nu}var vO;function sW(){if(vO)return fO;vO=1;var r=Z(),e=nW().left,t=jr(),i=$s(),n=rW(),s=!n&&i>79&&i<83,g=s||!t("reduce");return r({target:"Array",proto:!0,forced:g},{reduce:function(a){var A=arguments.length;return e(this,a,A,A>1?arguments[1]:void 0)}}),fO}var ru,bO;function gW(){if(bO)return ru;bO=1,sW();var r=We();return ru=r("Array","reduce"),ru}var su,yO;function oW(){if(yO)return su;yO=1;var r=Re(),e=gW(),t=Array.prototype;return su=function(i){var n=i.reduce;return i===t||r(t,i)&&n===t.reduce?e:n},su}var gu,wO;function aW(){if(wO)return gu;wO=1;var r=oW();return gu=r,gu}var ou,xO;function AW(){return xO||(xO=1,ou=aW()),ou}var CW=AW(),mm=Y(CW),SO={},au,EO;function IW(){if(EO)return au;EO=1;var r=gn(),e=ri(),t=Qp(),i=tg(),n=function(s,g,o,a,A,C,I,l){for(var h=A,d=0,c=I?i(I,l):!1,f,u;d0&&r(f)?(u=e(f),h=n(s,g,f,u,h,C-1)-1):(t(h+1),s[h]=f),h++),d++;return h};return au=n,au}var TO;function lW(){if(TO)return SO;TO=1;var r=Z(),e=IW(),t=yi(),i=mt(),n=ri(),s=ma();return r({target:"Array",proto:!0},{flatMap:function(o){var a=i(this),A=n(a),C;return t(o),C=s(a,0),C.length=e(C,a,a,A,0,1,o,arguments.length>1?arguments[1]:void 0),C}}),SO}var kO={},OO;function hW(){if(OO)return kO;OO=1;var r=wa();return r("flatMap"),kO}var Au,RO;function dW(){if(RO)return Au;RO=1,lW(),hW();var r=We();return Au=r("Array","flatMap"),Au}var Cu,DO;function cW(){if(DO)return Cu;DO=1;var r=Re(),e=dW(),t=Array.prototype;return Cu=function(i){var n=i.flatMap;return i===t||r(t,i)&&n===t.flatMap?e:n},Cu}var Iu,PO;function uW(){if(PO)return Iu;PO=1;var r=cW();return Iu=r,Iu}var lu,MO;function fW(){return MO||(MO=1,lu=uW()),lu}var Zj=fW();var hu,NO;function pW(){return NO||(NO=1,hu=lP()),hu}var mW=pW(),Er=Y(mW),BO={},_O={},FO;function vW(){if(FO)return _O;FO=1;var r=fm(),e=gP();return r("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},e),_O}var LO;function bW(){return LO||(LO=1,vW()),BO}var zO={},du,qO;function Hn(){if(qO)return du;qO=1;var r=Lr(),e=TypeError;return du=function(t){if(typeof t=="object"&&"size"in t&&"has"in t&&"add"in t&&"delete"in t&&"keys"in t)return t;throw new e(r(t)+" is not a set")},du}var cu,VO;function Yn(){if(VO)return cu;VO=1;var r=Et(),e=oP(),t=r("Set"),i=t.prototype;return cu={Set:t,add:e("add",1),has:e("has",1),remove:e("delete",1),proto:i},cu}var uu,WO;function Kn(){if(WO)return uu;WO=1;var r=pt();return uu=function(e,t,i){for(var n=i?e:e.iterator,s=e.next,g,o;!(g=r(s,n)).done;)if(o=t(g.value),o!==void 0)return o},uu}var fu,GO;function cg(){if(GO)return fu;GO=1;var r=Kn();return fu=function(e,t,i){return i?r(e.keys(),t,!0):e.forEach(t)},fu}var pu,ZO;function vm(){if(ZO)return pu;ZO=1;var r=Yn(),e=cg(),t=r.Set,i=r.add;return pu=function(n){var s=new t;return e(n,function(g){i(s,g)}),s},pu}var mu,jO;function ug(){return jO||(jO=1,mu=function(r){return r.size}),mu}var vu,HO;function yW(){return HO||(HO=1,vu=function(r){return{iterator:r,next:r.next,done:!1}}),vu}var bu,YO;function Un(){if(YO)return bu;YO=1;var r=yi(),e=wi(),t=pt(),i=Wr(),n=yW(),s="Invalid size",g=RangeError,o=TypeError,a=Math.max,A=function(C,I){this.set=C,this.size=a(I,0),this.has=r(C.has),this.keys=r(C.keys)};return A.prototype={getIterator:function(){return n(e(t(this.keys,this.set)))},includes:function(C){return t(this.has,this.set,C)}},bu=function(C){e(C);var I=+C.size;if(I!==I)throw new o(s);var l=i(I);if(l<0)throw new g(s);return new A(C,l)},bu}var yu,KO;function wW(){if(KO)return yu;KO=1;var r=Hn(),e=Yn(),t=vm(),i=ug(),n=Un(),s=cg(),g=Kn(),o=e.has,a=e.remove;return yu=function(C){var I=r(this),l=n(C),h=t(I);return i(I)<=l.size?s(I,function(d){l.includes(d)&&a(h,d)}):g(l.getIterator(),function(d){o(h,d)&&a(h,d)}),h},yu}var wu,UO;function Xn(){return UO||(UO=1,wu=function(){return!1}),wu}var XO;function xW(){if(XO)return zO;XO=1;var r=Z(),e=wW(),t=te(),i=Xn(),n=!i("difference",function(g){return g.size===0}),s=n||t(function(){var g={size:1,has:function(){return!0},keys:function(){var a=0;return{next:function(){var A=a++>1;return o.has(1)&&o.clear(),{done:A,value:2}}}}},o=new Set([1,2,3,4]);return o.difference(g).size!==3});return r({target:"Set",proto:!0,real:!0,forced:s},{difference:e}),zO}var QO={},xu,JO;function SW(){if(JO)return xu;JO=1;var r=Hn(),e=Yn(),t=ug(),i=Un(),n=cg(),s=Kn(),g=e.Set,o=e.add,a=e.has;return xu=function(C){var I=r(this),l=i(C),h=new g;return t(I)>l.size?s(l.getIterator(),function(d){a(I,d)&&o(h,d)}):n(I,function(d){l.includes(d)&&o(h,d)}),h},xu}var $O;function EW(){if($O)return QO;$O=1;var r=Z(),e=te(),t=SW(),i=Xn(),n=!i("intersection",function(s){return s.size===2&&s.has(1)&&s.has(2)})||e(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});return r({target:"Set",proto:!0,real:!0,forced:n},{intersection:t}),QO}var eR={},Su,tR;function TW(){if(tR)return Su;tR=1;var r=Hn(),e=Yn().has,t=ug(),i=Un(),n=cg(),s=Kn(),g=cm();return Su=function(a){var A=r(this),C=i(a);if(t(A)<=C.size)return n(A,function(l){if(C.includes(l))return!1},!0)!==!1;var I=C.getIterator();return s(I,function(l){if(e(A,l))return g(I,"normal",!1)})!==!1},Su}var iR;function kW(){if(iR)return eR;iR=1;var r=Z(),e=TW(),t=Xn(),i=!t("isDisjointFrom",function(n){return!n});return r({target:"Set",proto:!0,real:!0,forced:i},{isDisjointFrom:e}),eR}var nR={},Eu,rR;function OW(){if(rR)return Eu;rR=1;var r=Hn(),e=ug(),t=cg(),i=Un();return Eu=function(s){var g=r(this),o=i(s);return e(g)>o.size?!1:t(g,function(a){if(!o.includes(a))return!1},!0)!==!1},Eu}var sR;function RW(){if(sR)return nR;sR=1;var r=Z(),e=OW(),t=Xn(),i=!t("isSubsetOf",function(n){return n});return r({target:"Set",proto:!0,real:!0,forced:i},{isSubsetOf:e}),nR}var gR={},Tu,oR;function DW(){if(oR)return Tu;oR=1;var r=Hn(),e=Yn().has,t=ug(),i=Un(),n=Kn(),s=cm();return Tu=function(o){var a=r(this),A=i(o);if(t(a)0;)i[a]=i[--a];a!==g++&&(i[a]=o)}else for(var A=e(s/2),C=t(r(i,0,A),n),I=t(r(i,A),n),l=C.length,h=I.length,d=0,c=0;d3)){if(I)return!0;if(h)return h<603;var x="",y,S,k,R;for(y=65;y<76;y++){switch(S=String.fromCharCode(y),y){case 66:case 69:case 70:case 72:k=3;break;case 68:case 71:k=4;break;default:k=2}for(R=0;R<47;R++)d.push({k:S+R,v:k})}for(d.sort(function(E,O){return O.v-E.v}),R=0;Rg(S)?1:-1}};return r({target:"Array",proto:!0,forced:b},{sort:function(y){y!==void 0&&t(y);var S=i(this);if(m)return y===void 0?c(S):c(S,y);var k=[],R=n(S),E,O;for(O=0;O"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Af=crypto.getRandomValues.bind(crypto)}return Af(wG)}var SG=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),KR={randomUUID:SG};function EG(r,e,t){r=r||{};let i=r.random??r.rng?.()??xG();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=i[6]&15|64,i[8]=i[8]&63|128,yG(i)}function Or(r,e,t){return KR.randomUUID&&!r?KR.randomUUID():EG(r)}function UR(r,e){var t=Se(r);if(fi){var i=fi(r);e&&(i=ze(i).call(i,function(n){return xi(r,n).enumerable})),t.push.apply(t,i)}return t}function XR(r){for(var e=1;e{i.flush()};let n=[{name:"flush",original:void 0}];if(t&&t.replace)for(let s=0;sthis.max&&this.flush(),this._timeout!=null&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&typeof this.delay=="number"&&(this._timeout=ci(()=>{this.flush()},this.delay))}flush(){var e,t;oe(e=di(t=this._queue).call(t,0)).call(e,i=>{i.fn.apply(i.context||i.fn,i.args||[])})}},Yf=class r{constructor(){Ee(this,"_subscribers",{"*":[],add:[],remove:[],update:[]}),Ee(this,"subscribe",r.prototype.on),Ee(this,"unsubscribe",r.prototype.off)}_trigger(e,t,i){var n;if(e==="*")throw new Error("Cannot trigger event *");oe(n=[...this._subscribers[e],...this._subscribers["*"]]).call(n,s=>{s(e,t,i??null)})}on(e,t){typeof t=="function"&&this._subscribers[e].push(t)}off(e,t){var i;this._subscribers[e]=ze(i=this._subscribers[e]).call(i,n=>n!==t)}},Xo=class r{constructor(e){Ee(this,"_pairs",void 0),this._pairs=e}*[Er](){for(let[e,t]of this._pairs)yield[e,t]}*entries(){for(let[e,t]of this._pairs)yield[e,t]}*keys(){for(let[e]of this._pairs)yield e}*values(){for(let[,e]of this._pairs)yield e}toIdArray(){var e;return tt(e=[...this._pairs]).call(e,t=>t[0])}toItemArray(){var e;return tt(e=[...this._pairs]).call(e,t=>t[1])}toEntryArray(){return[...this._pairs]}toObjectMap(){let e=en(null);for(let[t,i]of this._pairs)e[t]=i;return e}toMap(){return new hg(this._pairs)}toIdSet(){return new ti(this.toIdArray())}toItemSet(){return new ti(this.toItemArray())}cache(){return new r([...this._pairs])}distinct(e){let t=new ti;for(let[i,n]of this._pairs)t.add(e(n,i));return t}filter(e){let t=this._pairs;return new r({*[Er](){for(let[i,n]of t)e(n,i)&&(yield[i,n])}})}forEach(e){for(let[t,i]of this._pairs)e(i,t)}map(e){let t=this._pairs;return new r({*[Er](){for(let[i,n]of t)yield[i,e(n,i)]}})}max(e){let t=qu(this._pairs),i=t.next();if(i.done)return null;let n=i.value[1],s=e(i.value[1],i.value[0]);for(;!(i=t.next()).done;){let[g,o]=i.value,a=e(o,g);a>s&&(s=a,n=o)}return n}min(e){let t=qu(this._pairs),i=t.next();if(i.done)return null;let n=i.value[1],s=e(i.value[1],i.value[0]);for(;!(i=t.next()).done;){let[g,o]=i.value,a=e(o,g);a{var t;return qu(Ni(t=[...this._pairs]).call(t,(i,n)=>{let[s,g]=i,[o,a]=n;return e(g,a,s,o)}))}})}};function TG(r,e){return r[e]==null&&(r[e]=Or()),r}var mi=class extends Yf{get idProp(){return this._idProp}constructor(e,t){super(),Ee(this,"flush",void 0),Ee(this,"length",void 0),Ee(this,"_options",void 0),Ee(this,"_data",void 0),Ee(this,"_idProp",void 0),Ee(this,"_queue",null),e&&!Ce(e)&&(t=e,e=[]),this._options=t||{},this._data=new hg,this.length=0,this._idProp=this._options.fieldId||"id",e&&e.length&&this.add(e),this.setOptions(t)}setOptions(e){e&&e.queue!==void 0&&(e.queue===!1?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=Hf.extend(this,{replace:["add","update","remove"]})),e.queue&&typeof e.queue=="object"&&this._queue.setOptions(e.queue)))}add(e,t){let i=[],n;if(Ce(e)){let s=tt(e).call(e,g=>g[this._idProp]);if(aP(s).call(s,g=>this._data.has(g)))throw new Error("A duplicate id was found in the parameter array.");for(let g=0,o=e.length;g{let C=A[o];if(C!=null&&this._data.has(C)){let I=A,l=_e({},this._data.get(C)),h=this._updateItem(I);n.push(h),g.push(I),s.push(l)}else{let I=this._addItem(A);i.push(I)}};if(Ce(e))for(let A=0,C=e.length;A{let g=this._data.get(s[this._idProp]);if(g==null)throw new Error("Updating non-existent items is not allowed.");return{oldData:g,update:s}})).call(i,s=>{let{oldData:g,update:o}=s,a=g[this._idProp],A=T5(g,o);return this._data.set(a,A),{id:a,oldData:g,updatedData:A}});if(n.length){let s={items:tt(n).call(n,g=>g.id),oldData:tt(n).call(n,g=>g.oldData),data:tt(n).call(n,g=>g.updatedData)};return this._trigger("update",s,t),s.items}else return[]}get(e,t){let i,n,s;QR(e)?(i=e,s=t):Ce(e)?(n=e,s=t):s=e;let g=s&&s.returnType==="Object"?"Object":"Array",o=s&&ze(s),a=[],A,C,I;if(i!=null)A=this._data.get(i),A&&o&&!o(A)&&(A=void 0);else if(n!=null)for(let h=0,d=n.length;h(n[s]=e[s],n),{})}_sort(e,t){if(typeof t=="string"){let i=t;Ni(e).call(e,(n,s)=>{let g=n[i],o=s[i];return g>o?1:gi)&&(t=s,i=g)}return t||null}min(e){let t=null,i=null;for(let s of Uo(n=this._data).call(n)){var n;let g=s[e];typeof g=="number"&&(i==null||ge.x&&r.tope.y}function Qo(r){return typeof r=="string"&&r!==""}function uP(r,e,t,i){let n=i.x,s=i.y;if(typeof i.distanceToBorder=="function"){let g=i.distanceToBorder(r,e),o=Math.sin(e)*g,a=Math.cos(e)*g;a===g?(n+=g,s=i.y):o===g?(n=i.x,s-=g):(n+=a,s-=o)}else i.shape.width>i.shape.height?(n=i.x+i.shape.width*.5,s=i.y-t):(n=i.x+t,s=i.y-i.shape.height*.5);return{x:n,y:s}}var Uf=class{constructor(e){this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}_add(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"normal";this.lines[e]===void 0&&(this.lines[e]={width:0,height:0,blocks:[]});let n=t;(t===void 0||t==="")&&(n=" ");let s=this.measureText(n,i),g=_e({},Uo(s));g.text=t,g.width=s.width,g.mod=i,(t===void 0||t==="")&&(g.width=0),this.lines[e].blocks.push(g),this.lines[e].width+=g.width}curWidth(){let e=this.lines[this.current];return e===void 0?0:e.width}append(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t)}newLine(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t),this.current++}determineLineHeights(){for(let e=0;ee&&(e=n.width),t+=n.height}this.width=e,this.height=t}removeEmptyBlocks(){let e=[];for(let t=0;t"://,""://,""://,"":/<\/b>/,"":/<\/i>/,"":/<\/code>/,"*":/\*/,_:/_/,"`":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/},Jo=class{constructor(e){this.text=e,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer="",this.modStack=[],this.blocks=[]}mod(){return this.modStack.length===0?"normal":this.modStack[0]}modName(){if(this.modStack.length===0)return"normal";if(this.modStack[0]==="mono")return"mono";if(this.bold&&this.ital)return"boldital";if(this.bold)return"bold";if(this.ital)return"ital"}emitBlock(){this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer="")}add(e){e===" "&&(this.spacing=!0),this.spacing&&(this.buffer+=" ",this.spacing=!1),e!=" "&&(this.buffer+=e)}parseWS(e){return/[ \t]/.test(e)?(this.mono?this.add(e):this.spacing=!0,!0):!1}setTag(e){this.emitBlock(),this[e]=!0,this.modStack.unshift(e)}unsetTag(e){this.emitBlock(),this[e]=!1,this.modStack.shift()}parseStartTag(e,t){return!this.mono&&!this[e]&&this.match(t)?(this.setTag(e),!0):!1}match(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,[i,n]=this.prepareRegExp(e),s=i.test(this.text.substr(this.position,n));return s&&t&&(this.position+=n-1),s}parseEndTag(e,t,i){let n=this.mod()===e;return e==="mono"?n=n&&this.mono:n=n&&!this.mono,n&&this.match(t)?(i!==void 0?(this.position===this.text.length-1||this.match(i,!1))&&this.unsetTag(e):this.unsetTag(e),!0):!1}replace(e,t){return this.match(e)?(this.add(t),this.position+=length-1,!0):!1}prepareRegExp(e){let t,i;if(e instanceof RegExp)i=e,t=1;else{let n=VG[e];n!==void 0?i=n:i=new RegExp(e),t=e.length}return[i,t]}},Xf=class{constructor(e,t,i,n){this.ctx=e,this.parent=t,this.selected=i,this.hover=n;let s=(g,o)=>{if(g===void 0)return 0;let a=this.parent.getFormattingValues(e,i,n,o),A=0;return g!==""&&(A=this.ctx.measureText(g).width),{width:A,values:a}};this.lines=new Uf(s)}process(e){if(!Qo(e))return this.lines.finalize();let t=this.parent.fontOptions;e=e.replace(/\r\n/g,` +`),e=e.replace(/\r/g,` +`);let i=String(e).split(` +`),n=i.length;if(t.multi)for(let s=0;s0)for(let o=0;o0)for(let s=0;s/&/.test(n)?(t.replace(t.text,"<","<")||t.replace(t.text,"&","&")||t.add("&"),!0):!1;for(;t.position")||t.parseStartTag("ital","")||t.parseStartTag("mono","")||t.parseEndTag("bold","
    ")||t.parseEndTag("ital","")||t.parseEndTag("mono",""))||i(n)||t.add(n),t.position++}return t.emitBlock(),t.blocks}splitMarkdownBlocks(e){let t=new Jo(e),i=!0,n=s=>/\\/.test(s)?(t.positionthis.parent.fontOptions.maxWdt}getLongestFit(e){let t="",i=0;for(;i1&&arguments[1]!==void 0?arguments[1]:"normal",i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parent.getFormattingValues(this.ctx,this.selected,this.hover,t),e=e.replace(/^( +)/g,"$1\r"),e=e.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");let n=e.split("\r");for(;n.length>0;){let s=this.getLongestFit(n);if(s===0){let g=n[0],o=this.getLongestFitWord(g);this.lines.newLine(ei(g).call(g,0,o),t),n[0]=ei(g).call(g,o)}else{let g=s;n[s-1]===" "?s--:n[g]===" "&&g++;let o=ei(n).call(n,0,s).join("");s==n.length&&i?this.lines.append(o,t):this.lines.newLine(o,t),n=ei(n).call(n,g)}}}},Bs=["bold","ital","boldital","mono"],$o=class r{constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(t),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=i}setOptions(e){if(this.elementOptions=e,this.initFontOptions(e.font),Qo(e.label)?this.labelDirty=!0:e.label=void 0,e.font!==void 0&&e.font!==null){if(typeof e.font=="string")this.baseSize=this.fontOptions.size;else if(typeof e.font=="object"){let t=e.font.size;t!==void 0&&(this.baseSize=t)}}}initFontOptions(e){if($(Bs,t=>{this.fontOptions[t]={}}),r.parseFontString(this.fontOptions,e)){this.fontOptions.vadjust=0;return}$(e,(t,i)=>{t!=null&&typeof t!="object"&&(this.fontOptions[i]=t)})}static parseFontString(e,t){if(!t||typeof t!="string")return!1;let i=t.split(" ");return e.size=+i[0].replace("px",""),e.face=i[1],e.color=i[2],!0}constrain(e){let t={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=Qi(e,"widthConstraint");if(typeof i=="number")t.maxWdt=Number(i),t.minWdt=Number(i);else if(typeof i=="object"){let s=Qi(e,["widthConstraint","maximum"]);typeof s=="number"&&(t.maxWdt=Number(s));let g=Qi(e,["widthConstraint","minimum"]);typeof g=="number"&&(t.minWdt=Number(g))}let n=Qi(e,"heightConstraint");if(typeof n=="number")t.minHgt=Number(n);else if(typeof n=="object"){let s=Qi(e,["heightConstraint","minimum"]);typeof s=="number"&&(t.minHgt=Number(s));let g=Qi(e,["heightConstraint","valign"]);typeof g=="string"&&(g==="top"||g==="bottom")&&(t.valign=g)}return t}update(e,t){this.setOptions(e,!0),this.propagateFonts(t),ve(this.fontOptions,this.constrain(t)),this.fontOptions.chooser=bm("label",t)}adjustSizes(e){let t=e?e.right+e.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=t,this.fontOptions.minWdt-=t);let i=e?e.top+e.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}addFontOptionsToPile(e,t){for(let i=0;i{g!==void 0&&(Object.prototype.hasOwnProperty.call(t,o)||(de(Bs).call(Bs,o)!==-1?t[o]={}:t[o]=g))})}return t}getFontOption(e,t,i){let n;for(let s=0;s{s[a]=o}),s.size=Number(s.size),s.vadjust=Number(s.vadjust)}}draw(e,t,i,n,s){let g=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";if(this.elementOptions.label===void 0)return;let o=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&o=this.elementOptions.scaling.label.maxVisible&&(o=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(e,n,s,t,i,g),this._drawBackground(e),this._drawText(e,t,this.size.yLine,g,o))}_drawBackground(e){if(this.fontOptions.background!==void 0&&this.fontOptions.background!=="none"){e.fillStyle=this.fontOptions.background;let t=this.getSize();e.fillRect(t.left,t.top,t.width,t.height)}}_drawText(e,t,i){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle",s=arguments.length>4?arguments[4]:void 0;[t,i]=this._setAlignment(e,t,i,n),e.textAlign="left",t=t-this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&(this.fontOptions.valign==="top"&&(i-=(this.size.height-this.size.labelHeight)/2),this.fontOptions.valign==="bottom"&&(i+=(this.size.height-this.size.labelHeight)/2));for(let g=0;g0&&(e.lineWidth=C.strokeWidth,e.strokeStyle=l,e.lineJoin="round"),e.fillStyle=I,C.strokeWidth>0&&e.strokeText(C.text,t+a,i+C.vadjust),e.fillText(C.text,t+a,i+C.vadjust),a+=C.width}i+=o.height}}}_setAlignment(e,t,i,n){if(this.isEdgeLabel&&this.fontOptions.align!=="horizontal"&&this.pointToSelf===!1){t=0,i=0;let s=2;this.fontOptions.align==="top"?(e.textBaseline="alphabetic",i-=2*s):this.fontOptions.align==="bottom"?(e.textBaseline="hanging",i+=2*s):e.textBaseline="middle"}else e.textBaseline=n;return[t,i]}_getColor(e,t,i){let n=e||"#000000",s=i||"#ffffff";if(t<=this.elementOptions.scaling.label.drawThreshold){let g=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-t)));n=Ft(n,g),s=Ft(s,g)}return[n,s]}getTextSize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this._processLabel(e,t,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}getSize(){let t=this.size.left,i=this.size.top-.5*2;if(this.isEdgeLabel){let s=-this.size.width*.5;switch(this.fontOptions.align){case"middle":t=s,i=-this.size.height*.5;break;case"top":t=s,i=-(this.size.height+2);break;case"bottom":t=s,i=2;break}}return{left:t,top:i,width:this.size.width,height:this.size.height}}calculateLabelSize(e,t,i){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,g=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";this._processLabel(e,t,i),this.size.left=n-this.size.width*.5,this.size.top=s-this.size.height*.5,this.size.yLine=s+(1-this.lineCount)*.5*this.fontOptions.size,g==="hanging"&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}getFormattingValues(e,t,i,n){let s=function(a,A,C){return A==="normal"?C==="mod"?"":a[C]:a[A][C]!==void 0?a[A][C]:a[C]},g={color:s(this.fontOptions,n,"color"),size:s(this.fontOptions,n,"size"),face:s(this.fontOptions,n,"face"),mod:s(this.fontOptions,n,"mod"),vadjust:s(this.fontOptions,n,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(t||i)&&(n==="normal"&&this.fontOptions.chooser===!0&&this.elementOptions.labelHighlightBold?g.mod="bold":typeof this.fontOptions.chooser=="function"&&this.fontOptions.chooser(g,this.elementOptions.id,t,i));let o="";return g.mod!==void 0&&g.mod!==""&&(o+=g.mod+" "),o+=g.size+"px "+g.face,e.font=o.replace(/"/g,""),g.font=e.font,g.height=g.size,g}differentState(e,t){return e!==this.selectedState||t!==this.hoverState}_processLabelText(e,t,i,n){return new Xf(e,this,t,i).process(n)}_processLabel(e,t,i){if(this.labelDirty===!1&&!this.differentState(t,i))return;let n=this._processLabelText(e,t,i,this.elementOptions.label);this.fontOptions.minWdt>0&&n.width0&&n.height0&&(this.enableBorderDashes(e,t),e.stroke(),this.disableBorderDashes(e,t)),e.restore()}performFill(e,t){e.save(),e.fillStyle=t.color,this.enableShadow(e,t),og(e).call(e),this.disableShadow(e,t),e.restore(),this.performStroke(e,t)}_addBoundingBoxMargin(e){this.boundingBox.left-=e,this.boundingBox.top-=e,this.boundingBox.bottom+=e,this.boundingBox.right+=e}_updateBoundingBox(e,t,i,n,s){i!==void 0&&this.resize(i,n,s),this.left=e-this.width/2,this.top=t-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}updateBoundingBox(e,t,i,n,s){this._updateBoundingBox(e,t,i,n,s)}getDimensionsFromLabel(e,t,i){this.textSize=this.labelModule.getTextSize(e,t,i);let n=this.textSize.width,s=this.textSize.height,g=14;return n===0&&(n=g,s=g),{width:n,height:s}}},WG=class extends Bi{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){let n=this.getDimensionsFromLabel(e,t,i);this.width=n.width+this.margin.right+this.margin.left,this.height=n.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}draw(e,t,i,n,s,g){this.resize(e,n,s),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,g),HD(e,this.left,this.top,this.width,this.height,g.borderRadius),this.performFill(e,g),this.updateBoundingBox(t,i,e,n,s),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,s)}updateBoundingBox(e,t,i,n,s){this._updateBoundingBox(e,t,i,n,s);let g=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(g)}distanceToBorder(e,t){e&&this.resize(e);let i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+i}},Us=class extends Bi{constructor(e,t,i){super(e,t,i),this.labelOffset=0,this.selected=!1}setOptions(e,t,i){this.options=e,t===void 0&&i===void 0||this.setImages(t,i)}setImages(e,t){t&&this.selected?(this.imageObj=t,this.imageObjAlt=e):(this.imageObj=e,this.imageObjAlt=t)}switchImages(e){let t=e&&!this.selected||!e&&this.selected;if(this.selected=e,this.imageObjAlt!==void 0&&t){let i=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=i}}_getImagePadding(){let e={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){let t=this.options.imagePadding;typeof t=="object"?(e.top=t.top,e.right=t.right,e.bottom=t.bottom,e.left=t.left):(e.top=t,e.right=t,e.bottom=t,e.left=t)}return e}_resizeImage(){let e,t;if(this.options.shapeProperties.useImageSize===!1){let i=1,n=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?i=this.imageObj.width/this.imageObj.height:n=this.imageObj.height/this.imageObj.width),e=this.options.size*2*i,t=this.options.size*2*n}else{let i=this._getImagePadding();e=this.imageObj.width+i.left+i.right,t=this.imageObj.height+i.top+i.bottom}this.width=e,this.height=t,this.radius=.5*this.width}_drawRawCircle(e,t,i,n){this.initContextForDraw(e,n),Xp(e,t,i,n.size),this.performFill(e,n)}_drawImageAtPosition(e,t){if(this.imageObj.width!=0){e.globalAlpha=t.opacity!==void 0?t.opacity:1,this.enableShadow(e,t);let i=1;this.options.shapeProperties.interpolation===!0&&(i=this.imageObj.width/this.width/this.body.view.scale);let n=this._getImagePadding(),s=this.left+n.left,g=this.top+n.top,o=this.width-n.left-n.right,a=this.height-n.top-n.bottom;this.imageObj.drawImageAtPosition(e,i,s,g,o,a),this.disableShadow(e,t)}}_drawImageLabel(e,t,i,n,s){let g=0;if(this.height!==void 0){g=this.height*.5;let a=this.labelModule.getTextSize(e,n,s);a.lineCount>=1&&(g+=a.height/2)}let o=i+g;this.options.label&&(this.labelOffset=g),this.labelModule.draw(e,t,o,n,s,"hanging")}},GG=class extends Us{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){let n=this.getDimensionsFromLabel(e,t,i),s=Math.max(n.width+this.margin.right+this.margin.left,n.height+this.margin.top+this.margin.bottom);this.options.size=s/2,this.width=s,this.height=s,this.radius=this.width/2}}draw(e,t,i,n,s,g){this.resize(e,n,s),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,g),this.updateBoundingBox(t,i),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,i,n,s)}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size}distanceToBorder(e){return e&&this.resize(e),this.width*.5}},Qf=class extends Us{constructor(e,t,i,n,s){super(e,t,i),this.setImages(n,s)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){let s=this.options.size*2;this.width=s,this.height=s,this.radius=.5*this.width;return}this.needsRefresh(t,i)&&this._resizeImage()}draw(e,t,i,n,s,g){this.switchImages(n),this.resize();let o=t,a=i;this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=i,o+=this.width/2,a+=this.height/2):(this.left=t-this.width/2,this.top=i-this.height/2),this._drawRawCircle(e,o,a,g),e.save(),e.clip(),this._drawImageAtPosition(e,g),e.restore(),this._drawImageLabel(e,o,a,n,s),this.updateBoundingBox(t,i)}updateBoundingBox(e,t){this.options.shapeProperties.coordinateOrigin==="top-left"?(this.boundingBox.top=t,this.boundingBox.left=e,this.boundingBox.right=e+this.options.size*2,this.boundingBox.bottom=t+this.options.size*2):(this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}distanceToBorder(e){return e&&this.resize(e),this.width*.5}},vi=class extends Bi{constructor(e,t,i){super(e,t,i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{size:this.options.size};if(this.needsRefresh(t,i)){var s,g;this.labelModule.getTextSize(e,t,i);let o=2*n.size;this.width=(s=this.customSizeWidth)!==null&&s!==void 0?s:o,this.height=(g=this.customSizeHeight)!==null&&g!==void 0?g:o,this.radius=.5*this.width}}_drawShape(e,t,i,n,s,g,o,a){return this.resize(e,g,o,a),this.left=n-this.width/2,this.top=s-this.height/2,this.initContextForDraw(e,a),ZF(t)(e,n,s,a.size),this.performFill(e,a),this.options.icon!==void 0&&this.options.icon.code!==void 0&&(e.font=(g?"bold ":"")+this.height/2+"px "+(this.options.icon.face||"FontAwesome"),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",e.fillText(this.options.icon.code,n,s)),{drawExternalLabel:()=>{if(this.options.label!==void 0){this.labelModule.calculateLabelSize(e,g,o,n,s,"hanging");let A=s+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(e,n,A,g,o,"hanging")}this.updateBoundingBox(n,s)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}};function AD(r,e){var t=Se(r);if(fi){var i=fi(r);e&&(i=ze(i).call(i,function(n){return xi(r,n).enumerable})),t.push.apply(t,i)}return t}function ZG(r){for(var e=1;e{e.save(),a(),e.restore()}}return o.nodeDimensions&&(this.customSizeWidth=o.nodeDimensions.width,this.customSizeHeight=o.nodeDimensions.height),o}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},$f=class extends Bi{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){if(this.needsRefresh(t,i)){let s=this.getDimensionsFromLabel(e,t,i).width+this.margin.right+this.margin.left;this.width=s,this.height=s,this.radius=this.width/2}}draw(e,t,i,n,s,g){this.resize(e,n,s),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,g),YD(e,t-this.width/2,i-this.height/2,this.width,this.height),this.performFill(e,g),this.updateBoundingBox(t,i,e,n,s),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,s)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},jG=class extends vi{constructor(e,t,i){super(e,t,i)}draw(e,t,i,n,s,g){return this._drawShape(e,"diamond",4,t,i,n,s,g)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},ep=class extends vi{constructor(e,t,i){super(e,t,i)}draw(e,t,i,n,s,g){return this._drawShape(e,"circle",2,t,i,n,s,g)}distanceToBorder(e){return e&&this.resize(e),this.options.size}},ea=class extends Bi{constructor(e,t,i){super(e,t,i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){let n=this.getDimensionsFromLabel(e,t,i);this.height=n.height*2,this.width=n.width+n.height,this.radius=.5*this.width}}draw(e,t,i,n,s,g){this.resize(e,n,s),this.left=t-this.width*.5,this.top=i-this.height*.5,this.initContextForDraw(e,g),Mf(e,this.left,this.top,this.width,this.height),this.performFill(e,g),this.updateBoundingBox(t,i,e,n,s),this.labelModule.draw(e,t,i,n,s)}distanceToBorder(e,t){e&&this.resize(e);let i=this.width*.5,n=this.height*.5,s=Math.sin(t)*i,g=Math.cos(t)*n;return i*n/Math.sqrt(s*s+g*g)}},tp=class extends Bi{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){this.needsRefresh(t,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,i,n,s,g){return this.resize(e,n,s),this.options.icon.size=this.options.icon.size||50,this.left=t-this.width/2,this.top=i-this.height/2,this._icon(e,t,i,n,s,g),{drawExternalLabel:()=>{this.options.label!==void 0&&this.labelModule.draw(e,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,n),this.updateBoundingBox(t,i)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.icon.size*.5,this.boundingBox.left=e-this.options.icon.size*.5,this.boundingBox.right=e+this.options.icon.size*.5,this.boundingBox.bottom=t+this.options.icon.size*.5,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5))}_icon(e,t,i,n,s,g){let o=Number(this.options.icon.size);this.options.icon.code!==void 0?(e.font=[this.options.icon.weight!=null?this.options.icon.weight:n?"bold":"",(this.options.icon.weight!=null&&n?5:0)+o+"px",this.options.icon.face].join(" "),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",this.enableShadow(e,g),e.fillText(this.options.icon.code,t,i),this.disableShadow(e,g)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},HG=class extends Us{constructor(e,t,i,n,s){super(e,t,i),this.setImages(n,s)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){let s=this.options.size*2;this.width=s,this.height=s;return}this.needsRefresh(t,i)&&this._resizeImage()}draw(e,t,i,n,s,g){e.save(),this.switchImages(n),this.resize();let o=t,a=i;if(this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=i,o+=this.width/2,a+=this.height/2):(this.left=t-this.width/2,this.top=i-this.height/2),this.options.shapeProperties.useBorderWithImage===!0){let A=this.options.borderWidth,C=this.options.borderWidthSelected||2*this.options.borderWidth,I=(n?C:A)/this.body.view.scale;e.lineWidth=Math.min(this.width,I),e.beginPath();let l=n?this.options.color.highlight.border:s?this.options.color.hover.border:this.options.color.border,h=n?this.options.color.highlight.background:s?this.options.color.hover.background:this.options.color.background;g.opacity!==void 0&&(l=Ft(l,g.opacity),h=Ft(h,g.opacity)),e.strokeStyle=l,e.fillStyle=h,e.rect(this.left-.5*e.lineWidth,this.top-.5*e.lineWidth,this.width+e.lineWidth,this.height+e.lineWidth),og(e).call(e),this.performStroke(e,g),e.closePath()}this._drawImageAtPosition(e,g),this._drawImageLabel(e,o,a,n,s),this.updateBoundingBox(t,i),e.restore()}updateBoundingBox(e,t){this.resize(),this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=e,this.top=t):(this.left=e-this.width/2,this.top=t-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},ip=class extends vi{constructor(e,t,i){super(e,t,i)}draw(e,t,i,n,s,g){return this._drawShape(e,"square",2,t,i,n,s,g)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},np=class extends vi{constructor(e,t,i){super(e,t,i)}draw(e,t,i,n,s,g){return this._drawShape(e,"hexagon",4,t,i,n,s,g)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},rp=class extends vi{constructor(e,t,i){super(e,t,i)}draw(e,t,i,n,s,g){return this._drawShape(e,"star",4,t,i,n,s,g)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},sp=class extends Bi{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){this.needsRefresh(t,i)&&(this.textSize=this.labelModule.getTextSize(e,t,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,i,n,s,g){this.resize(e,n,s),this.left=t-this.width/2,this.top=i-this.height/2,this.enableShadow(e,g),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,s),this.disableShadow(e,g),this.updateBoundingBox(t,i,e,n,s)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},YG=class extends vi{constructor(e,t,i){super(e,t,i)}draw(e,t,i,n,s,g){return this._drawShape(e,"triangle",3,t,i,n,s,g)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}},gp=class extends vi{constructor(e,t,i){super(e,t,i)}draw(e,t,i,n,s,g){return this._drawShape(e,"triangleDown",3,t,i,n,s,g)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};function CD(r,e){var t=Se(r);if(fi){var i=fi(r);e&&(i=ze(i).call(i,function(n){return xi(r,n).enumerable})),t.push.apply(t,i)}return t}function ID(r){for(var e=1;et[A]!=null);a.push("font"),Yo(a,e,o),e.color=Lf(e.color)}static parseOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=arguments.length>4?arguments[4]:void 0;if(Yo(["color","fixed","shadow"],e,t,i),r.checkMass(t),e.opacity!==void 0&&(r.checkOpacity(e.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity),e.opacity=void 0)),t.opacity!==void 0&&(r.checkOpacity(t.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+t.opacity),t.opacity=void 0)),t.shapeProperties&&!r.checkCoordinateOrigin(t.shapeProperties.coordinateOrigin)&&console.error("Invalid option for node coordinateOrigin, found: "+t.shapeProperties.coordinateOrigin),_t(e,t,"shadow",n),t.color!==void 0&&t.color!==null){let o=Lf(t.color);j2(e.color,o)}else i===!0&&t.color===null&&(e.color=nn(n.color));t.fixed!==void 0&&t.fixed!==null&&(typeof t.fixed=="boolean"?(e.fixed.x=t.fixed,e.fixed.y=t.fixed):(t.fixed.x!==void 0&&typeof t.fixed.x=="boolean"&&(e.fixed.x=t.fixed.x),t.fixed.y!==void 0&&typeof t.fixed.y=="boolean"&&(e.fixed.y=t.fixed.y))),i===!0&&t.font===null&&(e.font=nn(n.font)),r.updateGroupOptions(e,t,s),t.scaling!==void 0&&_t(e.scaling,t.scaling,"label",n.scaling)}getFormattingValues(){let e={color:this.options.color.background,opacity:this.options.opacity,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover?this.chooser===!0?this.selected?(this.options.borderWidthSelected!=null?e.borderWidth=this.options.borderWidthSelected:e.borderWidth*=2,e.color=this.options.color.highlight.background,e.borderColor=this.options.color.highlight.border,e.shadow=this.options.shadow.enabled):this.hover&&(e.color=this.options.color.hover.background,e.borderColor=this.options.color.hover.border,e.shadow=this.options.shadow.enabled):typeof this.chooser=="function"&&(this.chooser(e,this.options.id,this.selected,this.hover),e.shadow===!1&&(e.shadowColor!==this.options.shadow.color||e.shadowSize!==this.options.shadow.size||e.shadowX!==this.options.shadow.x||e.shadowY!==this.options.shadow.y)&&(e.shadow=!0)):e.shadow=this.options.shadow.enabled,this.options.opacity!==void 0){let t=this.options.opacity;e.borderColor=Ft(e.borderColor,t),e.color=Ft(e.color,t),e.shadowColor=Ft(e.shadowColor,t)}return e}updateLabelModule(e){(this.options.label===void 0||this.options.label===null)&&(this.options.label=""),r.updateGroupOptions(this.options,ID(ID({},e),{},{color:e&&e.color||this._localColor||void 0}),this.grouplist);let t=this.grouplist.get(this.options.group,!1),i=[e,this.options,t,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,i),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateShape(e){if(e===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case"box":this.shape=new WG(this.options,this.body,this.labelModule);break;case"circle":this.shape=new GG(this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new Qf(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"custom":this.shape=new Jf(this.options,this.body,this.labelModule,this.options.ctxRenderer);break;case"database":this.shape=new $f(this.options,this.body,this.labelModule);break;case"diamond":this.shape=new jG(this.options,this.body,this.labelModule);break;case"dot":this.shape=new ep(this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new ea(this.options,this.body,this.labelModule);break;case"icon":this.shape=new tp(this.options,this.body,this.labelModule);break;case"image":this.shape=new HG(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"square":this.shape=new ip(this.options,this.body,this.labelModule);break;case"hexagon":this.shape=new np(this.options,this.body,this.labelModule);break;case"star":this.shape=new rp(this.options,this.body,this.labelModule);break;case"text":this.shape=new sp(this.options,this.body,this.labelModule);break;case"triangle":this.shape=new YG(this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new gp(this.options,this.body,this.labelModule);break;default:this.shape=new ea(this.options,this.body,this.labelModule);break}this.needsRefresh()}select(){this.selected=!0,this.needsRefresh()}unselect(){this.selected=!1,this.needsRefresh()}needsRefresh(){this.shape.refreshNeeded=!0}getTitle(){return this.options.title}distanceToBorder(e,t){return this.shape.distanceToBorder(e,t)}isFixed(){return this.options.fixed.x&&this.options.fixed.y}isSelected(){return this.selected}getValue(){return this.options.value}getLabelSize(){return this.labelModule.size()}setValueRange(e,t,i){if(this.options.value!==void 0){let n=this.options.scaling.customScalingFunction(e,t,i,this.options.value),s=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){let g=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+n*g}this.options.size=this.options.scaling.min+n*s}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}draw(e){let t=this.getFormattingValues();return this.shape.draw(e,this.x,this.y,this.selected,this.hover,t)||{}}updateBoundingBox(e){this.shape.updateBoundingBox(this.x,this.y,e)}resize(e){let t=this.getFormattingValues();this.shape.resize(e,this.selected,this.hover,t)}getItemsOnPoint(e){let t=[];return this.labelModule.visible()&&Kf(this.labelModule.getSize(),e)&&t.push({nodeId:this.id,labelId:0}),Kf(this.shape.boundingBox,e)&&t.push({nodeId:this.id}),t}isOverlappingWith(e){return this.shape.lefte.left&&this.shape.tope.top}isBoundingBoxOverlappingWith(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}static checkMass(e,t){if(e.mass!==void 0&&e.mass<=0){let i="";t!==void 0&&(i=" in node id: "+t),console.error("%cNegative or zero mass disallowed"+i+", setting mass to 1.",U2),e.mass=1}}},op=class{constructor(e,t,i,n){var s;if(this.body=e,this.images=t,this.groups=i,this.layoutEngine=n,this.body.functions.createNode=M(s=this.create).call(s,this),this.nodesListeners={add:(g,o)=>{this.add(o.items)},update:(g,o)=>{this.update(o.items,o.data,o.oldData)},remove:(g,o)=>{this.remove(o.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:void 0,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},opacity:void 0,fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,imagePadding:{top:0,right:0,bottom:0,left:0},label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(g,o,a,A){if(o===g)return .5;{let C=1/(o-g);return Math.max(0,(A-g)*C)}}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1,coordinateOrigin:"center"},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=nn(this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e,t;this.body.emitter.on("refreshNodes",M(e=this.refresh).call(e,this)),this.body.emitter.on("refresh",M(t=this.refresh).call(t,this)),this.body.emitter.on("destroy",()=>{$(this.nodesListeners,(i,n)=>{this.body.data.nodes&&this.body.data.nodes.off(n,i)}),delete this.body.functions.createNode,delete this.nodesListeners.add,delete this.nodesListeners.update,delete this.nodesListeners.remove,delete this.nodesListeners})}setOptions(e){if(e!==void 0){if(at.parseOptions(this.options,e),e.opacity!==void 0&&(jf(e.opacity)||!Nn(e.opacity)||e.opacity<0||e.opacity>1?console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity):this.options.opacity=e.opacity),e.shape!==void 0)for(let t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].updateShape();if(typeof e.font<"u"||typeof e.widthConstraint<"u"||typeof e.heightConstraint<"u")for(let t of Se(this.body.nodes))this.body.nodes[t].updateLabelModule(),this.body.nodes[t].needsRefresh();if(e.size!==void 0)for(let t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].needsRefresh();(e.hidden!==void 0||e.physics!==void 0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=this.body.data.nodes;if(dP("id",e))this.body.data.nodes=e;else if(Ce(e))this.body.data.nodes=new mi,this.body.data.nodes.add(e);else if(!e)this.body.data.nodes=new mi;else throw new TypeError("Array or DataSet expected");if(i&&$(this.nodesListeners,function(n,s){i.off(s,n)}),this.body.nodes={},this.body.data.nodes){let n=this;$(this.nodesListeners,function(g,o){n.body.data.nodes.on(o,g)});let s=this.body.data.nodes.getIds();this.add(s,!0)}t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i,n=[];for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:at;return new t(e,this.body,this.images,this.groups,this.options,this.defaultOptions)}refresh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;$(this.body.nodes,(t,i)=>{let n=this.body.data.nodes.get(i);n!==void 0&&(e===!0&&t.setOptions({x:null,y:null}),t.setOptions({fixed:!1}),t.setOptions(n))})}getPositions(e){let t={};if(e!==void 0){if(Ce(e)===!0){for(let i=0;i{this.body.emitter.emit("startSimulation")},0)):console.error("Node id supplied to moveNode does not exist. Provided: ",e)}},lD={},hD;function KG(){if(hD)return lD;hD=1;var r=Z(),e=Math.hypot,t=Math.abs,i=Math.sqrt,n=!!e&&e(1/0,NaN)!==1/0;return r({target:"Math",stat:!0,arity:2,forced:n},{hypot:function(g,o){for(var a=0,A=0,C=arguments.length,I=0,l,h;A0?(h=l/I,a+=h*h):a+=l;return I===1/0?1/0:I*i(a)}}),lD}var ff,dD;function UG(){if(dD)return ff;dD=1,KG();var r=le();return ff=r.Math.hypot,ff}var pf,cD;function XG(){if(cD)return pf;cD=1;var r=UG();return pf=r,pf}var mf,uD;function QG(){return uD||(uD=1,mf=XG()),mf}var JG=QG(),$G=Y(JG),Oe=class{static transform(e,t){Ce(e)||(e=[e]);let i=t.point.x,n=t.point.y,s=t.angle,g=t.length;for(let o=0;o4&&arguments[4]!==void 0?arguments[4]:this.getViaNode();e.strokeStyle=this.getColor(e,t),e.lineWidth=t.width,t.dashes!==!1?this._drawDashedLine(e,t,s):this._drawLine(e,t,s)}_drawLine(e,t,i,n,s){if(this.from!=this.to)this._line(e,t,i,n,s);else{let[g,o,a]=this._getCircleData(e);this._circle(e,t,g,o,a)}}_drawDashedLine(e,t,i,n,s){e.lineCap="round";let g=Ce(t.dashes)?t.dashes:[5,5];if(e.setLineDash!==void 0){if(e.save(),e.setLineDash(g),e.lineDashOffset=0,this.from!=this.to)this._line(e,t,i);else{let[o,a,A]=this._getCircleData(e);this._circle(e,t,o,a,A)}e.setLineDash([0]),e.lineDashOffset=0,e.restore()}else{if(this.from!=this.to)KD(e,this.from.x,this.from.y,this.to.x,this.to.y,g);else{let[o,a,A]=this._getCircleData(e);this._circle(e,t,o,a,A)}this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}}findBorderPosition(e,t,i){return this.from!=this.to?this._findBorderPosition(e,t,i):this._findBorderPositionCircle(e,t,i)}findBorderPositions(e){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,e),to:this._findBorderPosition(this.to,e)};{var t;let[i,n]=ei(t=this._getCircleData(e)).call(t,0,2);return{from:this._findBorderPositionCircle(this.from,e,{x:i,y:n,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,e,{x:i,y:n,low:.6,high:.8,direction:1})}}}_getCircleData(e){let t=this.options.selfReference.size;e!==void 0&&this.from.shape.width===void 0&&this.from.shape.resize(e);let i=uP(e,this.options.selfReference.angle,t,this.from);return[i.x,i.y,t]}_pointOnCircle(e,t,i,n){let s=n*2*Math.PI;return{x:e+i*Math.cos(s),y:t-i*Math.sin(s)}}_findBorderPositionCircle(e,t,i){let n=i.x,s=i.y,g=i.low,o=i.high,a=i.direction,A=10,C=this.options.selfReference.size,I=.05,l,h=(g+o)*.5,d=0;this.options.arrowStrikethrough===!0&&(a===-1?d=this.options.endPointOffset.from:a===1&&(d=this.options.endPointOffset.to));let c=0;do{h=(g+o)*.5,l=this._pointOnCircle(n,s,C,h);let f=Math.atan2(e.y-l.y,e.x-l.x),u=e.distanceToBorder(t,f)+d,p=Math.sqrt(Math.pow(l.x-e.x,2)+Math.pow(l.y-e.y,2)),v=u-p;if(Math.abs(v)0?a>0?g=h:o=h:a>0?o=h:g=h,++c}while(g<=o&&c1?C=1:C<0&&(C=0);let I=e+C*o,l=t+C*a,h=I-s,d=l-g;return Math.sqrt(h*h+d*d)}getArrowData(e,t,i,n,s,g){let o,a,A,C,I,l,h,d=g.width;t==="from"?(A=this.from,C=this.to,I=g.fromArrowScale<0,l=Math.abs(g.fromArrowScale),h=g.fromArrowType):t==="to"?(A=this.to,C=this.from,I=g.toArrowScale<0,l=Math.abs(g.toArrowScale),h=g.toArrowType):(A=this.to,C=this.from,I=g.middleArrowScale<0,l=Math.abs(g.middleArrowScale),h=g.middleArrowType);let c=15*l+3*d;if(A!=C){let v=$G(A.x-C.x,A.y-C.y),m=c/v;if(t!=="middle")if(this.options.smooth.enabled===!0){let b=this._findBorderPosition(A,e,{via:i}),w=this.getPoint(b.t+m*(t==="from"?1:-1),i);o=Math.atan2(b.y-w.y,b.x-w.x),a=b}else o=Math.atan2(A.y-C.y,A.x-C.x),a=this._findBorderPosition(A,e);else{let b=(I?-m:m)/2,w=this.getPoint(.5+b,i),x=this.getPoint(.5-b,i);o=Math.atan2(w.y-x.y,w.x-x.x),a=this.getPoint(.5,i)}}else{let[v,m,b]=this._getCircleData(e);if(t==="from"){let w=this.options.selfReference.angle,x=this.options.selfReference.angle+Math.PI,y=this._findBorderPositionCircle(this.from,e,{x:v,y:m,low:w,high:x,direction:-1});o=y.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI,a=y}else if(t==="to"){let w=this.options.selfReference.angle,x=this.options.selfReference.angle+Math.PI,y=this._findBorderPositionCircle(this.from,e,{x:v,y:m,low:w,high:x,direction:1});o=y.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI,a=y}else{let w=this.options.selfReference.angle/(2*Math.PI);a=this._pointOnCircle(v,m,b,w),o=w*-2*Math.PI+1.5*Math.PI+.1*Math.PI}}let f=a.x-c*.9*Math.cos(o),u=a.y-c*.9*Math.sin(o);return{point:a,core:{x:f,y:u},angle:o,length:c,type:h}}drawArrowHead(e,t,i,n,s){e.strokeStyle=this.getColor(e,t),e.fillStyle=e.strokeStyle,e.lineWidth=t.width,ta.draw(e,s)&&(this.enableShadow(e,t),og(e).call(e),this.disableShadow(e,t))}enableShadow(e,t){t.shadow===!0&&(e.shadowColor=t.shadowColor,e.shadowBlur=t.shadowSize,e.shadowOffsetX=t.shadowX,e.shadowOffsetY=t.shadowY)}disableShadow(e,t){t.shadow===!0&&(e.shadowColor="rgba(0,0,0,0)",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}drawBackground(e,t){if(t.background!==!1){let i={strokeStyle:e.strokeStyle,lineWidth:e.lineWidth,dashes:e.dashes};e.strokeStyle=t.backgroundColor,e.lineWidth=t.backgroundSize,this.setStrokeDashed(e,t.backgroundDashes),e.stroke(),e.strokeStyle=i.strokeStyle,e.lineWidth=i.lineWidth,e.dashes=i.dashes,this.setStrokeDashed(e,t.dashes)}}setStrokeDashed(e,t){if(t!==!1)if(e.setLineDash!==void 0){let i=Ce(t)?t:[5,5];e.setLineDash(i)}else console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.");else e.setLineDash!==void 0?e.setLineDash([]):console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.")}};function mD(r,e){var t=Se(r);if(fi){var i=fi(r);e&&(i=ze(i).call(i,function(n){return xi(r,n).enumerable})),t.push.apply(t,i)}return t}function vD(r){for(var e=1;e2&&arguments[2]!==void 0?arguments[2]:this._getViaCoordinates(),n=10,s=.2,g=!1,o=1,a=0,A=this.to,C,I,l=this.options.endPointOffset?this.options.endPointOffset.to:0;e.id===this.from.id&&(A=this.from,g=!0,l=this.options.endPointOffset?this.options.endPointOffset.from:0),this.options.arrowStrikethrough===!1&&(l=0);let h=0;do{I=(a+o)*.5,C=this.getPoint(I,i);let d=Math.atan2(A.y-C.y,A.x-C.x),c=A.distanceToBorder(t,d)+l,f=Math.sqrt(Math.pow(C.x-A.x,2)+Math.pow(C.y-A.y,2)),u=c-f;if(Math.abs(u)0&&(A=this._getDistanceToLine(d,c,l,h,s,g),a=A{this.positionBezierNode()},this._body.emitter.on("_repositionBezierNodes",this._boundFunction)}setOptions(e){super.setOptions(e);let t=!1;this.options.physics!==e.physics&&(t=!0),this.options=e,this.id=this.options.id,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.setupSupportNode(),this.connect(),t===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.from===void 0||this.to===void 0||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}cleanup(){return this._body.emitter.off("_repositionBezierNodes",this._boundFunction),this.via!==void 0?(delete this._body.nodes[this.via.id],this.via=void 0,!0):!1}setupSupportNode(){if(this.via===void 0){let e="edgeId:"+this.id,t=this._body.functions.createNode({id:e,shape:"circle",physics:!0,hidden:!0});this._body.nodes[e]=t,this.via=t,this.via.parentEdgeId=this.id,this.positionBezierNode()}}positionBezierNode(){this.via!==void 0&&this.from!==void 0&&this.to!==void 0?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):this.via!==void 0&&(this.via.x=0,this.via.y=0)}_line(e,t,i){this._bezierCurve(e,t,i)}_getViaCoordinates(){return this.via}getViaNode(){return this.via}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.via;if(this.from===this.to){let[i,n,s]=this._getCircleData(),g=2*Math.PI*(1-e);return{x:i+s*Math.sin(g),y:n+s-s*(1-Math.cos(g))}}else return{x:Math.pow(1-e,2)*this.fromPoint.x+2*e*(1-e)*t.x+Math.pow(e,2)*this.toPoint.x,y:Math.pow(1-e,2)*this.fromPoint.y+2*e*(1-e)*t.y+Math.pow(e,2)*this.toPoint.y}}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t,this.via)}_getDistanceToEdge(e,t,i,n,s,g){return this._getDistanceToBezierEdge(e,t,i,n,s,g,this.via)}},ra=class extends Xs{constructor(e,t,i){super(e,t,i)}_line(e,t,i){this._bezierCurve(e,t,i)}getViaNode(){return this._getViaCoordinates()}_getViaCoordinates(){let e=this.options.smooth.roundness,t=this.options.smooth.type,i=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y);if(t==="discrete"||t==="diagonalCross"){let s,g;i<=n?s=g=e*n:s=g=e*i,this.from.x>this.to.x&&(s=-s),this.from.y>=this.to.y&&(g=-g);let o=this.from.x+s,a=this.from.y+g;return t==="discrete"&&(i<=n?o=ithis.to.x&&(s=-s),this.from.y>=this.to.y&&(g=-g);let o=this.from.x+s,a=this.from.y+g;return i<=n?this.from.x<=this.to.x?o=this.to.xo?this.to.x:o:this.from.y>=this.to.y?a=this.to.y>a?this.to.y:a:a=this.to.y2&&arguments[2]!==void 0?arguments[2]:{};return this._findBorderPositionBezier(e,t,i.via)}_getDistanceToEdge(e,t,i,n,s,g){let o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(e,t,i,n,s,g,o)}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates(),i=e,n=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,s=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y;return{x:n,y:s}}},mp=class extends Xs{constructor(e,t,i){super(e,t,i)}_getDistanceToBezierEdge2(e,t,i,n,s,g,o,a){let A=1e9,C=e,I=t,l=[0,0,0,0];for(let h=1;h<10;h++){let d=.1*h;l[0]=Math.pow(1-d,3),l[1]=3*d*Math.pow(1-d,2),l[2]=3*Math.pow(d,2)*(1-d),l[3]=Math.pow(d,3);let c=l[0]*e+l[1]*o.x+l[2]*a.x+l[3]*i,f=l[0]*t+l[1]*o.y+l[2]*a.y+l[3]*n;if(h>0){let u=this._getDistanceToLine(C,I,c,f,s,g);A=uMath.abs(t)||this.options.smooth.forceDirection===!0||this.options.smooth.forceDirection==="horizontal")&&this.options.smooth.forceDirection!=="vertical"?(n=this.from.y,g=this.to.y,i=this.from.x-o*e,s=this.to.x+o*e):(n=this.from.y-o*t,g=this.to.y+o*t,i=this.from.x,s=this.to.x),[{x:i,y:n},{x:s,y:g}]}getViaNode(){return this._getViaCoordinates()}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t)}_getDistanceToEdge(e,t,i,n,s,g){let[o,a]=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge2(e,t,i,n,s,g,o,a)}getPoint(e){let[t,i]=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates(),n=e,s=[Math.pow(1-n,3),3*n*Math.pow(1-n,2),3*Math.pow(n,2)*(1-n),Math.pow(n,3)],g=s[0]*this.fromPoint.x+s[1]*t.x+s[2]*i.x+s[3]*this.toPoint.x,o=s[0]*this.fromPoint.y+s[1]*t.y+s[2]*i.y+s[3]*this.toPoint.y;return{x:g,y:o}}},ga=class extends ia{constructor(e,t,i){super(e,t,i)}_line(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),e.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}getViaNode(){}getPoint(e){return{x:(1-e)*this.fromPoint.x+e*this.toPoint.x,y:(1-e)*this.fromPoint.y+e*this.toPoint.y}}_findBorderPosition(e,t){let i=this.to,n=this.from;e.id===this.from.id&&(i=this.from,n=this.to);let s=Math.atan2(i.y-n.y,i.x-n.x),g=i.x-n.x,o=i.y-n.y,a=Math.sqrt(g*g+o*o),A=e.distanceToBorder(t,s),C=(a-A)/a;return{x:(1-C)*n.x+C*i.x,y:(1-C)*n.y+C*i.y,t:0}}_getDistanceToEdge(e,t,i,n,s,g){return this._getDistanceToLine(e,t,i,n,s,g)}},rn=class r{constructor(e,t,i,n,s){if(t===void 0)throw new Error("No body provided");this.options=nn(n),this.globalOptions=n,this.defaultOptions=s,this.body=t,this.imagelist=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new $o(this.body,this.options,!0),this.setOptions(e)}setOptions(e){if(!e)return;let t=typeof e.physics<"u"&&this.options.physics!==e.physics||typeof e.hidden<"u"&&(this.options.hidden||!1)!==(e.hidden||!1)||typeof e.from<"u"&&this.options.from!==e.from||typeof e.to<"u"&&this.options.to!==e.to;r.parseOptions(this.options,e,!0,this.globalOptions),e.id!==void 0&&(this.id=e.id),e.from!==void 0&&(this.fromId=e.from),e.to!==void 0&&(this.toId=e.to),e.title!==void 0&&(this.title=e.title),e.value!==void 0&&(e.value=cP(e.value));let i=[e,this.options,this.defaultOptions];return this.chooser=bm("edge",i),this.updateLabelModule(e),t=this.updateEdgeType()||t,this._setInteractionWidths(),this.connect(),t}static parseOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(Kr(["endPointOffset","arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","selfReference","to","title","value","width","font","chosen","widthConstraint"],e,t,i),t.endPointOffset!==void 0&&t.endPointOffset.from!==void 0&&(Nn(t.endPointOffset.from)?e.endPointOffset.from=t.endPointOffset.from:(e.endPointOffset.from=n.endPointOffset.from!==void 0?n.endPointOffset.from:0,console.error("endPointOffset.from is not a valid number"))),t.endPointOffset!==void 0&&t.endPointOffset.to!==void 0&&(Nn(t.endPointOffset.to)?e.endPointOffset.to=t.endPointOffset.to:(e.endPointOffset.to=n.endPointOffset.to!==void 0?n.endPointOffset.to:0,console.error("endPointOffset.to is not a valid number"))),Qo(t.label)?e.label=t.label:Qo(e.label)||(e.label=void 0),_t(e,t,"smooth",n),_t(e,t,"shadow",n),_t(e,t,"background",n),t.dashes!==void 0&&t.dashes!==null?e.dashes=t.dashes:i===!0&&t.dashes===null&&(e.dashes=en(n.dashes)),t.scaling!==void 0&&t.scaling!==null?(t.scaling.min!==void 0&&(e.scaling.min=t.scaling.min),t.scaling.max!==void 0&&(e.scaling.max=t.scaling.max),_t(e.scaling,t.scaling,"label",n.scaling)):i===!0&&t.scaling===null&&(e.scaling=en(n.scaling)),t.arrows!==void 0&&t.arrows!==null)if(typeof t.arrows=="string"){let o=t.arrows.toLowerCase();e.arrows.to.enabled=de(o).call(o,"to")!=-1,e.arrows.middle.enabled=de(o).call(o,"middle")!=-1,e.arrows.from.enabled=de(o).call(o,"from")!=-1}else if(typeof t.arrows=="object")_t(e.arrows,t.arrows,"to",n.arrows),_t(e.arrows,t.arrows,"middle",n.arrows),_t(e.arrows,t.arrows,"from",n.arrows);else throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+Hr(t.arrows));else i===!0&&t.arrows===null&&(e.arrows=en(n.arrows));if(t.color!==void 0&&t.color!==null){let o=Tr(t.color)?{color:t.color,highlight:t.color,hover:t.color,inherit:!1,opacity:1}:t.color,a=e.color;if(s)ve(a,n.color,!1,i);else for(let A in a)Object.prototype.hasOwnProperty.call(a,A)&&delete a[A];if(Tr(a))a.color=a,a.highlight=a,a.hover=a,a.inherit=!1,o.opacity===void 0&&(a.opacity=1);else{let A=!1;o.color!==void 0&&(a.color=o.color,A=!0),o.highlight!==void 0&&(a.highlight=o.highlight,A=!0),o.hover!==void 0&&(a.hover=o.hover,A=!0),o.inherit!==void 0&&(a.inherit=o.inherit),o.opacity!==void 0&&(a.opacity=Math.min(1,Math.max(0,o.opacity))),A===!0?a.inherit=!1:a.inherit===void 0&&(a.inherit="from")}}else i===!0&&t.color===null&&(e.color=nn(n.color));i===!0&&t.font===null&&(e.font=nn(n.font)),Object.prototype.hasOwnProperty.call(t,"selfReferenceSize")&&(console.warn("The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}"),e.selfReference.size=t.selfReferenceSize)}getFormattingValues(){let e=this.options.arrows.to===!0||this.options.arrows.to.enabled===!0,t=this.options.arrows.from===!0||this.options.arrows.from.enabled===!0,i=this.options.arrows.middle===!0||this.options.arrows.middle.enabled===!0,n=this.options.color.inherit,s={toArrow:e,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:t,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:n?void 0:this.options.color.color,inheritsColor:n,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(this.chooser===!0){if(this.selected){let g=this.options.selectionWidth;typeof g=="function"?s.width=g(s.width):typeof g=="number"&&(s.width+=g),s.width=Math.max(s.width,.3/this.body.view.scale),s.color=this.options.color.highlight,s.shadow=this.options.shadow.enabled}else if(this.hover){let g=this.options.hoverWidth;typeof g=="function"?s.width=g(s.width):typeof g=="number"&&(s.width+=g),s.width=Math.max(s.width,.3/this.body.view.scale),s.color=this.options.color.hover,s.shadow=this.options.shadow.enabled}}else typeof this.chooser=="function"&&(this.chooser(s,this.options.id,this.selected,this.hover),s.color!==void 0&&(s.inheritsColor=!1),s.shadow===!1&&(s.shadowColor!==this.options.shadow.color||s.shadowSize!==this.options.shadow.size||s.shadowX!==this.options.shadow.x||s.shadowY!==this.options.shadow.y)&&(s.shadow=!0));else s.shadow=this.options.shadow.enabled,s.width=Math.max(s.width,.3/this.body.view.scale);return s}updateLabelModule(e){let t=[e,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,t),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateEdgeType(){let e=this.options.smooth,t=!1,i=!0;return this.edgeType!==void 0&&((this.edgeType instanceof na&&e.enabled===!0&&e.type==="dynamic"||this.edgeType instanceof sa&&e.enabled===!0&&e.type==="cubicBezier"||this.edgeType instanceof ra&&e.enabled===!0&&e.type!=="dynamic"&&e.type!=="cubicBezier"||this.edgeType instanceof ga&&e.type.enabled===!1)&&(i=!1),i===!0&&(t=this.cleanup())),i===!0?e.enabled===!0?e.type==="dynamic"?(t=!0,this.edgeType=new na(this.options,this.body,this.labelModule)):e.type==="cubicBezier"?this.edgeType=new sa(this.options,this.body,this.labelModule):this.edgeType=new ra(this.options,this.body,this.labelModule):this.edgeType=new ga(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),t}connect(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=this.from!==void 0&&this.to!==void 0,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}disconnect(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}getTitle(){return this.title}isSelected(){return this.selected}getValue(){return this.options.value}setValueRange(e,t,i){if(this.options.value!==void 0){let n=this.options.scaling.customScalingFunction(e,t,i,this.options.value),s=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){let g=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+n*g}this.options.width=this.options.scaling.min+n*s}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}_setInteractionWidths(){typeof this.options.hoverWidth=="function"?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,typeof this.options.selectionWidth=="function"?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}draw(e){let t=this.getFormattingValues();if(t.hidden)return;let i=this.edgeType.getViaNode();this.edgeType.drawLine(e,t,this.selected,this.hover,i),this.drawLabel(e,i)}drawArrows(e){let t=this.getFormattingValues();if(t.hidden)return;let i=this.edgeType.getViaNode(),n={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,t.fromArrow&&(n.from=this.edgeType.getArrowData(e,"from",i,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.fromPoint=n.from.core),t.fromArrowSrc&&(n.from.image=this.imagelist.load(t.fromArrowSrc)),t.fromArrowImageWidth&&(n.from.imageWidth=t.fromArrowImageWidth),t.fromArrowImageHeight&&(n.from.imageHeight=t.fromArrowImageHeight)),t.toArrow&&(n.to=this.edgeType.getArrowData(e,"to",i,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.toPoint=n.to.core),t.toArrowSrc&&(n.to.image=this.imagelist.load(t.toArrowSrc)),t.toArrowImageWidth&&(n.to.imageWidth=t.toArrowImageWidth),t.toArrowImageHeight&&(n.to.imageHeight=t.toArrowImageHeight)),t.middleArrow&&(n.middle=this.edgeType.getArrowData(e,"middle",i,this.selected,this.hover,t),t.middleArrowSrc&&(n.middle.image=this.imagelist.load(t.middleArrowSrc)),t.middleArrowImageWidth&&(n.middle.imageWidth=t.middleArrowImageWidth),t.middleArrowImageHeight&&(n.middle.imageHeight=t.middleArrowImageHeight)),t.fromArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,n.from),t.middleArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,n.middle),t.toArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,n.to)}drawLabel(e,t){if(this.options.label!==void 0){let i=this.from,n=this.to;this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(e,this.selected,this.hover);let s;if(i.id!=n.id){this.labelModule.pointToSelf=!1,s=this.edgeType.getPoint(.5,t),e.save();let g=this._getRotation(e);g.angle!=0&&(e.translate(g.x,g.y),e.rotate(g.angle)),this.labelModule.draw(e,s.x,s.y,this.selected,this.hover),e.restore()}else{this.labelModule.pointToSelf=!0;let g=uP(e,this.options.selfReference.angle,this.options.selfReference.size,i);s=this._pointOnCircle(g.x,g.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(e,s.x,s.y,this.selected,this.hover)}}}getItemsOnPoint(e){let t=[];if(this.labelModule.visible()){let n=this._getRotation();Kf(this.labelModule.getSize(),e,n)&&t.push({edgeId:this.id,labelId:0})}let i={left:e.x,top:e.y};return this.isOverlappingWith(i)&&t.push({edgeId:this.id}),t}isOverlappingWith(e){if(this.connected){let i=this.from.x,n=this.from.y,s=this.to.x,g=this.to.y,o=e.left,a=e.top;return this.edgeType.getDistanceToEdge(i,n,s,g,o,a)<10}else return!1}_getRotation(e){let t=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,t);e!==void 0&&this.labelModule.calculateLabelSize(e,this.selected,this.hover,i.x,i.y);let n={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()||this.options.font.align==="horizontal")return n;let s=this.from.y-this.to.y,g=this.from.x-this.to.x,o=Math.atan2(s,g);return(o<-1&&g<0||o>0&&g<0)&&(o+=Math.PI),n.angle=o,n}_pointOnCircle(e,t,i,n){return{x:e+i*Math.cos(n),y:t-i*Math.sin(n)}}select(){this.selected=!0}unselect(){this.selected=!1}cleanup(){return this.edgeType.cleanup()}remove(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}endPointsValid(){return this.body.nodes[this.fromId]!==void 0&&this.body.nodes[this.toId]!==void 0}},vp=class{constructor(e,t,i){var n;this.body=e,this.images=t,this.groups=i,this.body.functions.createEdge=M(n=this.create).call(n,this),this.edgesListeners={add:(s,g)=>{this.add(g.items)},update:(s,g)=>{this.update(g.items)},remove:(s,g)=>{this.remove(g.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(s,g,o,a){if(g===s)return .5;{let A=1/(g-s);return Math.max(0,(a-s)*A)}}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},background:{enabled:!1,color:"rgba(111,111,111,1)",size:10,dashes:!1},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},ve(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e=this,t,i;this.body.emitter.on("_forceDisableDynamicCurves",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;n==="dynamic"&&(n="continuous");let g=!1;for(let o in e.body.edges)if(Object.prototype.hasOwnProperty.call(e.body.edges,o)){let a=e.body.edges[o],A=e.body.data.edges.get(o);if(A!=null){let C=A.smooth;C!==void 0&&C.enabled===!0&&C.type==="dynamic"&&(n===void 0?a.setOptions({smooth:!1}):a.setOptions({smooth:{type:n}}),g=!0)}}s===!0&&g===!0&&e.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",()=>{this.reconnectEdges()}),this.body.emitter.on("refreshEdges",M(t=this.refresh).call(t,this)),this.body.emitter.on("refresh",M(i=this.refresh).call(i,this)),this.body.emitter.on("destroy",()=>{$(this.edgesListeners,(n,s)=>{this.body.data.edges&&this.body.data.edges.off(s,n)}),delete this.body.functions.createEdge,delete this.edgesListeners.add,delete this.edgesListeners.update,delete this.edgesListeners.remove,delete this.edgesListeners})}setOptions(e){if(e!==void 0){rn.parseOptions(this.options,e,!0,this.defaultOptions,!0);let t=!1;if(e.smooth!==void 0)for(let i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&(t=this.body.edges[i].updateEdgeType()||t);if(e.font!==void 0)for(let i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&this.body.edges[i].updateLabelModule();(e.hidden!==void 0||e.physics!==void 0||t===!0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=this.body.data.edges;if(dP("id",e))this.body.data.edges=e;else if(Ce(e))this.body.data.edges=new mi,this.body.data.edges.add(e);else if(!e)this.body.data.edges=new mi;else throw new TypeError("Array or DataSet expected");if(i&&$(this.edgesListeners,(n,s)=>{i.off(s,n)}),this.body.edges={},this.body.data.edges){$(this.edgesListeners,(s,g)=>{this.body.data.edges.on(g,s)});let n=this.body.data.edges.getIds();this.add(n,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=this.body.edges,n=this.body.data.edges;for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:!0;if(e.length===0)return;let i=this.body.edges;$(e,n=>{let s=i[n];s!==void 0&&s.remove()}),t&&this.body.emitter.emit("_dataChanged")}refresh(){$(this.body.edges,(e,t)=>{let i=this.body.data.edges.get(t);i!==void 0&&e.setOptions(i)})}create(e){return new rn(e,this.body,this.images,this.options,this.defaultOptions)}reconnectEdges(){let e,t=this.body.nodes,i=this.body.edges;for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e].edges=[]);for(e in i)if(Object.prototype.hasOwnProperty.call(i,e)){let n=i[e];n.from=null,n.to=null,n.connect()}}getConnectedNodes(e){let t=[];if(this.body.edges[e]!==void 0){let i=this.body.edges[e];i.fromId!==void 0&&t.push(i.fromId),i.toId!==void 0&&t.push(i.toId)}return t}_updateState(){this._addMissingEdges(),this._removeInvalidEdges()}_removeInvalidEdges(){let e=[];$(this.body.edges,(t,i)=>{let n=this.body.nodes[t.toId],s=this.body.nodes[t.fromId];n!==void 0&&n.isCluster===!0||s!==void 0&&s.isCluster===!0||(n===void 0||s===void 0)&&e.push(i)}),this.remove(e,!1)}_addMissingEdges(){let e=this.body.data.edges;if(e==null)return;let t=this.body.edges,i=[];oe(e).call(e,(n,s)=>{t[s]===void 0&&i.push(s)}),this.add(i,!0)}},oa=class{constructor(e,t,i){this.body=e,this.physicsBody=t,this.barnesHutTree,this.setOptions(i),this._rng=Ta("BARNES HUT SOLVER")}setOptions(e){this.options=e,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){let e,t=this.body.nodes,i=this.physicsBody.physicsNodeIndices,n=i.length,s=this._formBarnesHutTree(t,i);this.barnesHutTree=s;for(let g=0;g0&&this._getForceContributions(s.root,e)}}_getForceContributions(e,t){this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)}_getForceContribution(e,t){if(e.childrenCount>0){let i=e.centerOfMass.x-t.x,n=e.centerOfMass.y-t.y,s=Math.sqrt(i*i+n*n);s*e.calcSize>this.thetaInversed?this._calculateForces(s,i,n,t,e):e.childrenCount===4?this._getForceContributions(e,t):e.children.data.id!=t.id&&this._calculateForces(s,i,n,t,e)}}_calculateForces(e,t,i,n,s){e===0&&(e=.1,t=e),this.overlapAvoidanceFactor<1&&n.shape.radius&&(e=Math.max(.1+this.overlapAvoidanceFactor*n.shape.radius,e-n.shape.radius));let g=this.options.gravitationalConstant*s.mass*n.options.mass/Math.pow(e,3),o=t*g,a=i*g;this.physicsBody.forces[n.id].x+=o,this.physicsBody.forces[n.id].y+=a}_formBarnesHutTree(e,t){let i,n=t.length,s=e[t[0]].x,g=e[t[0]].y,o=e[t[0]].x,a=e[t[0]].y;for(let f=1;f0&&(po&&(o=p),va&&(a=v))}let A=Math.abs(o-s)-Math.abs(a-g);A>0?(g-=.5*A,a+=.5*A):(s+=.5*A,o-=.5*A);let I=Math.max(1e-5,Math.abs(o-s)),l=.5*I,h=.5*(s+o),d=.5*(g+a),c={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:h-l,maxX:h+l,minY:d-l,maxY:d+l},size:I,calcSize:1/I,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(c.root);for(let f=0;f0&&this._placeInTree(c.root,i);return c}_updateBranchMass(e,t){let i=e.centerOfMass,n=e.mass+t.options.mass,s=1/n;i.x=i.x*e.mass+t.x*t.options.mass,i.x*=s,i.y=i.y*e.mass+t.y*t.options.mass,i.y*=s,e.mass=n;let g=Math.max(Math.max(t.height,t.radius),t.width);e.maxWidth=e.maxWidtht.x?n.maxY>t.y?s="NW":s="SW":n.maxY>t.y?s="NE":s="SE",this._placeInRegion(e,t,s)}_placeInRegion(e,t,i){let n=e.children[i];switch(n.childrenCount){case 0:n.children.data=t,n.childrenCount=1,this._updateBranchMass(n,t);break;case 1:n.children.data.x===t.x&&n.children.data.y===t.y?(t.x+=this._rng(),t.y+=this._rng()):(this._splitBranch(n),this._placeInTree(n,t));break;case 4:this._placeInTree(n,t);break}}_splitBranch(e){let t=null;e.childrenCount===1&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),t!=null&&this._placeInTree(e,t)}_insertRegion(e,t){let i,n,s,g,o=.5*e.size;switch(t){case"NW":i=e.range.minX,n=e.range.minX+o,s=e.range.minY,g=e.range.minY+o;break;case"NE":i=e.range.minX+o,n=e.range.maxX,s=e.range.minY,g=e.range.minY+o;break;case"SW":i=e.range.minX,n=e.range.minX+o,s=e.range.minY+o,g=e.range.maxY;break;case"SE":i=e.range.minX+o,n=e.range.maxX,s=e.range.minY+o,g=e.range.maxY;break}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:n,minY:s,maxY:g},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}_debug(e,t){this.barnesHutTree!==void 0&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}_drawBranch(e,t,i){i===void 0&&(i="#FF0000"),e.childrenCount===4&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}},bp=class{constructor(e,t,i){this._rng=Ta("REPULSION SOLVER"),this.body=e,this.physicsBody=t,this.setOptions(i)}setOptions(e){this.options=e}solve(){let e,t,i,n,s,g,o,a,A=this.body.nodes,C=this.physicsBody.physicsNodeIndices,I=this.physicsBody.forces,l=this.options.nodeDistance,h=-2/3/l,d=4/3;for(let c=0;c0){let g=s.edges.length+1,o=this.options.centralGravity*g*s.options.mass;n[s.id].x=t*o,n[s.id].y=i*o}}},Ep=class{constructor(e){this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},_e(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("initPhysics",()=>{this.initPhysics()}),this.body.emitter.on("_layoutFailed",()=>{this.layoutFailed=!0}),this.body.emitter.on("resetPhysics",()=>{this.stopSimulation(),this.ready=!1}),this.body.emitter.on("disablePhysics",()=>{this.physicsEnabled=!1,this.stopSimulation()}),this.body.emitter.on("restorePhysics",()=>{this.setOptions(this.options),this.ready===!0&&this.startSimulation()}),this.body.emitter.on("startSimulation",()=>{this.ready===!0&&this.startSimulation()}),this.body.emitter.on("stopSimulation",()=>{this.stopSimulation()}),this.body.emitter.on("destroy",()=>{this.stopSimulation(!1),this.body.emitter.off()}),this.body.emitter.on("_dataChanged",()=>{this.updatePhysicsData()})}setOptions(e){if(e!==void 0)if(e===!1)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(e===!0)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,Yo(["stabilization"],this.options,e),_t(this.options,e,"stabilization"),e.enabled===void 0&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation());let t=this.options.wind;t&&((typeof t.x!="number"||jf(t.x))&&(t.x=0),(typeof t.y!="number"||jf(t.y))&&(t.y=0)),this.timestep=this.options.timestep}this.init()}init(){let e;this.options.solver==="forceAtlas2Based"?(e=this.options.forceAtlas2Based,this.nodesSolver=new xp(this.body,this.physicsBody,e),this.edgesSolver=new Vs(this.body,this.physicsBody,e),this.gravitySolver=new Sp(this.body,this.physicsBody,e)):this.options.solver==="repulsion"?(e=this.options.repulsion,this.nodesSolver=new bp(this.body,this.physicsBody,e),this.edgesSolver=new Vs(this.body,this.physicsBody,e),this.gravitySolver=new Rr(this.body,this.physicsBody,e)):this.options.solver==="hierarchicalRepulsion"?(e=this.options.hierarchicalRepulsion,this.nodesSolver=new yp(this.body,this.physicsBody,e),this.edgesSolver=new wp(this.body,this.physicsBody,e),this.gravitySolver=new Rr(this.body,this.physicsBody,e)):(e=this.options.barnesHut,this.nodesSolver=new oa(this.body,this.physicsBody,e),this.edgesSolver=new Vs(this.body,this.physicsBody,e),this.gravitySolver=new Rr(this.body,this.physicsBody,e)),this.modelOptions=e}initPhysics(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}startSimulation(){if(this.physicsEnabled===!0&&this.options.enabled===!0){if(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),this.viewFunction===void 0){var e;this.viewFunction=M(e=this.simulationStep).call(e,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}else this.body.emitter.emit("_redraw")}stopSimulation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.stabilized=!0,e===!0&&this._emitStabilized(),this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,e===!0&&this.body.emitter.emit("_stopRendering"))}simulationStep(){let e=Wo();this.physicsTick(),(Wo()-e<.4*this.simulationInterval||this.runDoubleSpeed===!0)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0&&this.stopSimulation()}_emitStabilized(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||this.startedStabilization===!0)&&ci(()=>{this.body.emitter.emit("stabilized",{iterations:e}),this.startedStabilization=!1,this.stabilizationIterations=0},0)}physicsStep(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}adjustTimeStep(){this._evaluateStepQuality()===!0?this.timestep=1.2*this.timestep:this.timestep/1.2g))return!1;return!0}moveNodes(){let e=this.physicsBody.physicsNodeIndices,t=0,i=0,n=5;for(let s=0;sg&&(e=e>0?g:-g),e}_performStep(e){let t=this.body.nodes[e],i=this.physicsBody.forces[e];this.options.wind&&(i.x+=this.options.wind.x,i.y+=this.options.wind.y);let n=this.physicsBody.velocities[e];return this.previousStates[e]={x:t.x,y:t.y,vx:n.x,vy:n.y},t.options.fixed.x===!1?(n.x=this.calculateComponentVelocity(n.x,i.x,t.options.mass),t.x+=n.x*this.timestep):(i.x=0,n.x=0),t.options.fixed.y===!1?(n.y=this.calculateComponentVelocity(n.y,i.y,t.options.mass),t.y+=n.y*this.timestep):(i.y=0,n.y=0),Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2))}_freezeNodes(){let e=this.body.nodes;for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&e[t].x&&e[t].y){let i=e[t].options.fixed;this.freezeCache[t]={x:i.x,y:i.y},i.x=!0,i.y=!0}}_restoreFrozenNodes(){let e=this.body.nodes;for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&this.freezeCache[t]!==void 0&&(e[t].options.fixed.x=this.freezeCache[t].x,e[t].options.fixed.y=this.freezeCache[t].y);this.freezeCache={}}stabilize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.stabilization.iterations;if(typeof e!="number"&&(e=this.options.stabilization.iterations,console.error("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),this.physicsBody.physicsNodeIndices.length===0){this.ready=!0;return}this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,ci(()=>this._stabilizationBatch(),0)}_startStabilizing(){return this.startedStabilization===!0?!1:(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}_stabilizationBatch(){let e=()=>this.stabilized===!1&&this.stabilizationIterations{this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations})};this._startStabilizing()&&t();let i=0;for(;e()&&i1&&arguments[1]!==void 0?arguments[1]:[],i=1e9,n=-1e9,s=1e9,g=-1e9,o;if(t.length>0)for(let a=0;ao.shape.boundingBox.left&&(s=o.shape.boundingBox.left),go.shape.boundingBox.top&&(i=o.shape.boundingBox.top),n1&&arguments[1]!==void 0?arguments[1]:[],i=1e9,n=-1e9,s=1e9,g=-1e9,o;if(t.length>0)for(let a=0;ao.x&&(s=o.x),go.y&&(i=o.y),n{delete this.containedEdges[i.id]}),$(t.containedNodes,(i,n)=>{this.containedNodes[n]=i}),t.containedNodes={},$(t.containedEdges,(i,n)=>{this.containedEdges[n]=i}),t.containedEdges={},$(t.edges,i=>{$(this.edges,n=>{var s,g;let o=de(s=n.clusteringEdgeReplacingIds).call(s,i.id);o!==-1&&($(i.clusteringEdgeReplacingIds,a=>{n.clusteringEdgeReplacingIds.push(a),this.body.edges[a].edgeReplacedById=n.id}),di(g=n.clusteringEdgeReplacingIds).call(g,o,1))})}),t.edges=[]}},kp=class{constructor(e){this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},_e(this.options,this.defaultOptions),this.body.emitter.on("_resetData",()=>{this.clusteredNodes={},this.clusteredEdges={}})}clusterByHubsize(e,t){e===void 0?e=this._getHubSize():typeof e=="object"&&(t=this._checkOptions(e),e=this._getHubSize());let i=[];for(let n=0;n=e&&i.push(s.id)}for(let n=0;n0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.joinCondition===void 0)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);let i={},n={};$(this.body.nodes,(s,g)=>{s.options&&e.joinCondition(s.options)===!0&&(i[g]=s,$(s.edges,o=>{this.clusteredEdges[o.id]===void 0&&(n[o.id]=o)}))}),this._cluster(i,n,e,t)}clusterByEdgeCount(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;t=this._checkOptions(t);let n=[],s={},g,o,a;for(let A=0;A0&&Se(I).length>0&&c===!0){let u=function(){for(let p=0;p1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(1,e,t)}clusterBridges(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(2,e,t)}clusterByConnection(e,t){var i;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No nodeId supplied to clusterByConnection!");if(this.body.nodes[e]===void 0)throw new Error("The nodeId given to clusterByConnection does not exist!");let s=this.body.nodes[e];t=this._checkOptions(t,s),t.clusterNodeProperties.x===void 0&&(t.clusterNodeProperties.x=s.x),t.clusterNodeProperties.y===void 0&&(t.clusterNodeProperties.y=s.y),t.clusterNodeProperties.fixed===void 0&&(t.clusterNodeProperties.fixed={},t.clusterNodeProperties.fixed.x=s.options.fixed.x,t.clusterNodeProperties.fixed.y=s.options.fixed.y);let g={},o={},a=s.id,A=it.cloneOptions(s);g[a]=s;for(let I=0;I-1&&(o[d.id]=d)}}this._cluster(g,o,t,n)}_createClusterEdges(e,t,i,n){let s,g,o,a,A,C,I=Se(e),l=[];for(let c=0;c0&&arguments[0]!==void 0?arguments[0]:{};return e.clusterEdgeProperties===void 0&&(e.clusterEdgeProperties={}),e.clusterNodeProperties===void 0&&(e.clusterNodeProperties={}),e}_cluster(e,t,i){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,s=[];for(let C in e)Object.prototype.hasOwnProperty.call(e,C)&&this.clusteredNodes[C]!==void 0&&s.push(C);for(let C=0;Cn?o.x:n,s=o.yg?o.y:g;return{x:.5*(i+n),y:.5*(s+g)}}openCluster(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No clusterNodeId supplied to openCluster.");let n=this.body.nodes[e];if(n===void 0)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(n.isCluster!==!0||n.containedNodes===void 0||n.containedEdges===void 0)throw new Error("The node:"+e+" is not a valid cluster.");let s=this.findNode(e),g=de(s).call(s,e)-1;if(g>=0){let C=s[g];this.body.nodes[C]._openChildCluster(e),delete this.body.nodes[e],i===!0&&this.body.emitter.emit("_dataChanged");return}let o=n.containedNodes,a=n.containedEdges;if(t!==void 0&&t.releaseFunction!==void 0&&typeof t.releaseFunction=="function"){let C={},I={x:n.x,y:n.y};for(let h in o)if(Object.prototype.hasOwnProperty.call(o,h)){let d=this.body.nodes[h];C[h]={x:d.x,y:d.y}}let l=t.releaseFunction(I,C);for(let h in o)if(Object.prototype.hasOwnProperty.call(o,h)){let d=this.body.nodes[h];l[h]!==void 0&&(d.x=l[h].x===void 0?n.x:l[h].x,d.y=l[h].y===void 0?n.y:l[h].y)}}else $(o,function(C){C.options.fixed.x===!1&&(C.x=n.x),C.options.fixed.y===!1&&(C.y=n.y)});for(let C in o)if(Object.prototype.hasOwnProperty.call(o,C)){let I=this.body.nodes[C];I.vx=n.vx,I.vy=n.vy,I.setOptions({physics:!0}),delete this.clusteredNodes[C]}let A=[];for(let C=0;C0&&gn&&(n=A.edges.length),e+=A.edges.length,t+=Math.pow(A.edges.length,2),i+=1}e=e/i,t=t/i;let s=t-Math.pow(e,2),g=Math.sqrt(s),o=Math.floor(e+2*g);return o>n&&(o=n),o}_createClusteredEdge(e,t,i,n,s){let g=it.cloneOptions(i,"edge");ve(g,n),g.from=e,g.to=t,g.id="clusterEdge:"+Or(),s!==void 0&&ve(g,s);let o=this.body.functions.createEdge(g);return o.clusteringEdgeReplacingIds=[i.id],o.connect(),this.body.edges[o.id]=o,o}_clusterEdges(e,t,i,n){if(t instanceof rn){let s=t,g={};g[s.id]=s,t=g}if(e instanceof at){let s=e,g={};g[s.id]=s,e=g}if(i==null)throw new Error("_clusterEdges: parameter clusterNode required");n===void 0&&(n=i.clusterEdgeProperties),this._createClusterEdges(e,t,i,n);for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s)&&this.body.edges[s]!==void 0){let g=this.body.edges[s];this._backupEdgeOptions(g),g.setOptions({physics:!1})}for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&(this.clusteredNodes[s]={clusterId:i.id,node:this.body.nodes[s]},this.body.nodes[s].setOptions({physics:!1}))}_getClusterNodeForNode(e){if(e===void 0)return;let t=this.clusteredNodes[e];if(t===void 0)return;let i=t.clusterId;if(i!==void 0)return this.body.nodes[i]}_filter(e,t){let i=[];return $(e,n=>{t(n)&&i.push(n)}),i}_updateState(){let e,t=[],i={},n=a=>{$(this.body.nodes,A=>{A.isCluster===!0&&a(A)})};for(e in this.clusteredNodes){if(!Object.prototype.hasOwnProperty.call(this.clusteredNodes,e))continue;this.body.nodes[e]===void 0&&t.push(e)}n(function(a){for(let A=0;A{let A=this.body.edges[a];(A===void 0||!A.endPointsValid())&&(i[a]=a)}),n(function(a){$(a.containedEdges,(A,C)=>{!A.endPointsValid()&&!i[C]&&(i[C]=C)})}),$(this.body.edges,(a,A)=>{let C=!0,I=a.clusteringEdgeReplacingIds;if(I!==void 0){let l=0;$(I,h=>{let d=this.body.edges[h];d!==void 0&&d.endPointsValid()&&(l+=1)}),C=l>0}(!a.endPointsValid()||!C)&&(i[A]=A)}),n(a=>{$(i,A=>{delete a.containedEdges[A],$(a.edges,(C,I)=>{if(C.id===A){a.edges[I]=null;return}C.clusteringEdgeReplacingIds=this._filter(C.clusteringEdgeReplacingIds,function(l){return!i[l]})}),a.edges=this._filter(a.edges,function(C){return C!==null})})}),$(i,a=>{delete this.clusteredEdges[a]}),$(i,a=>{delete this.body.edges[a]});let s=Se(this.body.edges);$(s,a=>{let A=this.body.edges[a],C=this._isClusteredNode(A.fromId)||this._isClusteredNode(A.toId);if(C!==this._isClusteredEdge(A.id))if(C){let I=this._getClusterNodeForNode(A.fromId);I!==void 0&&this._clusterEdges(this.body.nodes[A.fromId],A,I);let l=this._getClusterNodeForNode(A.toId);l!==void 0&&this._clusterEdges(this.body.nodes[A.toId],A,l)}else delete this._clusterEdges[a],this._restoreEdge(A)});let g=!1,o=!0;for(;o;){let a=[];n(function(A){let C=Se(A.containedNodes).length,I=A.options.allowSingleNodeCluster===!0;(I&&C<1||!I&&C<2)&&a.push(A.id)});for(let A=0;A0,g=g||o}g&&this._updateState()}_isClusteredNode(e){return this.clusteredNodes[e]!==void 0}_isClusteredEdge(e){return this.clusteredEdges[e]!==void 0}},Op=class{constructor(e,t){this.body=e,this.canvas=t,this.redrawRequested=!1,this.requestAnimationFrameRequestId=void 0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},_e(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e;this.body.emitter.on("dragStart",()=>{this.dragging=!0}),this.body.emitter.on("dragEnd",()=>{this.dragging=!1}),this.body.emitter.on("zoom",()=>{this.zooming=!0,window.clearTimeout(this.zoomTimeoutId),this.zoomTimeoutId=ci(()=>{var t;this.zooming=!1,M(t=this._requestRedraw).call(t,this)()},250)}),this.body.emitter.on("_resizeNodes",()=>{this._resizeNodes()}),this.body.emitter.on("_redraw",()=>{this.renderingActive===!1&&this._redraw()}),this.body.emitter.on("_blockRedraw",()=>{this.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",()=>{this.allowRedraw=!0,this.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",M(e=this._requestRedraw).call(e,this)),this.body.emitter.on("_startRendering",()=>{this.renderRequests+=1,this.renderingActive=!0,this._startRendering()}),this.body.emitter.on("_stopRendering",()=>{this.renderRequests-=1,this.renderingActive=this.renderRequests>0,this.requestAnimationFrameRequestId=void 0}),this.body.emitter.on("destroy",()=>{this.renderRequests=0,this.allowRedraw=!1,this.renderingActive=!1,window.cancelAnimationFrame(this.requestAnimationFrameRequestId),this.body.emitter.off()})}setOptions(e){e!==void 0&&Kr(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag"],this.options,e)}_startRendering(){if(this.renderingActive===!0&&this.requestAnimationFrameRequestId===void 0){var e;this.requestAnimationFrameRequestId=window.requestAnimationFrame(M(e=this._renderStep).call(e,this),this.simulationInterval)}}_renderStep(){this.renderingActive===!0&&(this.requestAnimationFrameRequestId=void 0,this._startRendering(),this._redraw())}redraw(){this.body.emitter.emit("setSize"),this._redraw()}_requestRedraw(){this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,window.requestAnimationFrame(()=>{this._redraw(!1)}))}_redraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;let t={drawExternalLabels:null};(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0)&&this.canvas.setSize(),this.canvas.setTransform();let i=this.canvas.getContext(),n=this.canvas.frame.canvas.clientWidth,s=this.canvas.frame.canvas.clientHeight;if(i.clearRect(0,0,n,s),this.canvas.frame.clientWidth===0)return;if(i.save(),i.translate(this.body.view.translation.x,this.body.view.translation.y),i.scale(this.body.view.scale,this.body.view.scale),i.beginPath(),this.body.emitter.emit("beforeDrawing",i),i.closePath(),e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawEdges(i),this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1){let{drawExternalLabels:g}=this._drawNodes(i,e);t.drawExternalLabels=g}e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawArrows(i),t.drawExternalLabels!=null&&t.drawExternalLabels(),e===!1&&this._drawSelectionBox(i),i.beginPath(),this.body.emitter.emit("afterDrawing",i),i.closePath(),i.restore(),e===!0&&i.clearRect(0,0,n,s)}}_resizeNodes(){this.canvas.setTransform();let e=this.canvas.getContext();e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale);let t=this.body.nodes,i;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i=t[n],i.resize(e),i.updateBoundingBox(e,i.selected));e.restore()}_drawNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=this.body.nodes,n=this.body.nodeIndices,s,g=[],o=[],a=20,A=this.canvas.DOMtoCanvas({x:-a,y:-a}),C=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+a,y:this.canvas.frame.canvas.clientHeight+a}),I={top:A.y,left:A.x,bottom:C.y,right:C.x},l=[];for(let f=0;f{for(let f of l)f()}}}_drawEdges(e){let t=this.body.edges,i=this.body.edgeIndices;for(let n=0;n{t.width!==0&&(this.body.view.translation.x=t.width*.5),t.height!==0&&(this.body.view.translation.y=t.height*.5)}),this.body.emitter.on("setSize",M(e=this.setSize).call(e,this)),this.body.emitter.on("destroy",()=>{this.hammerFrame.destroy(),this.hammer.destroy(),this._cleanUp()})}setOptions(e){if(e!==void 0&&Kr(["width","height","autoResize"],this.options,e),this._cleanUp(),this.options.autoResize===!0){var t;if(window.ResizeObserver){let n=new ResizeObserver(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")}),{frame:s}=this;n.observe(s),this._cleanupCallbacks.push(()=>{n.unobserve(s)})}else{let n=rZ(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")},1e3);this._cleanupCallbacks.push(()=>{clearInterval(n)})}let i=M(t=this._onResize).call(t,this);window.addEventListener("resize",i),this._cleanupCallbacks.push(()=>{window.removeEventListener("resize",i)})}}_cleanUp(){var e,t,i;oe(e=Bn(t=di(i=this._cleanupCallbacks).call(i,0)).call(t)).call(e,n=>{try{n()}catch(s){console.error(s)}})}_onResize(){this.setSize(),this.body.emitter.emit("_redraw")}_getCameraState(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.pixelRatio;this.initialized===!0&&(this.cameraState.previousWidth=this.frame.canvas.width/e,this.cameraState.previousHeight=this.frame.canvas.height/e,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/e,y:.5*this.frame.canvas.height/e}))}_setCameraState(){if(this.cameraState.scale!==void 0&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){let e=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,t=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;e!=1&&t!=1?i=this.cameraState.scale*.5*(e+t):e!=1?i=this.cameraState.scale*e:t!=1&&(i=this.cameraState.scale*t),this.body.view.scale=i;let n=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),s={x:n.x-this.cameraState.position.x,y:n.y-this.cameraState.position.y};this.body.view.translation.x+=s.x*this.body.view.scale,this.body.view.translation.y+=s.y*this.body.view.scale}}_prepareValue(e){if(typeof e=="number")return e+"px";if(typeof e=="string"){if(de(e).call(e,"%")!==-1||de(e).call(e,"px")!==-1)return e;if(de(e).call(e,"%")===-1)return e+"px"}throw new Error("Could not use the value supplied for width or height:"+e)}_create(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=0,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{let e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerText="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}_bindHammer(){this.hammer!==void 0&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new kr(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:kr.DIRECTION_ALL}),aa(this.hammer,e=>{this.body.eventListeners.onTouch(e)}),this.hammer.on("tap",e=>{this.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",e=>{this.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",e=>{this.body.eventListeners.onHold(e)}),this.hammer.on("panstart",e=>{this.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",e=>{this.body.eventListeners.onDrag(e)}),this.hammer.on("panend",e=>{this.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",e=>{this.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("wheel",e=>{this.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",e=>{this.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",e=>{this.body.eventListeners.onContext(e)}),this.hammerFrame=new kr(this.frame),fP(this.hammerFrame,e=>{this.body.eventListeners.onRelease(e)})}setSize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.width,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.height;e=this._prepareValue(e),t=this._prepareValue(t);let i=!1,n=this.frame.canvas.width,s=this.frame.canvas.height,g=this.pixelRatio;if(this._setPixelRatio(),e!=this.options.width||t!=this.options.height||this.frame.style.width!=e||this.frame.style.height!=t)this._getCameraState(g),this.frame.style.width=e,this.frame.style.height=t,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=e,this.options.height=t,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{let o=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);(this.frame.canvas.width!==o||this.frame.canvas.height!==a)&&this._getCameraState(g),this.frame.canvas.width!==o&&(this.frame.canvas.width=o,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(n/this.pixelRatio),oldHeight:Math.round(s/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}getContext(){return this.frame.canvas.getContext("2d")}_determinePixelRatio(){let e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");let t=1;typeof window<"u"&&(t=window.devicePixelRatio||1);let i=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return t/i}_setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}setTransform(){let e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}_XconvertDOMtoCanvas(e){return(e-this.body.view.translation.x)/this.body.view.scale}_XconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.x}_YconvertDOMtoCanvas(e){return(e-this.body.view.translation.y)/this.body.view.scale}_YconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.y}canvasToDOM(e){return{x:this._XconvertCanvasToDOM(e.x),y:this._YconvertCanvasToDOM(e.y)}}DOMtoCanvas(e){return{x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)}}};function sZ(r,e){let t=_e({nodes:e,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},r??{});if(!Ce(t.nodes))throw new TypeError("Nodes has to be an array of ids.");if(t.nodes.length===0&&(t.nodes=e),!(typeof t.minZoomLevel=="number"&&t.minZoomLevel>0))throw new TypeError("Min zoom level has to be a number higher than zero.");if(!(typeof t.maxZoomLevel=="number"&&t.minZoomLevel<=t.maxZoomLevel))throw new TypeError("Max zoom level has to be a number higher than min zoom level.");return t}var Dp=class{constructor(e,t){var i,n;this.body=e,this.canvas=t,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",M(i=this.fit).call(i,this)),this.body.emitter.on("animationFinished",()=>{this.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",M(n=this.releaseNode).call(n,this))}setOptions(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=e}fit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;e=sZ(e,this.body.nodeIndices);let i=this.canvas.frame.canvas.clientWidth,n=this.canvas.frame.canvas.clientHeight,s,g;if(i===0||n===0)g=1,s=it.getRange(this.body.nodes,e.nodes);else if(t===!0){let A=0;for(let l in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,l)&&this.body.nodes[l].predefinedPosition===!0&&(A+=1);if(A>.5*this.body.nodeIndices.length){this.fit(e,!1);return}s=it.getRange(this.body.nodes,e.nodes),g=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;let I=Math.min(i/600,n/600);g*=I}else{this.body.emitter.emit("_resizeNodes"),s=it.getRange(this.body.nodes,e.nodes);let A=Math.abs(s.maxX-s.minX)*1.1,C=Math.abs(s.maxY-s.minY)*1.1,I=i/A,l=n/C;g=I<=l?I:l}g>e.maxZoomLevel?g=e.maxZoomLevel:g1&&arguments[1]!==void 0?arguments[1]:{};if(this.body.nodes[e]!==void 0){let i={x:this.body.nodes[e].x,y:this.body.nodes[e].y};t.position=i,t.lockedOnNode=e,this.moveTo(t)}else console.error("Node: "+e+" cannot be found.")}moveTo(e){if(e===void 0){e={};return}if(e.offset!=null){if(e.offset.x!=null){if(e.offset.x=+e.offset.x,!Nn(e.offset.x))throw new TypeError('The option "offset.x" has to be a finite number.')}else e.offset.x=0;if(e.offset.y!=null){if(e.offset.y=+e.offset.y,!Nn(e.offset.y))throw new TypeError('The option "offset.y" has to be a finite number.')}else e.offset.x=0}else e.offset={x:0,y:0};if(e.position!=null){if(e.position.x!=null){if(e.position.x=+e.position.x,!Nn(e.position.x))throw new TypeError('The option "position.x" has to be a finite number.')}else e.position.x=0;if(e.position.y!=null){if(e.position.y=+e.position.y,!Nn(e.position.y))throw new TypeError('The option "position.y" has to be a finite number.')}else e.position.x=0}else e.position=this.getViewPosition();if(e.scale!=null){if(e.scale=+e.scale,!(e.scale>0))throw new TypeError('The option "scale" has to be a number greater than zero.')}else e.scale=this.body.view.scale;e.animation===void 0&&(e.animation={duration:0}),e.animation===!1&&(e.animation={duration:0}),e.animation===!0&&(e.animation={}),e.animation.duration===void 0&&(e.animation.duration=1e3),e.animation.easingFunction===void 0&&(e.animation.easingFunction="easeInOutQuad"),this.animateView(e)}animateView(e){if(e===void 0)return;this.animationEasingFunction=e.animation.easingFunction,this.releaseNode(),e.locked===!0&&(this.lockedOnNodeId=e.lockedOnNode,this.lockedOnNodeOffset=e.offset),this.easingTime!=0&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=e.scale,this.body.view.scale=this.targetScale;let t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.position.x,y:t.y-e.position.y};if(this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+e.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+e.offset.y},e.animation.duration===0)if(this.lockedOnNodeId!=null){var n;this.viewFunction=M(n=this._lockedRedraw).call(n,this),this.body.emitter.on("initRedraw",this.viewFunction)}else this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw");else{var s;this.animationSpeed=1/(60*e.animation.duration*.001)||1/60,this.animationEasingFunction=e.animation.easingFunction,this.viewFunction=M(s=this._transitionRedraw).call(s,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}_lockedRedraw(){let e={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.x,y:t.y-e.y},n=this.body.view.translation,s={x:n.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:n.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=s}releaseNode(){this.lockedOnNodeId!==void 0&&this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}_transitionRedraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.easingTime+=this.animationSpeed,this.easingTime=e===!0?1:this.easingTime;let t=W5[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*t,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*t,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*t},this.easingTime>=1){if(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,this.lockedOnNodeId!=null){var i;this.viewFunction=M(i=this._lockedRedraw).call(i,this),this.body.emitter.on("initRedraw",this.viewFunction)}this.body.emitter.emit("animationFinished")}}getScale(){return this.body.view.scale}getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}};function wD(r){var e=r&&r.preventDefault||!1,t=r&&r.container||window,i={},n={keydown:{},keyup:{}},s={},g;for(g=97;g<=122;g++)s[String.fromCharCode(g)]={code:65+(g-97),shift:!1};for(g=65;g<=90;g++)s[String.fromCharCode(g)]={code:g,shift:!0};for(g=0;g<=9;g++)s[""+g]={code:48+g,shift:!1};for(g=1;g<=12;g++)s["F"+g]={code:111+g,shift:!1};for(g=0;g<=9;g++)s["num"+g]={code:96+g,shift:!1};s["num*"]={code:106,shift:!1},s["num+"]={code:107,shift:!1},s["num-"]={code:109,shift:!1},s["num/"]={code:111,shift:!1},s["num."]={code:110,shift:!1},s.left={code:37,shift:!1},s.up={code:38,shift:!1},s.right={code:39,shift:!1},s.down={code:40,shift:!1},s.space={code:32,shift:!1},s.enter={code:13,shift:!1},s.shift={code:16,shift:void 0},s.esc={code:27,shift:!1},s.backspace={code:8,shift:!1},s.tab={code:9,shift:!1},s.ctrl={code:17,shift:!1},s.alt={code:18,shift:!1},s.delete={code:46,shift:!1},s.pageup={code:33,shift:!1},s.pagedown={code:34,shift:!1},s["="]={code:187,shift:!1},s["-"]={code:189,shift:!1},s["]"]={code:221,shift:!1},s["["]={code:219,shift:!1};var o=function(C){A(C,"keydown")},a=function(C){A(C,"keyup")},A=function(C,I){if(n[I][C.keyCode]!==void 0){for(var l=n[I][C.keyCode],h=0;h{this.activated=!0,this.configureKeyboardBindings()}),this.body.emitter.on("deactivate",()=>{this.activated=!1,this.configureKeyboardBindings()}),this.body.emitter.on("destroy",()=>{this.keycharm!==void 0&&this.keycharm.destroy()}),this.options={}}setOptions(e){e!==void 0&&(this.options=e,this.create())}create(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}cleanNavigation(){if(this.navigationHammers.length!=0){for(let e=0;e{this._stopMovement()}),this.navigationHammers.push(s),this.iconsCreated=!0}bindToRedraw(e){if(this.boundFunctions[e]===void 0){var t;this.boundFunctions[e]=M(t=this[e]).call(t,this),this.body.emitter.on("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_startRendering")}}unbindFromRedraw(e){this.boundFunctions[e]!==void 0&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[e])}_fit(){new Date().valueOf()-this.touchTime>700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=new Date().valueOf())}_stopMovement(){for(let e in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,e)&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}_moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}_moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}_moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}_moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}_zoomIn(){let e=this.body.view.scale,t=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=t/e,s=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,g=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=t,this.body.view.translation={x:s,y:g},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}_zoomOut(){let e=this.body.view.scale,t=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=t/e,s=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,g=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=t,this.body.view.translation={x:s,y:g},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}configureKeyboardBindings(){if(this.keycharm!==void 0&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=wD({container:window,preventDefault:!0}):this.keycharm=wD({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0)){var e,t,i,n,s,g,o,a,A,C,I,l,h,d,c,f,u,p,v,m,b,w,x,y;M(e=this.keycharm).call(e,"up",()=>{this.bindToRedraw("_moveUp")},"keydown"),M(t=this.keycharm).call(t,"down",()=>{this.bindToRedraw("_moveDown")},"keydown"),M(i=this.keycharm).call(i,"left",()=>{this.bindToRedraw("_moveLeft")},"keydown"),M(n=this.keycharm).call(n,"right",()=>{this.bindToRedraw("_moveRight")},"keydown"),M(s=this.keycharm).call(s,"=",()=>{this.bindToRedraw("_zoomIn")},"keydown"),M(g=this.keycharm).call(g,"num+",()=>{this.bindToRedraw("_zoomIn")},"keydown"),M(o=this.keycharm).call(o,"num-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),M(a=this.keycharm).call(a,"-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),M(A=this.keycharm).call(A,"[",()=>{this.bindToRedraw("_zoomOut")},"keydown"),M(C=this.keycharm).call(C,"]",()=>{this.bindToRedraw("_zoomIn")},"keydown"),M(I=this.keycharm).call(I,"pageup",()=>{this.bindToRedraw("_zoomIn")},"keydown"),M(l=this.keycharm).call(l,"pagedown",()=>{this.bindToRedraw("_zoomOut")},"keydown"),M(h=this.keycharm).call(h,"up",()=>{this.unbindFromRedraw("_moveUp")},"keyup"),M(d=this.keycharm).call(d,"down",()=>{this.unbindFromRedraw("_moveDown")},"keyup"),M(c=this.keycharm).call(c,"left",()=>{this.unbindFromRedraw("_moveLeft")},"keyup"),M(f=this.keycharm).call(f,"right",()=>{this.unbindFromRedraw("_moveRight")},"keyup"),M(u=this.keycharm).call(u,"=",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),M(p=this.keycharm).call(p,"num+",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),M(v=this.keycharm).call(v,"num-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),M(m=this.keycharm).call(m,"-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),M(b=this.keycharm).call(b,"[",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),M(w=this.keycharm).call(w,"]",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),M(x=this.keycharm).call(x,"pageup",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),M(y=this.keycharm).call(y,"pagedown",()=>{this.unbindFromRedraw("_zoomOut")},"keyup")}}},Mp=class{constructor(e,t,i){var n,s,g,o,a,A,C,I,l,h,d,c,f;this.body=e,this.canvas=t,this.selectionHandler=i,this.navigationHandler=new Pp(e,t),this.body.eventListeners.onTap=M(n=this.onTap).call(n,this),this.body.eventListeners.onTouch=M(s=this.onTouch).call(s,this),this.body.eventListeners.onDoubleTap=M(g=this.onDoubleTap).call(g,this),this.body.eventListeners.onHold=M(o=this.onHold).call(o,this),this.body.eventListeners.onDragStart=M(a=this.onDragStart).call(a,this),this.body.eventListeners.onDrag=M(A=this.onDrag).call(A,this),this.body.eventListeners.onDragEnd=M(C=this.onDragEnd).call(C,this),this.body.eventListeners.onMouseWheel=M(I=this.onMouseWheel).call(I,this),this.body.eventListeners.onPinch=M(l=this.onPinch).call(l,this),this.body.eventListeners.onMouseMove=M(h=this.onMouseMove).call(h,this),this.body.eventListeners.onRelease=M(d=this.onRelease).call(d,this),this.body.eventListeners.onContext=M(c=this.onContext).call(c,this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=M(f=this.getPointer).call(f,this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0,autoFocus:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0,zoomSpeed:1},_e(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("destroy",()=>{clearTimeout(this.popupTimer),delete this.body.functions.getPointer})}setOptions(e){e!==void 0&&(Yo(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"],this.options,e),_t(this.options,e,"keyboard"),e.tooltip&&(_e(this.options.tooltip,e.tooltip),e.tooltip.color&&(this.options.tooltip.color=Lf(e.tooltip.color)))),this.navigationHandler.setOptions(this.options)}getPointer(e){return{x:e.x-L5(this.canvas.frame.canvas),y:e.y-z5(this.canvas.frame.canvas)}}onTouch(e){new Date().valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(e.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=new Date().valueOf())}onTap(e){let t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect&&(e.changedPointers[0].ctrlKey||e.changedPointers[0].metaKey);this.checkSelectionChanges(t,i),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t)}onDoubleTap(e){let t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("doubleClick",e,t)}onHold(e){let t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(t,i),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t),this.selectionHandler.generateClickEvent("hold",e,t)}onRelease(e){if(new Date().valueOf()-this.touchTime>10){let t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("release",e,t),this.touchTime=new Date().valueOf()}}onContext(e){let t=this.getPointer({x:e.clientX,y:e.clientY});this.selectionHandler.generateClickEvent("oncontext",e,t)}checkSelectionChanges(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)===!0?this.selectionHandler.selectAdditionalOnPoint(e):this.selectionHandler.selectOnPoint(e)}_determineDifference(e,t){let i=function(n,s){let g=[];for(let o=0;o{let o=g.node;g.xFixed===!1&&(o.x=this.canvas._XconvertDOMtoCanvas(this.canvas._XconvertCanvasToDOM(g.x)+n)),g.yFixed===!1&&(o.y=this.canvas._YconvertDOMtoCanvas(this.canvas._YconvertCanvasToDOM(g.y)+s))}),this.body.emitter.emit("startSimulation")}else{if(e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(t.x),y:this.canvas._YconvertDOMtoCanvas(t.y)},this.body.emitter.emit("_requestRedraw")}if(this.options.dragView===!0&&!e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}let n=t.x-this.drag.pointer.x,s=t.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+n,y:this.drag.translation.y+s},this.body.emitter.emit("_requestRedraw")}}}onDragEnd(e){if(this.drag.dragging=!1,this.body.selectionBox.show){var t;this.body.selectionBox.show=!1;let i=this.body.selectionBox.position,n={minX:Math.min(i.start.x,i.end.x),minY:Math.min(i.start.y,i.end.y),maxX:Math.max(i.start.x,i.end.x),maxY:Math.max(i.start.y,i.end.y)},s=ze(t=this.body.nodeIndices).call(t,o=>{let a=this.body.nodes[o];return a.x>=n.minX&&a.x<=n.maxX&&a.y>=n.minY&&a.y<=n.maxY});oe(s).call(s,o=>this.selectionHandler.selectObject(this.body.nodes[o]));let g=this.getPointer(e.center);this.selectionHandler.commitAndEmit(g,e),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw")}else{let i=this.drag.selection;i&&i.length?(oe(i).call(i,function(n){n.node.options.fixed.x=n.xFixed,n.node.options.fixed.y=n.yFixed}),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}}onPinch(e){let t=this.getPointer(e.center);this.drag.pinched=!0,this.pinch.scale===void 0&&(this.pinch.scale=1);let i=this.pinch.scale*e.scale;this.zoom(i,t)}zoom(e,t){if(this.options.zoomView===!0){let i=this.body.view.scale;e<1e-5&&(e=1e-5),e>10&&(e=10);let n;this.drag!==void 0&&this.drag.dragging===!0&&(n=this.canvas.DOMtoCanvas(this.drag.pointer));let s=this.body.view.translation,g=e/i,o=(1-g)*t.x+s.x*g,a=(1-g)*t.y+s.y*g;if(this.body.view.scale=e,this.body.view.translation={x:o,y:a},n!=null){let A=this.canvas.canvasToDOM(n);this.drag.pointer.x=A.x,this.drag.pointer.y=A.y}this.body.emitter.emit("_requestRedraw"),ithis._checkShowPopup(t),this.options.tooltipDelay))),this.options.hover===!0&&this.selectionHandler.hoverObject(e,t)}_checkShowPopup(e){let t=this.canvas._XconvertDOMtoCanvas(e.x),i=this.canvas._YconvertDOMtoCanvas(e.y),n={left:t,top:i,right:t,bottom:i},s=this.popupObj===void 0?void 0:this.popupObj.id,g=!1,o="node";if(this.popupObj===void 0){let a=this.body.nodeIndices,A=this.body.nodes,C,I=[];for(let l=0;l0&&(this.popupObj=A[I[I.length-1]],g=!0)}if(this.popupObj===void 0&&g===!1){let a=this.body.edgeIndices,A=this.body.edges,C,I=[];for(let l=0;l0&&(this.popupObj=A[I[I.length-1]],o="edge")}this.popupObj!==void 0?this.popupObj.id!==s&&(this.popup===void 0&&(this.popup=new X5(this.canvas.frame)),this.popup.popupTargetType=o,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(e.x+3,e.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):this.popup!==void 0&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}_checkHidePopup(e){let t=this.selectionHandler._pointerToPositionObject(e),i=!1;if(this.popup.popupTargetType==="node"){if(this.body.nodes[this.popup.popupTargetId]!==void 0&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(t),i===!0)){let n=this.selectionHandler.getNodeAt(e);i=n===void 0?!1:n.id===this.popup.popupTargetId}}else this.selectionHandler.getNodeAt(e)===void 0&&this.body.edges[this.popup.popupTargetId]!==void 0&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(t));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}},xD={},SD={},yf,ED;function gZ(){if(ED)return yf;ED=1;var r=ne(),e=pm(),t=ka().getWeakData,i=um(),n=wi(),s=Br(),g=Ue(),o=Oa(),a=an(),A=He(),C=Zn(),I=C.set,l=C.getterFor,h=a.find,d=a.findIndex,c=r([].splice),f=0,u=function(m){return m.frozen||(m.frozen=new p)},p=function(){this.entries=[]},v=function(m,b){return h(m.entries,function(w){return w[0]===b})};return p.prototype={get:function(m){var b=v(this,m);if(b)return b[1]},has:function(m){return!!v(this,m)},set:function(m,b){var w=v(this,m);w?w[1]=b:this.entries.push([m,b])},delete:function(m){var b=d(this.entries,function(w){return w[0]===m});return~b&&c(this.entries,b,1),!!~b}},yf={getConstructor:function(m,b,w,x){var y=m(function(E,O){i(E,S),I(E,{type:b,id:f++,frozen:null}),s(O)||o(O,E[x],{that:E,AS_ENTRIES:w})}),S=y.prototype,k=l(b),R=function(E,O,N){var F=k(E),U=t(n(O),!0);return U===!0?u(F).set(O,N):U[F.id]=N,E};return e(S,{delete:function(E){var O=k(this);if(!g(E))return!1;var N=t(E);return N===!0?u(O).delete(E):N&&A(N,O.id)&&delete N[O.id]},has:function(O){var N=k(this);if(!g(O))return!1;var F=t(O);return F===!0?u(N).has(O):F&&A(F,N.id)}}),e(S,w?{get:function(O){var N=k(this);if(g(O)){var F=t(O);if(F===!0)return u(N).get(O);if(F)return F[N.id]}},set:function(O,N){return R(this,O,N)}}:{add:function(O){return R(this,O,!0)}}),y}},yf}var TD;function oZ(){if(TD)return SD;TD=1;var r=nP(),e=Te(),t=ne(),i=pm(),n=ka(),s=fm(),g=gZ(),o=Ue(),a=Zn().enforce,A=te(),C=$D(),I=Object,l=Array.isArray,h=I.isExtensible,d=I.isFrozen,c=I.isSealed,f=I.freeze,u=I.seal,p=!e.ActiveXObject&&"ActiveXObject"in e,v,m=function(E){return function(){return E(this,arguments.length?arguments[0]:void 0)}},b=s("WeakMap",m,g),w=b.prototype,x=t(w.set),y=function(){return r&&A(function(){var E=f([]);return x(new b,E,1),!d(E)})};if(C)if(p){v=g.getConstructor(m,"WeakMap",!0),n.enable();var S=t(w.delete),k=t(w.has),R=t(w.get);i(w,{delete:function(E){if(o(E)&&!h(E)){var O=a(this);return O.frozen||(O.frozen=new v),S(this,E)||O.frozen.delete(E)}return S(this,E)},has:function(O){if(o(O)&&!h(O)){var N=a(this);return N.frozen||(N.frozen=new v),k(this,O)||N.frozen.has(O)}return k(this,O)},get:function(O){if(o(O)&&!h(O)){var N=a(this);return N.frozen||(N.frozen=new v),k(this,O)?R(this,O):N.frozen.get(O)}return R(this,O)},set:function(O,N){if(o(O)&&!h(O)){var F=a(this);F.frozen||(F.frozen=new v),k(this,O)?x(this,O,N):F.frozen.set(O,N)}else x(this,O,N);return this}})}else y()&&i(w,{set:function(O,N){var F;return l(O)&&(d(O)?F=f:c(O)&&(F=u)),x(this,O,N),F&&F(O),this}});return SD}var kD;function aZ(){return kD||(kD=1,oZ()),xD}var wf,OD;function AZ(){if(OD)return wf;OD=1,Fi(),aZ();var r=le();return wf=r.WeakMap,wf}var xf,RD;function CZ(){if(RD)return xf;RD=1;var r=AZ();return Li(),xf=r,xf}var Sf,DD;function IZ(){return DD||(DD=1,Sf=CZ()),Sf}var lZ=IZ(),pg=Y(lZ);function Ws(r,e,t){hZ(r,e),e.set(r,t)}function hZ(r,e){if(e.has(r))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Np(r,e,t){return r.set(pP(r,e),t),t}function me(r,e){return r.get(pP(r,e))}function pP(r,e,t){if(typeof r=="function"?r===e:r.has(e))return arguments.length<3?e:t;throw new TypeError("Private element is not present on this object")}function PD(r,e){let t=new ti;for(let i of e)r.has(i)||t.add(i);return t}var wr=new pg,Jt=new pg,Aa=class{constructor(){Ws(this,wr,new ti),Ws(this,Jt,new ti)}get size(){return me(Jt,this).size}add(){for(var e=arguments.length,t=new Array(e),i=0;i0&&arguments[0]!==void 0?arguments[0]:()=>{};Ws(this,Dn,new Aa),Ws(this,Pn,new Aa),Ws(this,Ef,void 0),Np(Ef,this,e)}get sizeNodes(){return me(Dn,this).size}get sizeEdges(){return me(Pn,this).size}getNodes(){return me(Dn,this).getSelection()}getEdges(){return me(Pn,this).getSelection()}addNodes(){me(Dn,this).add(...arguments)}addEdges(){me(Pn,this).add(...arguments)}deleteNodes(e){me(Dn,this).delete(e)}deleteEdges(e){me(Pn,this).delete(e)}clear(){me(Dn,this).clear(),me(Pn,this).clear()}commit(){let e={nodes:me(Dn,this).commit(),edges:me(Pn,this).commit()};for(var t=arguments.length,i=new Array(t),n=0;n{this.updateSelection()})}setOptions(e){e!==void 0&&Kr(["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"],this.options,e)}selectOnPoint(e){let t=!1;if(this.options.selectable===!0){let i=this.getNodeAt(e)||this.getEdgeAt(e);this.unselectAll(),i!==void 0&&(t=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return t}selectAdditionalOnPoint(e){let t=!1;if(this.options.selectable===!0){let i=this.getNodeAt(e)||this.getEdgeAt(e);i!==void 0&&(t=!0,i.isSelected()===!0?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return t}_initBaseEvent(e,t){let i={};return i.pointer={DOM:{x:t.x,y:t.y},canvas:this.canvas.DOMtoCanvas(t)},i.event=e,i}generateClickEvent(e,t,i,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,g=this._initBaseEvent(t,i);if(s===!0)g.nodes=[],g.edges=[];else{let o=this.getSelection();g.nodes=o.nodes,g.edges=o.edges}n!==void 0&&(g.previousSelection=n),e=="click"&&(g.items=this.getClickedItems(i)),t.controlEdge!==void 0&&(g.controlEdge=t.controlEdge),this.body.emitter.emit(e,g)}selectObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.selectConnectedEdges;return e!==void 0?(e instanceof at?(t===!0&&this._selectionAccumulator.addEdges(...e.edges),this._selectionAccumulator.addNodes(e)):this._selectionAccumulator.addEdges(e),!0):!1}deselectObject(e){e.isSelected()===!0&&(e.selected=!1,this._removeFromSelection(e))}_getAllNodesOverlappingWith(e){let t=[],i=this.body.nodes;for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:!0,i=this._pointerToPositionObject(e),n=this._getAllNodesOverlappingWith(i);if(n.length>0)return t===!0?this.body.nodes[n[n.length-1]]:n[n.length-1]}_getEdgesOverlappingWith(e,t){let i=this.body.edges;for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:!0,i=this.canvas.DOMtoCanvas(e),n=10,s=null,g=this.body.edges;for(let o=0;o0&&(this.generateClickEvent("deselectEdge",t,e,s),i=!0),n.nodes.deleted.length>0&&(this.generateClickEvent("deselectNode",t,e,s),i=!0),n.nodes.added.length>0&&(this.generateClickEvent("selectNode",t,e),i=!0),n.edges.added.length>0&&(this.generateClickEvent("selectEdge",t,e),i=!0),i===!0&&this.generateClickEvent("select",t,e)}getSelection(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}getSelectedNodes(){return this._selectionAccumulator.getNodes()}getSelectedEdges(){return this._selectionAccumulator.getEdges()}getSelectedNodeIds(){var e;return tt(e=this._selectionAccumulator.getNodes()).call(e,t=>t.id)}getSelectedEdgeIds(){var e;return tt(e=this._selectionAccumulator.getEdges()).call(e,t=>t.id)}setSelection(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||!e.nodes&&!e.edges)throw new TypeError("Selection must be an object with nodes and/or edges properties");if((t.unselectAll||t.unselectAll===void 0)&&this.unselectAll(),e.nodes)for(let i of e.nodes){let n=this.body.nodes[i];if(!n)throw new RangeError('Node with id "'+i+'" not found');this.selectObject(n,t.highlightEdges)}if(e.edges)for(let i of e.edges){let n=this.body.edges[i];if(!n)throw new RangeError('Edge with id "'+i+'" not found');this.selectObject(n)}this.body.emitter.emit("_requestRedraw"),this._selectionAccumulator.commit()}selectNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({nodes:e},{highlightEdges:t})}selectEdges(e){if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({edges:e})}updateSelection(){for(let e in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,e.id)||this._selectionAccumulator.deleteNodes(e);for(let e in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,e.id)||this._selectionAccumulator.deleteEdges(e)}getClickedItems(e){let t=this.canvas.DOMtoCanvas(e),i=[],n=this.body.nodeIndices,s=this.body.nodes;for(let a=n.length-1;a>=0;a--){let C=s[n[a]].getItemsOnPoint(t);i.push.apply(i,C)}let g=this.body.edgeIndices,o=this.body.edges;for(let a=g.length-1;a>=0;a--){let C=o[g[a]].getItemsOnPoint(t);i.push.apply(i,C)}return i}},Ca=class{abstract(){throw new Error("Can't instantiate abstract class!")}fake_use(){}curveType(){return this.abstract()}getPosition(e){return this.fake_use(e),this.abstract()}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;this.fake_use(e,t,i),this.abstract()}getTreeSize(e){return this.fake_use(e),this.abstract()}sort(e){this.fake_use(e),this.abstract()}fix(e,t){this.fake_use(e,t),this.abstract()}shift(e,t){this.fake_use(e,t),this.abstract()}},Fp=class extends Ca{constructor(e){super(),this.layout=e}curveType(){return"horizontal"}getPosition(e){return e.x}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;i!==void 0&&this.layout.hierarchical.addToOrdering(e,i),e.x=t}getTreeSize(e){let t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_x,max:t.max_x}}sort(e){Ni(e).call(e,function(t,i){return t.x-i.x})}fix(e,t){e.y=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.y=!0}shift(e,t){this.layout.body.nodes[e].x+=t}},Lp=class extends Ca{constructor(e){super(),this.layout=e}curveType(){return"vertical"}getPosition(e){return e.y}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;i!==void 0&&this.layout.hierarchical.addToOrdering(e,i),e.y=t}getTreeSize(e){let t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_y,max:t.max_y}}sort(e){Ni(e).call(e,function(t,i){return t.y-i.y})}fix(e,t){e.x=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.x=!0}shift(e,t){this.layout.body.nodes[e].y+=t}},MD={},ND;function dZ(){if(ND)return MD;ND=1;var r=Z(),e=an().every,t=jr(),i=t("every");return r({target:"Array",proto:!0,forced:!i},{every:function(s){return e(this,s,arguments.length>1?arguments[1]:void 0)}}),MD}var Tf,BD;function cZ(){if(BD)return Tf;BD=1,dZ();var r=We();return Tf=r("Array","every"),Tf}var kf,_D;function uZ(){if(_D)return kf;_D=1;var r=Re(),e=cZ(),t=Array.prototype;return kf=function(i){var n=i.every;return i===t||r(t,i)&&n===t.every?e:n},kf}var Of,FD;function fZ(){if(FD)return Of;FD=1;var r=uZ();return Of=r,Of}var Rf,LD;function pZ(){return LD||(LD=1,Rf=fZ()),Rf}var mZ=pZ(),mP=Y(mZ);function vZ(r,e){let t=new ti;return oe(r).call(r,i=>{var n;oe(n=i.edges).call(n,s=>{s.connected&&t.add(s)})}),oe(t).call(t,i=>{let n=i.from.id,s=i.to.id;e[n]==null&&(e[n]=0),(e[s]==null||e[n]>=e[s])&&(e[s]=e[n]+1)}),e}function bZ(r){return vP(e=>{var t,i;return mP(t=ze(i=e.edges).call(i,n=>r.has(n.toId))).call(t,n=>n.to===e)},(e,t)=>t>e,"from",r)}function yZ(r){return vP(e=>{var t,i;return mP(t=ze(i=e.edges).call(i,n=>r.has(n.toId))).call(t,n=>n.from===e)},(e,t)=>tI+1+l.edges.length,0),o=t+"Id",a=t==="to"?1:-1;for(let[I,l]of i){if(!i.has(I)||!r(l))continue;s[I]=0;let h=[l],d=0,c;for(;c=h.pop();){var A,C;if(!i.has(I))continue;let f=s[c.id]+a;if(oe(A=ze(C=c.edges).call(C,u=>u.connected&&u.to!==u.from&&u[t]!==c&&i.has(u.toId)&&i.has(u.fromId))).call(A,u=>{let p=u[o],v=s[p];(v==null||e(f,v))&&(s[p]=f,h.push(u[t]))}),d>g)return vZ(i,s);++d}}return s}var zp=class{constructor(){this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}addRelation(e,t){this.childrenReference[e]===void 0&&(this.childrenReference[e]=[]),this.childrenReference[e].push(t),this.parentReference[t]===void 0&&(this.parentReference[t]=[]),this.parentReference[t].push(e)}checkIfTree(){for(let e in this.parentReference)if(this.parentReference[e].length>1){this.isTree=!1;return}this.isTree=!0}numTrees(){return this.treeIndex+1}setTreeIndex(e,t){t!==void 0&&this.trees[e.id]===void 0&&(this.trees[e.id]=t,this.treeIndex=Math.max(t,this.treeIndex))}ensureLevel(e){this.levels[e]===void 0&&(this.levels[e]=0)}getMaxLevel(e){let t={},i=n=>{if(t[n]!==void 0)return t[n];let s=this.levels[n];if(this.childrenReference[n]){let g=this.childrenReference[n];if(g.length>0)for(let o=0;os-g);for(let s of n)t.set(s,i++);for(let s in this.levels)Object.prototype.hasOwnProperty.call(this.levels,s)&&(this.levels[s]=t.get(this.levels[s]))}getTreeSize(e,t){let i=1e9,n=-1e9,s=1e9,g=-1e9;for(let o in this.trees)if(Object.prototype.hasOwnProperty.call(this.trees,o)&&this.trees[o]===t){let a=e[o];i=Math.min(a.x,i),n=Math.max(a.x,n),s=Math.min(a.y,s),g=Math.max(a.y,g)}return{min_x:i,max_x:n,min_y:s,max_y:g}}hasSameParent(e,t){let i=this.parentReference[e.id],n=this.parentReference[t.id];if(i===void 0||n===void 0)return!1;for(let s=0;s{this.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",()=>{this.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on("_adjustEdgesForHierarchicalLayout",()=>{if(this.options.hierarchical.enabled!==!0)return;let e=this.direction.curveType();this.body.emitter.emit("_forceDisableDynamicCurves",e,!1)})}setOptions(e,t){if(e!==void 0){let i=this.options.hierarchical,n=i.enabled;if(Kr(["randomSeed","improvedLayout","clusterThreshold"],this.options,e),_t(this.options,e,"hierarchical"),e.randomSeed!==void 0&&this._resetRNG(e.randomSeed),i.enabled===!0)return n===!0&&this.body.emitter.emit("refresh",!0),i.direction==="RL"||i.direction==="DU"?i.levelSeparation>0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(t);if(n===!0)return this.body.emitter.emit("refresh"),ve(t,this.optionsBackup)}return t}_resetRNG(e){this.initialRandomSeed=e,this._rng=Ta(this.initialRandomSeed)}adaptAllOptionsForHierarchicalLayout(e){if(this.options.hierarchical.enabled===!0){let t=this.optionsBackup.physics;e.physics===void 0||e.physics===!0?(e.physics={enabled:t.enabled===void 0?!0:t.enabled,solver:"hierarchicalRepulsion"},t.enabled=t.enabled===void 0?!0:t.enabled,t.solver=t.solver||"barnesHut"):typeof e.physics=="object"?(t.enabled=e.physics.enabled===void 0?!0:e.physics.enabled,t.solver=e.physics.solver||"barnesHut",e.physics.solver="hierarchicalRepulsion"):e.physics!==!1&&(t.solver="barnesHut",e.physics={solver:"hierarchicalRepulsion"});let i=this.direction.curveType();if(e.edges===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges={smooth:!1};else if(e.edges.smooth===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges.smooth=!1;else if(typeof e.edges.smooth=="boolean")this.optionsBackup.edges={smooth:e.edges.smooth},e.edges.smooth={enabled:e.edges.smooth,type:i};else{let n=e.edges.smooth;n.type!==void 0&&n.type!=="dynamic"&&(i=n.type),this.optionsBackup.edges={smooth:{enabled:n.enabled===void 0?!0:n.enabled,type:n.type===void 0?"dynamic":n.type,roundness:n.roundness===void 0?.5:n.roundness,forceDirection:n.forceDirection===void 0?!1:n.forceDirection}},e.edges.smooth={enabled:n.enabled===void 0?!0:n.enabled,type:i,roundness:n.roundness===void 0?.5:n.roundness,forceDirection:n.forceDirection===void 0?!1:n.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return e}positionInitially(e){if(this.options.hierarchical.enabled!==!0){this._resetRNG(this.initialRandomSeed);let t=e.length+50;for(let i=0;is){let a=e.length;for(;e.length>s&&n<=10;){n+=1;let A=e.length;n%3===0?this.body.modules.clustering.clusterBridges(g):this.body.modules.clustering.clusterOutliers(g);let C=e.length;if(A==C&&n%3!==0){this._declusterAll(),this.body.emitter.emit("_layoutFailed"),console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*a)})}n>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(e,this.body.edgeIndices,!0),this._shiftToCenter();let o=70;for(let a=0;a0){let e,t,i=!1,n=!1;this.lastNodeOnLevel={},this.hierarchical=new zp;for(t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&(e=this.body.nodes[t],e.options.level!==void 0?(i=!0,this.hierarchical.levels[t]=e.options.level):n=!0);if(n===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");{if(n===!0){let g=this.options.hierarchical.sortMethod;g==="hubsize"?this._determineLevelsByHubsize():g==="directed"?this._determineLevelsDirected():g==="custom"&&this._determineLevelsCustomCallback()}for(let g in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,g)&&this.hierarchical.ensureLevel(g);let s=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(s),this._condenseHierarchy(),this._shiftToCenter()}}}_condenseHierarchy(){var e=this;let t=!1,i={},n=()=>{let u=g(),p=0;for(let v=0;v{let v=this.hierarchical.trees;for(let m in v)Object.prototype.hasOwnProperty.call(v,m)&&v[m]===u&&this.direction.shift(m,p)},g=()=>{let u=[];for(let p=0;p{if(!p[u.id]&&(p[u.id]=!0,this.hierarchical.childrenReference[u.id])){let v=this.hierarchical.childrenReference[u.id];if(v.length>0)for(let m=0;m1&&arguments[1]!==void 0?arguments[1]:1e9,v=1e9,m=1e9,b=1e9,w=-1e9;for(let x in u)if(Object.prototype.hasOwnProperty.call(u,x)){let y=e.body.nodes[x],S=e.hierarchical.levels[y.id],k=e.direction.getPosition(y),[R,E]=e._getSpaceAroundNode(y,u);v=Math.min(R,v),m=Math.min(E,m),S<=p&&(b=Math.min(k,b),w=Math.max(k,w))}return[b,w,v,m]},A=(u,p)=>{let v=this.hierarchical.getMaxLevel(u.id),m=this.hierarchical.getMaxLevel(p.id);return Math.min(v,m)},C=(u,p,v)=>{let m=this.hierarchical;for(let b=0;b1)for(let y=0;y2&&arguments[2]!==void 0?arguments[2]:!1,m=e.direction.getPosition(u),b=e.direction.getPosition(p),w=Math.abs(b-m),x=e.options.hierarchical.nodeSpacing;if(w>x){let y={},S={};o(u,y),o(p,S);let k=A(u,p),R=a(y,k),E=a(S,k),O=R[1],N=E[0],F=E[2];if(Math.abs(O-N)>x){let K=O-N+x;K<-F+x&&(K=-F+x),K<0&&(e._shiftBlock(p.id,K),t=!0,v===!0&&e._centerParent(p))}}},l=(u,p)=>{let v=p.id,m=p.edges,b=this.hierarchical.levels[p.id],w=this.options.hierarchical.levelSeparation*this.options.hierarchical.levelSeparation,x={},y=[];for(let F=0;F{let K=0;for(let ae=0;ae{let K=0;for(let ae=0;ae{let K=this.direction.getPosition(p),ae={};for(let re=0;re{let U=this.direction.getPosition(p);if(i[p.id]===void 0){let he={};o(p,he),i[p.id]=he}let K=a(i[p.id]),ae=K[2],re=K[3],Pe=F-U,X=0;Pe>0?X=Math.min(Pe,re-this.options.hierarchical.nodeSpacing):Pe<0&&(X=-Math.min(-Pe,ae-this.options.hierarchical.nodeSpacing)),X!=0&&(this._shiftBlock(p.id,X),t=!0)},O=F=>{let U=this.direction.getPosition(p),[K,ae]=this._getSpaceAroundNode(p),re=F-U,Pe=U;re>0?Pe=Math.min(U+(ae-this.options.hierarchical.nodeSpacing),F):re<0&&(Pe=Math.max(U-(K-this.options.hierarchical.nodeSpacing),F)),Pe!==U&&(this.direction.setPosition(p,Pe),t=!0)},N=R(u,y);E(N),N=R(u,m),O(N)},h=u=>{let p=this.hierarchical.getLevels();p=Bn(p).call(p);for(let v=0;v{let p=this.hierarchical.getLevels();p=Bn(p).call(p);for(let v=0;v{for(let u in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,u)&&this._centerParent(this.body.nodes[u])},f=()=>{let u=this.hierarchical.getLevels();u=Bn(u).call(u);for(let p=0;p0&&Math.abs(I)0&&(A=this.direction.getPosition(n[g-1])+a),this.direction.setPosition(o,A,i),this._validatePositionAndContinue(o,i,A),s++}}}}_placeBranchNodes(e,t){var i;let n=this.hierarchical.childrenReference[e];if(n===void 0)return;let s=[];for(let o=0;ot&&this.positionedNodes[a.id]===void 0){let C=this.options.hierarchical.nodeSpacing,I;o===0?I=this.direction.getPosition(this.body.nodes[e]):I=this.direction.getPosition(s[o-1])+C,this.direction.setPosition(a,I,A),this._validatePositionAndContinue(a,A,I)}else return}let g=this._getCenterPosition(s);this.direction.setPosition(this.body.nodes[e],g,t)}_validatePositionAndContinue(e,t,i){if(this.hierarchical.isTree){if(this.lastNodeOnLevel[t]!==void 0){let n=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[t]]);if(i-n{var n;de(n=this.body.edgeIndices).call(n,i.id)!==-1&&t.push(i)}),t}_getHubSizes(){let e={},t=this.body.nodeIndices;$(t,n=>{let s=this.body.nodes[n],g=this._getActiveEdges(s).length;e[g]=!0});let i=[];return $(e,n=>{i.push(Number(n))}),Ni(i).call(i,function(n,s){return s-n}),i}_determineLevelsByHubsize(){let e=(i,n)=>{this.hierarchical.levelDownstream(i,n)},t=this._getHubSizes();for(let i=0;i{let g=this.body.nodes[s];n===this._getActiveEdges(g).length&&this._crawlNetwork(e,s)})}}_determineLevelsCustomCallback(){let t=function(n,s,g){},i=(n,s,g)=>{let o=this.hierarchical.levels[n.id];o===void 0&&(o=this.hierarchical.levels[n.id]=1e5);let a=t(it.cloneOptions(n,"node"),it.cloneOptions(s,"node"),it.cloneOptions(g,"edge"));this.hierarchical.levels[s.id]=o+a};this._crawlNetwork(i),this.hierarchical.setMinLevelToZero()}_determineLevelsDirected(){var e;let t=mm(e=this.body.nodeIndices).call(e,(i,n)=>(i.set(n,this.body.nodes[n]),i),new hg);this.options.hierarchical.shakeTowards==="roots"?this.hierarchical.levels=yZ(t):this.hierarchical.levels=bZ(t),this.hierarchical.setMinLevelToZero()}_generateMap(){let e=(t,i)=>{this.hierarchical.levels[i.id]>this.hierarchical.levels[t.id]&&this.hierarchical.addRelation(t.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}_crawlNetwork(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){},t=arguments.length>1?arguments[1]:void 0,i={},n=(s,g)=>{if(i[s.id]===void 0){this.hierarchical.setTreeIndex(s,g),i[s.id]=!0;let o,a=this._getActiveEdges(s);for(let A=0;A{if(i[s])return;i[s]=!0,this.direction.shift(s,t);let g=this.hierarchical.childrenReference[s];if(g!==void 0)for(let o=0;o{let a=this.hierarchical.parentReference[o];if(a!==void 0)for(let A=0;A{let a=this.hierarchical.parentReference[o];if(a!==void 0)for(let A=0;A{this._clean()}),this.body.emitter.on("_dataChanged",M(s=this._restore).call(s,this)),this.body.emitter.on("_resetData",M(g=this._restore).call(g,this))}_restore(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}setOptions(e,t,i){t!==void 0&&(t.locale!==void 0?this.options.locale=t.locale:this.options.locale=i.locale,t.locales!==void 0?this.options.locales=t.locales:this.options.locales=i.locales),e!==void 0&&(typeof e=="boolean"?this.options.enabled=e:(this.options.enabled=!0,ve(this.options,e)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}toggleEditMode(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}enableEditMode(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}disableEditMode(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}showManipulatorToolbar(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){var e,t;this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";let i=this.selectionHandler.getSelectedNodeCount(),n=this.selectionHandler.getSelectedEdgeCount(),s=i+n,g=this.options.locales[this.options.locale],o=!1;this.options.addNode!==!1&&(this._createAddNodeButton(g),o=!0),this.options.addEdge!==!1&&(o===!0?this._createSeperator(1):o=!0,this._createAddEdgeButton(g)),i===1&&typeof this.options.editNode=="function"?(o===!0?this._createSeperator(2):o=!0,this._createEditNodeButton(g)):n===1&&i===0&&this.options.editEdge!==!1&&(o===!0?this._createSeperator(3):o=!0,this._createEditEdgeButton(g)),s!==0&&(i>0&&this.options.deleteNode!==!1?(o===!0&&this._createSeperator(4),this._createDeleteButton(g)):i===0&&this.options.deleteEdge!==!1&&(o===!0&&this._createSeperator(4),this._createDeleteButton(g))),this._bindElementEvents(this.closeDiv,M(e=this.toggleEditMode).call(e,this)),this._temporaryBindEvent("select",M(t=this.showManipulatorToolbar).call(t,this))}this.body.emitter.emit("_redraw")}addNodeMode(){var e;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t;let i=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(i),this._createSeperator(),this._createDescription(i.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,M(t=this.toggleEditMode).call(t,this))}this._temporaryBindEvent("click",M(e=this._performAddNode).call(e,this))}editNode(){this.editMode!==!0&&this.enableEditMode(),this._clean();let e=this.selectionHandler.getSelectedNodes()[0];if(e!==void 0)if(this.inMode="editNode",typeof this.options.editNode=="function")if(e.isCluster!==!0){let t=ve({},e.options,!1);if(t.x=e.x,t.y=e.y,this.options.editNode.length===2)this.options.editNode(t,i=>{i!=null&&this.inMode==="editNode"&&this.body.data.nodes.getDataSet().update(i),this.showManipulatorToolbar()});else throw new Error("The function for edit does not support two arguments (data, callback)")}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError);else throw new Error("No function has been configured to handle the editing of nodes.");else this.showManipulatorToolbar()}addEdgeMode(){var e,t,i,n,s;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var g;let o=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(o),this._createSeperator(),this._createDescription(o.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,M(g=this.toggleEditMode).call(g,this))}this._temporaryBindUI("onTouch",M(e=this._handleConnect).call(e,this)),this._temporaryBindUI("onDragEnd",M(t=this._finishConnect).call(t,this)),this._temporaryBindUI("onDrag",M(i=this._dragControlNode).call(i,this)),this._temporaryBindUI("onRelease",M(n=this._finishConnect).call(n,this)),this._temporaryBindUI("onDragStart",M(s=this._dragStartEdge).call(s,this)),this._temporaryBindUI("onHold",()=>{})}editEdgeMode(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",typeof this.options.editEdge=="object"&&typeof this.options.editEdge.editWithoutDrag=="function"&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0)){let g=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(g.from.id,g.to.id);return}if(this.guiEnabled===!0){var e;let g=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(g),this._createSeperator(),this._createDescription(g.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,M(e=this.toggleEditMode).call(e,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0){var t,i,n,s;let g=this.body.edges[this.edgeBeingEditedId],o=this._getNewTargetNode(g.from.x,g.from.y),a=this._getNewTargetNode(g.to.x,g.to.y);this.temporaryIds.nodes.push(o.id),this.temporaryIds.nodes.push(a.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this.body.nodes[a.id]=a,this.body.nodeIndices.push(a.id),this._temporaryBindUI("onTouch",M(t=this._controlNodeTouch).call(t,this)),this._temporaryBindUI("onTap",()=>{}),this._temporaryBindUI("onHold",()=>{}),this._temporaryBindUI("onDragStart",M(i=this._controlNodeDragStart).call(i,this)),this._temporaryBindUI("onDrag",M(n=this._controlNodeDrag).call(n,this)),this._temporaryBindUI("onDragEnd",M(s=this._controlNodeDragEnd).call(s,this)),this._temporaryBindUI("onMouseMove",()=>{}),this._temporaryBindEvent("beforeDrawing",A=>{let C=g.edgeType.findBorderPositions(A);o.selected===!1&&(o.x=C.from.x,o.y=C.from.y),a.selected===!1&&(a.x=C.to.x,a.y=C.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}deleteSelected(){this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";let e=this.selectionHandler.getSelectedNodeIds(),t=this.selectionHandler.getSelectedEdgeIds(),i;if(e.length>0){for(let n=0;n0&&typeof this.options.deleteEdge=="function"&&(i=this.options.deleteEdge);if(typeof i=="function"){let n={nodes:e,edges:t};if(i.length===2)i(n,s=>{s!=null&&this.inMode==="delete"?(this.body.data.edges.getDataSet().remove(s.edges),this.body.data.nodes.getDataSet().remove(s.nodes),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()):(this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar())});else throw new Error("The function for delete does not support two arguments (data, callback)")}else this.body.data.edges.getDataSet().remove(t),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}_setup(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}_createWrappers(){if(this.manipulationDiv===void 0&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),this.editModeDiv===void 0&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),this.closeDiv===void 0){var e,t;this.closeDiv=document.createElement("button"),this.closeDiv.className="vis-close",this.closeDiv.setAttribute("aria-label",(e=(t=this.options.locales[this.options.locale])===null||t===void 0?void 0:t.close)!==null&&e!==void 0?e:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv)}}_getNewTargetNode(e,t){let i=ve({},this.options.controlNodeStyle);i.id="targetNode"+Or(),i.hidden=!1,i.physics=!1,i.x=e,i.y=t;let n=this.body.functions.createNode(i);return n.shape.boundingBox={left:e,right:e,top:t,bottom:t},n}_createEditButton(){var e;this._clean(),this.manipulationDOM={},Xi(this.editModeDiv);let t=this.options.locales[this.options.locale],i=this._createButton("editMode","vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(i),this._bindElementEvents(i,M(e=this.toggleEditMode).call(e,this))}_clean(){this.inMode=!1,this.guiEnabled===!0&&(Xi(this.editModeDiv),Xi(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}_cleanupDOMEventListeners(){for(let t of di(e=this._domEventListenerCleanupQueue).call(e,0)){var e;t()}}_removeManipulationDOM(){this._clean(),Xi(this.manipulationDiv),Xi(this.editModeDiv),Xi(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}_createSeperator(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+e]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+e].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+e])}_createAddNodeButton(e){var t;let i=this._createButton("addNode","vis-add",e.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,M(t=this.addNodeMode).call(t,this))}_createAddEdgeButton(e){var t;let i=this._createButton("addEdge","vis-connect",e.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,M(t=this.addEdgeMode).call(t,this))}_createEditNodeButton(e){var t;let i=this._createButton("editNode","vis-edit",e.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,M(t=this.editNode).call(t,this))}_createEditEdgeButton(e){var t;let i=this._createButton("editEdge","vis-edit",e.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,M(t=this.editEdgeMode).call(t,this))}_createDeleteButton(e){var t;let i;this.options.rtl?i="vis-delete-rtl":i="vis-delete";let n=this._createButton("delete",i,e.del||this.options.locales.en.del);this.manipulationDiv.appendChild(n),this._bindElementEvents(n,M(t=this.deleteSelected).call(t,this))}_createBackButton(e){var t;let i=this._createButton("back","vis-back",e.back||this.options.locales.en.back);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,M(t=this.showManipulatorToolbar).call(t,this))}_createButton(e,t,i){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"vis-label";return this.manipulationDOM[e+"Div"]=document.createElement("button"),this.manipulationDOM[e+"Div"].className="vis-button "+t,this.manipulationDOM[e+"Label"]=document.createElement("div"),this.manipulationDOM[e+"Label"].className=n,this.manipulationDOM[e+"Label"].innerText=i,this.manipulationDOM[e+"Div"].appendChild(this.manipulationDOM[e+"Label"]),this.manipulationDOM[e+"Div"]}_createDescription(e){this.manipulationDOM.descriptionLabel=document.createElement("div"),this.manipulationDOM.descriptionLabel.className="vis-none",this.manipulationDOM.descriptionLabel.innerText=e,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}_temporaryBindEvent(e,t){this.temporaryEventFunctions.push({event:e,boundFunction:t}),this.body.emitter.on(e,t)}_temporaryBindUI(e,t){if(this.body.eventListeners[e]!==void 0)this.temporaryUIFunctions[e]=this.body.eventListeners[e],this.body.eventListeners[e]=t;else throw new Error("This UI function does not exist. Typo? You tried: "+e+" possible are: "+Hr(Se(this.body.eventListeners)))}_unbindTemporaryUIs(){for(let e in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,e)&&(this.body.eventListeners[e]=this.temporaryUIFunctions[e],delete this.temporaryUIFunctions[e]);this.temporaryUIFunctions={}}_unbindTemporaryEvents(){for(let e=0;e{i.destroy()});let n=s=>{let{keyCode:g,key:o}=s;(o==="Enter"||o===" "||g===13||g===32)&&t()};e.addEventListener("keyup",n,!1),this._domEventListenerCleanupQueue.push(()=>{e.removeEventListener("keyup",n,!1)})}_cleanupTemporaryNodesAndEdges(){for(let s=0;s=0;o--)if(s[o]!==this.selectedControlNode.id){g=this.body.nodes[s[o]];break}if(g!==void 0&&this.selectedControlNode!==void 0)if(g.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{let o=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===o.id?this._performEditEdge(g.id,n.to.id):this._performEditEdge(n.from.id,g.id)}else n.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}_handleConnect(e){if(new Date().valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=_e({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;let t=this.lastTouch,i=this.selectionHandler.getNodeAt(t);if(i!==void 0)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{let n=this._getNewTargetNode(i.x,i.y);this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id);let s=this.body.functions.createEdge({id:"connectionEdge"+Or(),from:i.id,to:n.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[s.id]=s,this.body.edgeIndices.push(s.id),this.temporaryIds.nodes.push(n.id),this.temporaryIds.edges.push(s.id)}this.touchTime=new Date().valueOf()}}_dragControlNode(e){let t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t),n;this.temporaryIds.edges[0]!==void 0&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);let s=this.selectionHandler._getAllNodesOverlappingWith(i),g;for(let a=s.length-1;a>=0;a--){var o;if(de(o=this.temporaryIds.nodes).call(o,s[a])===-1){g=this.body.nodes[s[a]];break}}if(e.controlEdge={from:n,to:g?g.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragging",e,t),this.temporaryIds.nodes[0]!==void 0){let a=this.body.nodes[this.temporaryIds.nodes[0]];a.x=this.canvas._XconvertDOMtoCanvas(t.x),a.y=this.canvas._YconvertDOMtoCanvas(t.y),this.body.emitter.emit("_redraw")}else this.interactionHandler.onDrag(e)}_finishConnect(e){let t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t),n;this.temporaryIds.edges[0]!==void 0&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);let s=this.selectionHandler._getAllNodesOverlappingWith(i),g;for(let a=s.length-1;a>=0;a--){var o;if(de(o=this.temporaryIds.nodes).call(o,s[a])===-1){g=this.body.nodes[s[a]];break}}this._cleanupTemporaryNodesAndEdges(),g!==void 0&&(g.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):this.body.nodes[n]!==void 0&&this.body.nodes[g.id]!==void 0&&this._performAddEdge(n,g.id)),e.controlEdge={from:n,to:g?g.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragEnd",e,t),this.body.emitter.emit("_redraw")}_dragStartEdge(e){let t=this.lastTouch;this.selectionHandler.generateClickEvent("dragStart",e,t,void 0,!0)}_performAddNode(e){let t={id:Or(),x:e.pointer.canvas.x,y:e.pointer.canvas.y,label:"new"};if(typeof this.options.addNode=="function")if(this.options.addNode.length===2)this.options.addNode(t,i=>{i!=null&&this.inMode==="addNode"&&this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()});else throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");else this.body.data.nodes.getDataSet().add(t),this.showManipulatorToolbar()}_performAddEdge(e,t){let i={from:e,to:t};if(typeof this.options.addEdge=="function")if(this.options.addEdge.length===2)this.options.addEdge(i,n=>{n!=null&&this.inMode==="addEdge"&&(this.body.data.edges.getDataSet().add(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for connect does not support two arguments (data,callback)");else this.body.data.edges.getDataSet().add(i),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}_performEditEdge(e,t){let i={id:this.edgeBeingEditedId,from:e,to:t,label:this.body.data.edges.get(this.edgeBeingEditedId).label},n=this.options.editEdge;if(typeof n=="object"&&(n=n.editWithoutDrag),typeof n=="function")if(n.length===2)n(i,s=>{s==null||this.inMode!=="editEdge"?(this.body.edges[i.id].updateEdgeType(),this.body.emitter.emit("_redraw"),this.showManipulatorToolbar()):(this.body.data.edges.getDataSet().update(s),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for edit does not support two arguments (data, callback)");else this.body.data.edges.getDataSet().update(i),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},_="string",P="boolean",T="number",Fs="array",G="object",bP="dom",wZ="any",Df=["arrow","bar","box","circle","crow","curve","diamond","image","inv_curve","inv_triangle","triangle","vee"],Pf={borderWidth:{number:T},borderWidthSelected:{number:T,undefined:"undefined"},brokenImage:{string:_,undefined:"undefined"},chosen:{label:{boolean:P,function:"function"},node:{boolean:P,function:"function"},__type__:{object:G,boolean:P}},color:{border:{string:_},background:{string:_},highlight:{border:{string:_},background:{string:_},__type__:{object:G,string:_}},hover:{border:{string:_},background:{string:_},__type__:{object:G,string:_}},__type__:{object:G,string:_}},opacity:{number:T,undefined:"undefined"},fixed:{x:{boolean:P},y:{boolean:P},__type__:{object:G,boolean:P}},font:{align:{string:_},color:{string:_},size:{number:T},face:{string:_},background:{string:_},strokeWidth:{number:T},strokeColor:{string:_},vadjust:{number:T},multi:{boolean:P,string:_},bold:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},boldital:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},ital:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},mono:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},__type__:{object:G,string:_}},group:{string:_,number:T,undefined:"undefined"},heightConstraint:{minimum:{number:T},valign:{string:_},__type__:{object:G,boolean:P,number:T}},hidden:{boolean:P},icon:{face:{string:_},code:{string:_},size:{number:T},color:{string:_},weight:{string:_,number:T},__type__:{object:G}},id:{string:_,number:T},image:{selected:{string:_,undefined:"undefined"},unselected:{string:_,undefined:"undefined"},__type__:{object:G,string:_}},imagePadding:{top:{number:T},right:{number:T},bottom:{number:T},left:{number:T},__type__:{object:G,number:T}},label:{string:_,undefined:"undefined"},labelHighlightBold:{boolean:P},level:{number:T,undefined:"undefined"},margin:{top:{number:T},right:{number:T},bottom:{number:T},left:{number:T},__type__:{object:G,number:T}},mass:{number:T},physics:{boolean:P},scaling:{min:{number:T},max:{number:T},label:{enabled:{boolean:P},min:{number:T},max:{number:T},maxVisible:{number:T},drawThreshold:{number:T},__type__:{object:G,boolean:P}},customScalingFunction:{function:"function"},__type__:{object:G}},shadow:{enabled:{boolean:P},color:{string:_},size:{number:T},x:{number:T},y:{number:T},__type__:{object:G,boolean:P}},shape:{string:["custom","ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon","hexagon"]},ctxRenderer:{function:"function"},shapeProperties:{borderDashes:{boolean:P,array:Fs},borderRadius:{number:T},interpolation:{boolean:P},useImageSize:{boolean:P},useBorderWithImage:{boolean:P},coordinateOrigin:{string:["center","top-left"]},__type__:{object:G}},size:{number:T},title:{string:_,dom:bP,undefined:"undefined"},value:{number:T,undefined:"undefined"},widthConstraint:{minimum:{number:T},maximum:{number:T},__type__:{object:G,boolean:P,number:T}},x:{number:T},y:{number:T},__type__:{object:G}},xZ={configure:{enabled:{boolean:P},filter:{boolean:P,string:_,array:Fs,function:"function"},container:{dom:bP},showButton:{boolean:P},__type__:{object:G,boolean:P,string:_,array:Fs,function:"function"}},edges:{arrows:{to:{enabled:{boolean:P},scaleFactor:{number:T},type:{string:Df},imageHeight:{number:T},imageWidth:{number:T},src:{string:_},__type__:{object:G,boolean:P}},middle:{enabled:{boolean:P},scaleFactor:{number:T},type:{string:Df},imageWidth:{number:T},imageHeight:{number:T},src:{string:_},__type__:{object:G,boolean:P}},from:{enabled:{boolean:P},scaleFactor:{number:T},type:{string:Df},imageWidth:{number:T},imageHeight:{number:T},src:{string:_},__type__:{object:G,boolean:P}},__type__:{string:["from","to","middle"],object:G}},endPointOffset:{from:{number:T},to:{number:T},__type__:{object:G,number:T}},arrowStrikethrough:{boolean:P},background:{enabled:{boolean:P},color:{string:_},size:{number:T},dashes:{boolean:P,array:Fs},__type__:{object:G,boolean:P}},chosen:{label:{boolean:P,function:"function"},edge:{boolean:P,function:"function"},__type__:{object:G,boolean:P}},color:{color:{string:_},highlight:{string:_},hover:{string:_},inherit:{string:["from","to","both"],boolean:P},opacity:{number:T},__type__:{object:G,string:_}},dashes:{boolean:P,array:Fs},font:{color:{string:_},size:{number:T},face:{string:_},background:{string:_},strokeWidth:{number:T},strokeColor:{string:_},align:{string:["horizontal","top","middle","bottom"]},vadjust:{number:T},multi:{boolean:P,string:_},bold:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},boldital:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},ital:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},mono:{color:{string:_},size:{number:T},face:{string:_},mod:{string:_},vadjust:{number:T},__type__:{object:G,string:_}},__type__:{object:G,string:_}},hidden:{boolean:P},hoverWidth:{function:"function",number:T},label:{string:_,undefined:"undefined"},labelHighlightBold:{boolean:P},length:{number:T,undefined:"undefined"},physics:{boolean:P},scaling:{min:{number:T},max:{number:T},label:{enabled:{boolean:P},min:{number:T},max:{number:T},maxVisible:{number:T},drawThreshold:{number:T},__type__:{object:G,boolean:P}},customScalingFunction:{function:"function"},__type__:{object:G}},selectionWidth:{function:"function",number:T},selfReferenceSize:{number:T},selfReference:{size:{number:T},angle:{number:T},renderBehindTheNode:{boolean:P},__type__:{object:G}},shadow:{enabled:{boolean:P},color:{string:_},size:{number:T},x:{number:T},y:{number:T},__type__:{object:G,boolean:P}},smooth:{enabled:{boolean:P},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:T},forceDirection:{string:["horizontal","vertical","none"],boolean:P},__type__:{object:G,boolean:P}},title:{string:_,undefined:"undefined"},width:{number:T},widthConstraint:{maximum:{number:T},__type__:{object:G,boolean:P,number:T}},value:{number:T,undefined:"undefined"},__type__:{object:G}},groups:{useDefaultGroups:{boolean:P},__any__:Pf,__type__:{object:G}},interaction:{dragNodes:{boolean:P},dragView:{boolean:P},hideEdgesOnDrag:{boolean:P},hideEdgesOnZoom:{boolean:P},hideNodesOnDrag:{boolean:P},hover:{boolean:P},keyboard:{enabled:{boolean:P},speed:{x:{number:T},y:{number:T},zoom:{number:T},__type__:{object:G}},bindToWindow:{boolean:P},autoFocus:{boolean:P},__type__:{object:G,boolean:P}},multiselect:{boolean:P},navigationButtons:{boolean:P},selectable:{boolean:P},selectConnectedEdges:{boolean:P},hoverConnectedEdges:{boolean:P},tooltipDelay:{number:T},zoomView:{boolean:P},zoomSpeed:{number:T},__type__:{object:G}},layout:{randomSeed:{undefined:"undefined",number:T,string:_},improvedLayout:{boolean:P},clusterThreshold:{number:T},hierarchical:{enabled:{boolean:P},levelSeparation:{number:T},nodeSpacing:{number:T},treeSpacing:{number:T},blockShifting:{boolean:P},edgeMinimization:{boolean:P},parentCentralization:{boolean:P},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},shakeTowards:{string:["leaves","roots"]},__type__:{object:G,boolean:P}},__type__:{object:G}},manipulation:{enabled:{boolean:P},initiallyActive:{boolean:P},addNode:{boolean:P,function:"function"},addEdge:{boolean:P,function:"function"},editNode:{function:"function"},editEdge:{editWithoutDrag:{function:"function"},__type__:{object:G,boolean:P,function:"function"}},deleteNode:{boolean:P,function:"function"},deleteEdge:{boolean:P,function:"function"},controlNodeStyle:Pf,__type__:{object:G,boolean:P}},nodes:Pf,physics:{enabled:{boolean:P},barnesHut:{theta:{number:T},gravitationalConstant:{number:T},centralGravity:{number:T},springLength:{number:T},springConstant:{number:T},damping:{number:T},avoidOverlap:{number:T},__type__:{object:G}},forceAtlas2Based:{theta:{number:T},gravitationalConstant:{number:T},centralGravity:{number:T},springLength:{number:T},springConstant:{number:T},damping:{number:T},avoidOverlap:{number:T},__type__:{object:G}},repulsion:{centralGravity:{number:T},springLength:{number:T},springConstant:{number:T},nodeDistance:{number:T},damping:{number:T},__type__:{object:G}},hierarchicalRepulsion:{centralGravity:{number:T},springLength:{number:T},springConstant:{number:T},nodeDistance:{number:T},damping:{number:T},avoidOverlap:{number:T},__type__:{object:G}},maxVelocity:{number:T},minVelocity:{number:T},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{boolean:P},iterations:{number:T},updateInterval:{number:T},onlyDynamicEdges:{boolean:P},fit:{boolean:P},__type__:{object:G,boolean:P}},timestep:{number:T},adaptiveTimestep:{boolean:P},wind:{x:{number:T},y:{number:T},__type__:{object:G}},__type__:{object:G,boolean:P}},autoResize:{boolean:P},clickToUse:{boolean:P},locale:{string:_},locales:{__any__:{any:wZ},__type__:{object:G}},height:{string:_},width:{string:_},__type__:{object:G}},yP={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown","hexagon"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"],shakeTowards:["leaves","roots"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},SZ=(r,e,t)=>{var i;return!!($i(r).call(r,"physics")&&$i(i=yP.physics.solver).call(i,e)&&t.physics.solver!==e&&e!=="wind")};var Wp=class{constructor(){}getDistances(e,t,i){let n={},s=e.edges;for(let o=0;o2&&arguments[2]!==void 0?arguments[2]:!1,n=this.distanceSolver.getDistances(this.body,e,t);this._createL_matrix(n),this._createK_matrix(n),this._createE_matrix();let s=.01,g=1,o=0,a=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),A=5,C=1e9,I=0,l=0,h=0,d=0,c=0;for(;C>s&&og&&cthis.body.emitter.emit("_requestRedraw")),this.groups=new Zf,this.canvas=new Rp(this.body),this.selectionHandler=new _p(this.body,this.canvas),this.interactionHandler=new Mp(this.body,this.canvas,this.selectionHandler),this.view=new Dp(this.body,this.canvas),this.renderer=new Op(this.body,this.canvas),this.physics=new Ep(this.body),this.layoutEngine=new qp(this.body),this.clustering=new kp(this.body),this.manipulation=new Vp(this.body,this.canvas,this.selectionHandler,this.interactionHandler),this.nodesHandler=new op(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new vp(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new Gp(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(t),this.setData(e)}UD(q.prototype);q.prototype.setOptions=function(r){if(r===null&&(r=void 0),r!==void 0){if(Q5.validate(r,xZ)===!0&&console.error("%cErrors have been found in the supplied options object.",U2),Kr(["locale","locales","clickToUse"],this.options,r),r.locale!==void 0&&(r.locale=bq(r.locales||this.options.locales,r.locale)),r=this.layoutEngine.setOptions(r.layout,r),this.canvas.setOptions(r),this.groups.setOptions(r.groups),this.nodesHandler.setOptions(r.nodes),this.edgesHandler.setOptions(r.edges),this.physics.setOptions(r.physics),this.manipulation.setOptions(r.manipulation,r,this.options),this.interactionHandler.setOptions(r.interaction),this.renderer.setOptions(r.interaction),this.selectionHandler.setOptions(r.interaction),r.groups!==void 0&&this.body.emitter.emit("refreshNodes"),"configure"in r&&(this.configurator||(this.configurator=new U5(this,this.body.container,yP,this.canvas.pixelRatio,SZ)),this.configurator.setOptions(r.configure)),this.configurator&&this.configurator.options.enabled===!0){let i={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};ve(i.nodes,this.nodesHandler.options),ve(i.edges,this.edgesHandler.options),ve(i.layout,this.layoutEngine.options),ve(i.interaction,this.selectionHandler.options),ve(i.interaction,this.renderer.options),ve(i.interaction,this.interactionHandler.options),ve(i.manipulation,this.manipulation.options),ve(i.physics,this.physics.options),ve(i.global,this.canvas.options),ve(i.global,this.options),this.configurator.setModuleOptions(i)}r.clickToUse!==void 0?r.clickToUse===!0?this.activator===void 0&&(this.activator=new K5(this.canvas.frame),this.activator.on("change",()=>{this.body.emitter.emit("activate")})):(this.activator!==void 0&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}};q.prototype._updateVisibleIndices=function(){let r=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&!this.clustering._isClusteredNode(t)&&r[t].options.hidden===!1&&this.body.nodeIndices.push(r[t].id);for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t],n=r[i.fromId],s=r[i.toId],g=n!==void 0&&s!==void 0;!this.clustering._isClusteredEdge(t)&&i.options.hidden===!1&&g&&n.options.hidden===!1&&s.options.hidden===!1&&this.body.edgeIndices.push(i.id)}};q.prototype.bindEventListeners=function(){this.body.emitter.on("_dataChanged",()=>{this.edgesHandler._updateState(),this.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",()=>{this.clustering._updateState(),this._updateVisibleIndices(),this._updateValueRange(this.body.nodes),this._updateValueRange(this.body.edges),this.body.emitter.emit("startSimulation"),this.body.emitter.emit("_requestRedraw")})};q.prototype.setData=function(r){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),r&&r.dot&&(r.nodes||r.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(r&&r.options),r&&r.dot){console.warn("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");let e=oq(r.dot);this.setData(e);return}else if(r&&r.gephi){console.warn("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");let e=aq(r.gephi);this.setData(e);return}else this.nodesHandler.setData(r&&r.nodes,!0),this.edgesHandler.setData(r&&r.edges,!0);this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")};q.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(let r in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,r)&&delete this.body.nodes[r];for(let r in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,r)&&delete this.body.edges[r];Xi(this.body.container)};q.prototype._updateValueRange=function(r){let e,t,i,n=0;for(e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let s=r[e].getValue();s!==void 0&&(t=t===void 0?s:Math.min(s,t),i=i===void 0?s:Math.max(s,i),n+=s)}if(t!==void 0&&i!==void 0)for(e in r)Object.prototype.hasOwnProperty.call(r,e)&&r[e].setValueRange(t,i,n)};q.prototype.isActive=function(){return!this.activator||this.activator.active};q.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)};q.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)};q.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)};q.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)};q.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)};q.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)};q.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)};q.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)};q.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)};q.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)};q.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)};q.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)};q.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)};q.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)};q.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)};q.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)};q.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)};q.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)};q.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)};q.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)};q.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)};q.prototype.editNodeMode=function(){return console.warn("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)};q.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)};q.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)};q.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)};q.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)};q.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)};q.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)};q.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)};q.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)};q.prototype.getConnectedNodes=function(r){return this.body.nodes[r]!==void 0?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)};q.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)};q.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)};q.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)};q.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)};q.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)};q.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)};q.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)};q.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)};q.prototype.getNodeAt=function(){let r=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return r!==void 0&&r.id!==void 0?r.id:r};q.prototype.getEdgeAt=function(){let r=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return r!==void 0&&r.id!==void 0?r.id:r};q.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)};q.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)};q.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()};q.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)};q.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)};q.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)};q.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)};q.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)};q.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)};q.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)};q.prototype.getOptionsFromConfigurator=function(){let r={};return this.configurator&&(r=this.configurator.getOptions.apply(this.configurator)),r};var Da=new mi,wP=new mi,xP={states:["q0","q1"],initialState:"q0",acceptStates:["q1"],transitions:[{from:"q0",to:"q0",label:`\u03B5, z0 \u2192 A z0 +`},{from:"q0",to:"q0",label:"\u03B5, z0 \u2192 B z0"},{from:"q0",to:"q1",label:"\u03B5, z0 \u2192 z0"},{from:"q1",to:"q1",label:"a, A \u2192 \u03B5"},{from:"q1",to:"q1",label:"b, B \u2192 \u03B5"}]};function TZ({ctx:r,id:e,x:t,y:i,state:{selected:n,hover:s},style:g,label:o}){return{drawNode(){r.save();let a=g.size;r.beginPath(),r.arc(t,i,a,0,2*Math.PI),r.fillStyle="red",r.fill(),r.lineWidth=4,r.strokeStyle="blue",r.stroke(),r.fillStyle="black",r.textAlign="center",r.fillText(o,t,i,a),r.textAlign="center",r.strokeStyle="white",r.fillStyle="black";let A=i-(a+10);for(let C of`meow[] +beeep`.split(` +`).reverse()){let I=r.measureText(C);A-=I.actualBoundingBoxAscent+I.actualBoundingBoxDescent,r.strokeText(C,t,A),r.fillText(C,t,A)}r.restore()},nodeDimensions:{width:20,height:20}}}for(let r of xP.states)Da.add({id:r,label:r});xP.transitions.forEach((r,e)=>{wP.add({id:`e${e}`,from:r.from,to:r.to,label:r.label})});function kZ(r,e,t,i){console.log("edge",e,t,i)}function OZ(r,e,t,i){console.log("node",e,t,i)}var Qj=RZ();function RZ(){let r=document.getElementById("graph"),e=new q(r,{nodes:Da,edges:wP},{layout:{improvedLayout:!0},autoResize:!0,width:"99%",physics:{enabled:!0,solver:"barnesHut",barnesHut:{gravitationalConstant:-8e3,springLength:120,springConstant:.04},stabilization:{iterations:200}},interaction:{dragNodes:!0,hover:!0,multiselect:!0,hoverConnectedEdges:!1,selectConnectedEdges:!1},nodes:{font:{color:"#c9d1d9"},color:{background:"#1f6feb",border:"#79c0ff",highlight:{background:"#388bfd",border:"#a5d6ff"}},chosen:{node:OZ},shape:"custom",ctxRenderer:TZ,size:18},edges:{chosen:{edge:kZ},arrowStrikethrough:!1,font:{align:"middle",color:"#000000ff"},color:{color:"rgba(201,209,217,0.35)",highlight:"#c9d1d9"},smooth:{type:"dynamic"},arrows:"to"}});return mi,e.on("doubleClick",t=>{for(let i of t.nodes){let n=Da.get(i);n.physics=!n.physics,Da.update(n)}}),e}function Pa(r,e,t){return Math.max(e,Math.min(t,r))}function Ma(r,e,t){let i=getComputedStyle(r).getPropertyValue(e).trim();if(!i)return t;let n=i.toLowerCase();if(n.endsWith("px")){let g=Number(n.slice(0,-2));return Number.isFinite(g)?g:t}let s=Number(n);return Number.isFinite(s)?s:t}function SP(r,e,t){let i=getComputedStyle(r).getPropertyValue(e).trim();if(!i)return t;let n=i.toLowerCase();if(n.endsWith("%")){let g=Number(n.slice(0,-1));return Number.isFinite(g)?g:t}let s=Number(n);return Number.isFinite(s)?s:t}function EP(r,e){getComputedStyle(r).display!=="flex"&&(r.style.display="flex"),r.style.flexDirection=e,r.style.overflow="hidden"}function Na(r){r.style.minWidth="0",r.style.minHeight="0"}function Ba(r,e,t){r.style.flexGrow="0",r.style.flexShrink="0",r.style.flexBasis=`${t}px`,e==="x"?r.style.width=`${t}px`:r.style.height=`${t}px`}function TP(r){r.style.flex="1 1 auto"}function DZ(){for(let r of document.querySelectorAll(".hSplit")){let e=r.parentElement;if(!e)continue;let t=Array.from(e.children);if(t.length!==3||t[1]!==r){console.warn("hSplit parent must be A | splitter | B",e);continue}let i=t[0],n=t[2];EP(e,"column"),Na(i),Na(n),TP(n);let s=r.getBoundingClientRect().height||8;r.style.flex=`0 0 ${s}px`;let g=SP(r,"--split-default",60),o=Ma(r,"--split-min-a",80),a=Ma(r,"--split-min-b",180);{let C=e.getBoundingClientRect(),I=Pa(g/100*C.height,o,C.height-s-a);Ba(i,"y",I)}let A=!1;r.addEventListener("pointerdown",C=>{A=!0,r.setPointerCapture(C.pointerId),document.body.style.cursor="row-resize",C.preventDefault()}),r.addEventListener("pointermove",C=>{if(!A)return;let I=e.getBoundingClientRect(),l=C.clientY-I.top,h=I.height-s-a,d=Pa(l,o,h);Ba(i,"y",d)}),r.addEventListener("pointerup",C=>{A=!1,document.body.style.cursor="",r.releasePointerCapture(C.pointerId)}),r.addEventListener("pointercancel",()=>{A=!1,document.body.style.cursor=""})}for(let r of document.querySelectorAll(".vSplit")){let e=r.parentElement;if(!e)continue;let t=Array.from(e.children);if(t.length!==3||t[1]!==r){console.warn("vSplit parent must be A | splitter | B",e);continue}let i=t[0],n=t[2];EP(e,"row"),Na(i),Na(n),TP(i);let s=r.getBoundingClientRect().width||8;r.style.flex=`0 0 ${s}px`;let g=SP(r,"--split-default",30),o=Ma(r,"--split-min-a",220),a=Ma(r,"--split-min-b",220);{let C=e.getBoundingClientRect(),I=Pa(g/100*C.width,a,C.width-s-o);Ba(n,"x",I)}let A=!1;r.addEventListener("pointerdown",C=>{A=!0,r.setPointerCapture(C.pointerId),document.body.style.cursor="col-resize",C.preventDefault()}),r.addEventListener("pointermove",C=>{if(!A)return;let I=e.getBoundingClientRect(),l=I.right-C.clientX,h=I.width-s-o,d=Pa(l,a,h);Ba(n,"x",d)}),r.addEventListener("pointerup",C=>{A=!1,document.body.style.cursor="",r.releasePointerCapture(C.pointerId)}),r.addEventListener("pointercancel",()=>{A=!1,document.body.style.cursor=""})}}DZ(); +/** + * vis-network + * https://visjs.github.io/vis-network/ + * + * A dynamic, browser-based visualization library. + * + * @version 10.0.2 + * @date 2025-09-15T17:48:13.838Z + * + * @copyright (c) 2011-2017 Almende B.V, http://almende.com + * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs + * + * @license + * vis.js is dual licensed under both + * + * 1. The Apache 2.0 License + * http://www.apache.org/licenses/LICENSE-2.0 + * + * and + * + * 2. The MIT License + * http://opensource.org/licenses/MIT + * + * vis.js may be distributed under either license. + */ +/*! Hammer.JS - v2.0.17-rc - 2019-12-16 + * http://naver.github.io/egjs + * + * Forked By Naver egjs + * Copyright (c) hammerjs + * Licensed under the MIT license */ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..142f459 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,58 @@ + + + + + + + Automata + + + + + +
    +

    + Loading… +

    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/docs/style.css b/docs/style.css new file mode 100644 index 0000000..a05feee --- /dev/null +++ b/docs/style.css @@ -0,0 +1 @@ +.tipTitle.error{color:#d73a49}.tipTitle.warning{color:#ffd33d}.tipTitle.info{color:#79c0ff}.cm-tooltip.cm-tooltip-hover{border:1px solid #ddd;background:#000;box-shadow:0 8px 30px rgba(0,0,0,.12);border-radius:10px;padding:8px 10px;max-width:420px;font-size:13px;line-height:1.35}.tipTitle{font-weight:700;margin-bottom:4px}.tipBody{white-space:pre-wrap}.editor{height:100%;width:100%}.cm-editor{height:100%}.cm-scroller{overflow-y:auto !important}.diag{margin:0;padding-left:18px}.diag li{margin:6px 0}.tok-comment{color:#1a7b24}.tok-keyword{color:#b99400;font-weight:600}.tok-error{color:#ff0505;font-weight:1000}.tok-ident{color:#90d4e0}.tok-brace{color:#d73a49;font-weight:600}.tok-punc{color:#fff}.tok-string{color:#03621e}.rb-0{color:#a35;font-weight:700}.rb-1{color:#ed0;font-weight:700}.rb-2{color:#9d5;font-weight:700}.rb-3{color:#2cb;font-weight:700}.rb-4{color:#36b;font-weight:700}.rb-5{color:#639;font-weight:700}.diag li.error{color:#d73a49}.diag li.warning{color:#b08800}.diag li.info{color:#0366d6}.cm-diag-error{text-decoration:underline wavy #d73a49;text-underline-offset:2px}.cm-diag-warning{text-decoration:underline wavy #ffd33d;text-underline-offset:2px}.cm-diag-info{text-decoration:underline wavy #79c0ff;text-underline-offset:2px}.terminal{background:#0b0f14;color:#c9d1d9;padding:1em;margin:0px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:12.5px;line-height:1.35;white-space:pre-wrap;word-break:break-word;height:100%;width:100%;overflow-y:auto;overflow-x:auto}.ansi-bold{font-weight:700}.ansi-dim{opacity:.7}.ansi-fg-30{color:#0b0f14}.ansi-fg-31{color:#ff7b72}.ansi-fg-32{color:#7ee787}.ansi-fg-33{color:#f2cc60}.ansi-fg-34{color:#79c0ff}.ansi-fg-35{color:#d2a8ff}.ansi-fg-36{color:#a5d6ff}.ansi-fg-37{color:#c9d1d9}.ansi-fg-90{color:#6e7681}.ansi-fg-91{color:#ffa198}.ansi-fg-92{color:#a6f3a6}.ansi-fg-93{color:#ffe082}.ansi-fg-94{color:#a5d6ff}.ansi-fg-95{color:#e3b8ff}.ansi-fg-96{color:#c7f0ff}.ansi-fg-97{color:#fff}.ansi-bg-40{background:#0b0f14}.ansi-bg-41{background:rgba(255,123,114,.22)}.ansi-bg-42{background:rgba(126,231,135,.18)}.ansi-bg-43{background:rgba(242,204,96,.18)}.ansi-bg-44{background:rgba(121,192,255,.18)}.ansi-bg-45{background:rgba(210,168,255,.18)}.ansi-bg-46{background:rgba(165,214,255,.18)}.ansi-bg-47{background:rgba(201,209,217,.1)}.centered{margin-right:auto;margin-left:auto;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#f0f0f0;font-size:24px;font-family:Ubuntu-Light,Helvetica,sans-serif;text-align:center}.lds-dual-ring{display:inline-block;width:24px;height:24px}.lds-dual-ring:after{content:" ";display:block;width:24px;height:24px;margin:0px;border-radius:50%;border:3px solid #fff;border-color:#fff rgba(0,0,0,0) #fff rgba(0,0,0,0);animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}html,body{height:100%;width:100%;margin:0;font-family:system-ui,sans-serif;background:#909090}.app{height:100vh;width:100vw;overflow:hidden}.graph{width:100%;height:100%;background:#111}.vscroll{height:100%;overflow-x:scroll}.hSplit{cursor:row-resize;height:8px;background:hsla(0,0%,100%,.06)}.vSplit{cursor:col-resize;width:8px;background:hsla(0,0%,100%,.06)}.hSplit:hover,.vSplit:hover{background:rgba(121,192,255,.25)} \ No newline at end of file