From dcf1daaf18d5531c3e92eb1ff0486cc522e4ef14 Mon Sep 17 00:00:00 2001
From: Gaudenz Alder <gaudenz@jgraph.com>
Date: Tue, 5 Jun 2018 08:14:10 +0200
Subject: [PATCH] 8.7.5 release

---
 ChangeLog                                     |   5 +
 VERSION                                       |   2 +-
 etc/mxgraph/mxClient.js                       |  24 +-
 .../com/mxgraph/online/GitHubServlet.java     |   4 +-
 src/main/webapp/WEB-INF/iconfinder_key        |   1 -
 src/main/webapp/WEB-INF/lib/mxgraph-core.jar  | Bin 463558 -> 463555 bytes
 src/main/webapp/cache.manifest                |   2 +-
 src/main/webapp/js/app.min.js                 | 278 +++++++++---------
 src/main/webapp/js/atlas-viewer.min.js        | 274 ++++++++---------
 src/main/webapp/js/atlas.min.js               | 278 +++++++++---------
 src/main/webapp/js/diagramly/EditorUi.js      |  51 ++--
 .../webapp/js/diagramly/sidebar/Sidebar.js    |   2 +-
 src/main/webapp/js/embed-static.min.js        |  26 +-
 src/main/webapp/js/mxgraph/Graph.js           |   3 +
 src/main/webapp/js/reader.min.js              |  26 +-
 src/main/webapp/js/viewer.min.js              | 274 ++++++++---------
 16 files changed, 629 insertions(+), 621 deletions(-)
 delete mode 100644 src/main/webapp/WEB-INF/iconfinder_key

diff --git a/ChangeLog b/ChangeLog
index 1f577f376..da56b1dc9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+05-JUN-2018: 8.7.5
+
+- Uses mxGraph 3.9.7 beta 2
+- Uses mxgraph-core 3.9.6
+
 03-JUN-2018: 8.7.4
 
 - Fixes possible SSRF in proxy servlet
diff --git a/VERSION b/VERSION
index d2880cc25..e8c534889 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-8.7.4
\ No newline at end of file
+8.7.5
\ No newline at end of file
diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js
index 71670b379..596480d87 100644
--- a/etc/mxgraph/mxClient.js
+++ b/etc/mxgraph/mxClient.js
@@ -394,19 +394,19 @@ mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.pro
 mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
 mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
 mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
-mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);b.outline&&null!=b.style&&1!=mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||this.drawChildren(a,b,c,d,e,
-f,this.fgNode,g,!0)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l),c=c.nextSibling};
+mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,
+0))};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l,m){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l,m),c=c.nextSibling};
 mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling;else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
-m);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*m,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,b=Number(b)/100,b=Math.min(n*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
-mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
-mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,k=d.x,l=d.y,m=d.width,n=d.height,p=Math.min(m,n);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e,f),c=c.nextSibling;else if("close"==g)a.close();else if("move"==g)a.moveTo(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("line"==g)a.lineTo(k+Number(c.getAttribute("x"))*m,l+
+Number(c.getAttribute("y"))*n);else if("quad"==g)a.quadTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n);else if("curve"==g)a.curveTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n,k+Number(c.getAttribute("x3"))*m,l+Number(c.getAttribute("y3"))*n);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*m,Number(c.getAttribute("ry"))*
+n,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("rect"==g)a.rect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*
+n,b=Number(b)/100,b=Math.min(p*b,d*b),a.roundrect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,p,d,b,b);else if("ellipse"==g)a.ellipse(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),
+"1"==c.getAttribute("flipV")));else if("text"==g){if(!b.outline){p=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){f=b.rotation;var q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-f:q||b?d+f:d-f}d-=c.getAttribute("rotation");a.text(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,0,0,p,c.getAttribute("align")||"left",c.getAttribute("valign")||
+"top",!1,"",null,!1,d)}}else if("include-shape"==g)f=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=f&&(k+=Number(c.getAttribute("x"))*m,l+=Number(c.getAttribute("y"))*n,p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*n,f.drawShape(a,b,k,l,p,d));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)m="1"==c.getAttribute("fixed")?1:p,a.setStrokeWidth(Number(c.getAttribute("width"))*m);else if("dashed"==
+g)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");m=[];for(n=0;n<c.length;n++)0<c[n].length&&m.push(Number(c[n])*p);c=m.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):
+"alpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*p);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
+mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;
+mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
 mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
 mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
 mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
diff --git a/src/main/java/com/mxgraph/online/GitHubServlet.java b/src/main/java/com/mxgraph/online/GitHubServlet.java
index 22abc2e37..e73d859b6 100644
--- a/src/main/java/com/mxgraph/online/GitHubServlet.java
+++ b/src/main/java/com/mxgraph/online/GitHubServlet.java
@@ -39,12 +39,12 @@ public class GitHubServlet extends HttpServlet
 	/**
 	 * 
 	 */
-	private static String DEV_CLIENT_SECRET = "be6810bd6b8d6a47c65a8b141e0dce8aaabcd4f5";
+	private static String DEV_CLIENT_SECRET = null;
 
 	/**
 	 * 
 	 */
-	private static String CLIENT_SECRET = "6fb1cff7690db9ac066db5bbde8e3c078efdabcf";
+	private static String CLIENT_SECRET = null;
 
 	/**
 	 * @see HttpServlet#HttpServlet()
diff --git a/src/main/webapp/WEB-INF/iconfinder_key b/src/main/webapp/WEB-INF/iconfinder_key
deleted file mode 100644
index 9b7b6e4a1..000000000
--- a/src/main/webapp/WEB-INF/iconfinder_key
+++ /dev/null
@@ -1 +0,0 @@
-Replace_with_your_own_iconfinder_key
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/lib/mxgraph-core.jar b/src/main/webapp/WEB-INF/lib/mxgraph-core.jar
index 5ecad6d6ea25a12b1d9a1486c1c184b9da3285b6..8984743d13fd980eec4917a74c806df19b39e500 100644
GIT binary patch
delta 35705
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
RLLLei<yu6%`4=QC{|Ddl0nPvb

delta 35961
zcmY(r1yogE&_2v9Qo6glML<MQK)Sm@x>M=6Qqs~~>F&-;gGdV!qJ)5wN{MvChn(O0
zzW>j)SnFAP=6PoJ>^b|)aiJfJs0NCtu+<bHP)rmQbQBa-uV)F^Y;YB?XG$tOdINPR
zC@33uKSXyw%F<dA-0~_iyvh<P@-otzT0F`!+Of)5!OzJ;_pmN$PxQi#IT%KgSj?pD
z+2oMkUyuf~xca->KWv}@R5lxFX=E`^&A%LgjTx)<XVo6CVT{HRPOD`nc$koW?h8$v
zpl{UMKVR)v?SJ_UPPzZlb=0>kM1vlys-h~SdHa-|eM0M-k0Z56>A2$;o#av8VvRGg
z{Z->+*mq`L68$a(!rPEF+<;nzR1DiAJ-eof(=QGYiDZS#dBMf!Sbf?nRfLln`D+;e
zw^c*0ZMnN`{qG;>9kOt7;=S|0`mY-QT#}?gEYQr1_lij_AYK5FL8%b9rKo5)|9`Qh
zFCYQvJp~i|81R$<vjZ!4l%yW;|I4_SECfFR>?{zzR1Xkp(mVtcV6s4-0~UM8V*nIG
z!~s*lU3gvuDtgibC^|IJ*;_G*49X4o$V2)5$A=3d<MAv>0!EE^^AZY6`V9R~7#Bv5
zpu0we{y)jzr-BRPg<MyP-7&ZTEjL&*060;50kDr61OQL8HvqUmiv~a>dO!ZZt#dbe
zo%`Gsvia_ZCCLq!CMf{p9pHkCxdecH%ozZTVy$BTBlR^e3Pjuynv$Gw8IyiI$iexy
zT3|5pV&HC77nJ0T%aBx!y$G=4a3%p@i3{j7Ji`+L0ZTsk|HUvQ7`b0*U?+rtAc|hk
z8hDAQ0H8uF2D@K*M<EWZj8onKV1oJ^0Lo}fQSW`USoFd7pq5P^;~qSCm_d3E%H_WR
zI&W0V03R-mX%O~ZETxi(*{~203Q8p+Xbnu*K&Mp=$WCh85&h#PiP?X+*8n-><J^N{
zpHjd@-46!2U(pZrfZl`2V8(k=!)YoQh;#Km4KTgWnq$28dHsPI>mFo|(gHeNV_tys
z<B4oQaPA8=GeqgG66a^n3H|}(Q!EhRjWBrt+PGhm#RfTm?@<#ji0@ts@f#0xe!sMa
z4=M(Xu|yzh09BEI$kFbt!_*)}*gYa;1TA6Qqcbj08~QzJ5(J?Gj2>Z-A%JL}fSv<f
zGYOC#ur?+I`U|;d^vHq)$g%J8RDuwS#mGTWP@W@#enSZnIhG(8;<_4@7|Cr0(tzOn
zb8%*8Q;|eNL3xUc0GWYEk%g8ZGe8>M5yS~d3ps<<07UHussVzGzXq`b=+X;B2f7bT
z;{$q%bB~O}K{3#Kv=a?70Ic${pyz-!CId7Jtl4CN;sNE09MD?;h2(>t(Ej5hdOm;_
z?nQEXL85?hu@97ub-xxk0a^y*|Jy>s{x8%JFbWDGDhi4eA|W5diGY6t5hAO<fKmXK
z%r{Uekk0-*=ppJopJf>&4J6^b0@4N0&?=}FKz{2WWq|wX7l@zuo^g8x+6T_*5Dd0{
zaKC1R3m(V(hY&mz;NJU+?jrt(2HmA|3`6iQgD4R@)L?8R3ne%U&>Nrz2LpPF0$^6)
zj6Fob0zlC#B*D!0Yltrj;QQu5j4Ohd?;|uQfj93#jxu=ZKKdIKuoaN+Z&fhCeICeb
zeQ@A?lOqF7z_j-dBQn<#jCJ4Ch-z!_^uK;bhS`9F05=Rru=c$XY32;p08q0l`0Bog
zkxlO4yF&b9z&yadV4QzX>5iU}%hugf8URJa+kjaS5g$?U5sDsQOysy1cnjcl_<%J5
z9)Ul&mik_yKMf3A3P}1)a3$b3kp&(B3X_!!ZUo)8?RgG?Ow*k{QxXV4h`{>*CPzl)
zg9ia4m3?kd^PQ39|1lPVhXCU>uHxXgJEPhE8W9}>sOZR~V(?GEV`#kT>g%0{$^UvF
zD@(z@0As59>we^&k?sGCqvhaX5XQeY!{<u)`vLLX0z!wFs0HIA$1A~8|IwOsN!#ye
zJpV_VuLh3+CsSSvh5#F^tq0SC?>8u$#<uq5j$rhE1k5JzI_SQCPBOrxE_cREFk<2e
z%!y<}g5LmA6)j*IKx(uN3|u26I~{j-+g*Cdy)G~aP{(i;tDC(OF#o5Hyel6Be7}L2
z$c;}chy*PNUFs+*K2rH3_z=inTWjXU@*TnAp763C`~Z-283ZQ)lKum)B3AD_V(&fZ
zM!-0L2mdHo20*@_!FT|QodEL!sCx<=1|Zq5-~#|XodqL7=>O_zKOG%|pj`kzL~_sn
z>zaR?pjfyo(LEAh0t*1KP0adAZth}t{9m!kfBsLf&Xqg4dxF;*xE0t=tbVTe{2jpw
zF@6N*LfUPBw*eR3-~Z!`zXk3FoY`1;tmyBa)=R({V+Z{3zXbmLS7M~eU+~>)?q7PQ
z2Ve`p+J6MT1=a>nz+eE4o`P+Gr&#zFED0cgR0sv|jHls1+JKOCC8k#Yx{MQ1M*-nM
zzQcnI-3yfH6a3dHMnsVR%J7B+LJO23^d<3b>m7?1V9k?3Mu4y-6p#mi3te7&clVu(
z;JpiiZx$5|c}xWv2K+wIKwv=f!*mcv0PQhA{_7|_W=IF%H_if~1N4^19pe8rk{u#Q
z;4V=PcE~2M1FA_uJ0O>Pg9_*W<U+{}fdbtAaU#KghwvZQfEV)LA;|GVxPahZ0uVOv
zeaqj>(OgO09YP@#LC*={M!*;DGG7*i{C5TOKZfuEs={`7%(r){AApQ9o<RO<y6UG8
zLcj&xh}CEF&IR$W2;7L>#k<EJ@(gkaZ0`IyBoc@@D?s5_co#DehLDhha3edVAWgt?
z0-nHe@Ic_ILmnclWFT*WEoc4q-TQtg>v}JXbdrPY0*b~85GEk<%7uXM&Yep-;L@%H
z`LAs{R3Hk#mNC>Jod9iE1JVtkXe|gckdjha!OPco0{LKs86JcS@pBm!9WjFg!A9Qd
zK-_@aL9gN|n%|vI#eY6eSMK&#uLlVO#GV*H9Dz_}M*q`8V<r#~ur~P;Vhx}t7Lfn$
zjb~O67{HaahGYO;yY2*`0`??=Z5uduSEUhzx)+2J$?gg{1O#YbL70J8s;n2J705sG
z)`Pt9?px^Y(x&?gp+K_vLZ*P`zYd1nO>+Mpq3Te`djQG5h1|`U|JFRxAfwRxMsO!k
zYdF0Nw*o_$5kM)BcG(ajV9I!t2iXE%+)kws1dsz-1tb|j*;W73y~Z^VG=O1K59z&U
zAh=o~KmWae5V&oS5BG1duS$z4U3Vk04+!zs2||IO-A2VjptnPY?z1R((&kxlmxT%H
zy%l-Z4(SKt^mIX916c_7L!5y)r9+TN06iLogaUr;pCQ!1+V@F_Fo1}^Lfips)C|N2
zs2%D8<P%Vh=|#vBU@X8t{GZPFas+t+FepwTP+;_=$ACTrMnoL~=r&MyVw>e_yt^5W
z8z1pJ0ZNXvC5Ey92bn+xWdRi0XrMhnqyRc-FX(=7nmvKB2i*4?3JNR2?In~1u|xyK
zM$jJIJ$}9n&~ShNWrDH-h=&=<25euS6S@o}Bqk0$AiggfZtBw5(A~7jhK6{V0wqTv
z4^eTDmRis$VE-a|Q271ak8C%F7J={Q{n=!#@VvWo03&W_U}OljBUCiR8#5>>qUH#d
z6jAmPT5&%(=$b)q01-VaC_3SNH0lC6_w2jmN5F_58&Fb&sV@`_QGJYxicIu|0^bBk
zF<<C^gC?0jbPZ6rg+opM8+U@Cv-cA|^66XX?0*w@43rW;f(cM+;E=RapkD#RoeuqP
zI8Mlee!u4;T#D|L|IJ4_#ZWmQL|z&6Zru9U*)<hVKf!y%y$me`gr_&4xj;F+enWcz
z#*-bW4uF#Opn?GUbO2ohP{j%KzZuE<9D4WN^G}%?9X3sJkB(?yL4ck&9gG8rQN#@6
zhTV@E5n3c~YwyZ5eg8!TeA4p4pora@yHcm!+|2=moUk^4KfwhX2S)16xqMjg-FLkN
z1_}!Mzs?{^`bUz#MI}Nm@WTF^?HwM$@Bt=V5XO9u5G6veiTkvCg<%Om`Z%Jn5+Lao
zc~~|;&{u>70BBALrUg`&PaTGRUpB;ZP1yRq2%8ox4{#gRhLHe+@wzeW_q}n#1ZD=@
zQk_gPBbj$?)QQ+LhEX95%wVne9wg>4E#R!3EMc7YpP|SMCs+wEdP=*%YJrA4dkuR4
zAT(bX4=@%#4unYq=uI$820+7aVQ&CGr5M-^=KZlNBVb&Bp8tE8Dq#Jb1-l#B{xyYq
z4y+D9usqn^qxf%)rvUa2SnDo?#e?oIq#w$JAGGg|Ngj;A%Y)G({flANfX{jftOY>1
zWw2NG3J8))*y8>3lOTtF)Mbx?GS*xL!(vpfsEg!ygkwW8ebs{Tit@8whxyV0v-Vav
z)-RRX5MvcSnP#0@%0jVcvjugNTI*Wc>(kk#jrl8@(wR!80^=Sg=w^EDor3eRlXDX3
zqX^Xr7$saR)P#7UyslR%nm{GKVCQV%RlqaYme(5zN$;L`f#$N0trG8-Imrf81MD1k
z@VZ~TK-IoTOZs%lkoPXxC7SFxW>JRlNndkW(iM|E<PYkaH3usk_x-PsV&4E&G_31)
zqDEM{x#g$toliTH_8Y|oBTZANR=QrxkP2k|F5`X#cXHf(*S7dPm{a;HJk1@^6My<a
z5$zV6=lq@AMQzd-ui!oG%z~S?j23H!w~1|+T(sBB4n}Lg%x;;S)?9x79{$^md;VQO
zR>X#GHTUCcGrnE-lNERRY%E8|$W`<xws~gpg-++^`3*4PGDi;{ZXOKZnWEjL_kW#7
zl6E%qPT?DR3u21plo!9+-d@K~$LoIaPQ3X2GU;fHg6OGK;I|e><|yID9`|p;t6IHW
zhHTklWNwjEq(drO(Uf703OBwQ3hru8_v72g9o>!@m!c@^193m0-fGu>`20;1hgqI}
z2vI02f;7sgJMyP;JD`a33oiXL88n%A>R(wO=3WXPh_d>WzJG>jQ919uhKsWHvzE+q
z{JF6XVcvTm6|37=G<X}9=bQa~G9~llS{8|q(T-n2xyn*Af%l>Bb<M;y_6fn)%b>dD
z4rg-LM1<$MnDo|K5jW%crHQn>k~~S+r^TF`ProJR8N^5S-iA3)rV7{S&rEj|cctpg
z_4p^i8>*|#mR1aI3E!n0MJlp*rpV6YqUO=$Kt#JajeSp3P4-uNxy3s7zf$WNcOhFN
zWSy3a^qVERXz*|`n=9igPGpn6emxg@+4R~=)@{3Jq-Gu@KeCN^fH>DBGf~YL;5iR8
zxJfTakD(9zvSO=+u7TT0u`c=mYDfI&)G^W;eq~bd%%h+BKqF_Epi@)8bAy#2S5}*-
zY-TsHZ0lFE?Nsv$5n9sQAI9ahZ-U4Pgj;-*grnaLNIlxMxs5|zK0SO%_LiAc1eX8H
z#SY&qHYozj!f>tXyuOiEHGX*O*K=L3#-O;mr>QTB;+`xlP7%hjU|q&I(jO^&^7N3N
z@`FnvuPkl@d*X3-t^%i>;!Rs>pA;DHn)B`J#Z|lw_nH|u4SpwQs{JR<V<>EmfG3;D
zXm^mN>zNB`=gfnxR+TNqsM-qbKI~oQ9J%WYQ<c%j^|4Yk{YCrY=WN}sDZZdF7HzgY
z!7xplxpKcInvB0X=RGFI@XV5@lOt0+u&?kq_Y|tFr@Q-c11e8PV%={C^PR1v({?$H
zxg4|K`-{3DxV64X>UDsA6Cnrd@LBXHSl|zIDNxe7(SCj$?~uAS@A7U+spK-fYOb#3
zOtR$UIE436zbhdSCOVBOH|<jD5*PgIM^}FW>OM)JJ(Yhwoia-Fgbwoyqwdx`^Cunn
zbd~Y9*{3zxMD<Gc_Swk%)-q?OT@?LQyVx)9oO^M3Dgw0QPX}fjP|{OJ4NanH7sxcY
za2sMJ^?98tGqy=aD@=uJx}4n@H)DxHEEc!g!p0QYoXmFfeK@x>tjY@^ZNH-?%xqtn
zWme>srXFY-8fX|Iz2yZ0qYU18o_E0D9<kBkC2vW5J<80tw;V{-jbWRSoR(NVn`L94
zQvDiTzijY2IGcQ<^O1g<mq@xs`oQUD74^lh<GuodeN@v<3VDon&Z&g!GO>bcpG9&S
zb$iMT-AV}~QsE`dgm0E~Rr>=>^@y43QioEfYGaA3jHuK^@r_c3x0WGu+*a!GaL;P$
z#`!wVfqKI~GRAMkJR(TTrIO?v(fc+J$jcH0mwb)%kolex4QJn}J6PWuRKziAGYIH%
zIb^dQ*4i1<*MCo@Gj>Z>=P~k5wh@(0s`Dw+Qp2vgdi*S7pMR~@Kr(u3JC#>HTB7P?
zK&P?Mqw)FP?<)SDmRZV*Q$g=wcR0o8k|I4X(%$+MPLk<r!!Ac@cenT!L!<ANQ=xBF
zuBovM<B9WXD}MK7pFnSas8QKB5BF`yG&M%rOtL46aqfm?v1XMiDyDLqd_&*d5$t}{
zX5pQ0?xX=KjqP2RQr3El&BuitW%c3D`cC8&{>u=X;wE!v{_}C26FWv;@jJNCQ@OpK
zANc6PgKZfWhy9C~KRu5<kN(7ClA3gLU4f+(<`N*pwexc^yp(HRb{d`|A7?AC;2o6v
z-8y+jGqUYVPYP2js5WE>!-LeKChV!jRyuh570BM!eA>(JszH8qTqJW^WC}bEP%GJR
zmD{vfyWC4qy?T))t6K-xXf}fD-AE=!k#~yzoD?+h^^0s6t$LW^ITX9XYs7Wk@~lDR
zEVH_w*UXGy8dpC#nfq~i&db8_*A=G2i7N$e`qv%jO~>xh1v0B?!tB=BQ_M|R+v&f?
zNUO<<j9%UhCI5YkLxwP?wMIiuo{>gEW4R9l1RwPUJlFTG{bgQ%{MM=hZu!03@6dsg
zwAjPN%qhUhH=J~u*P&9GvoS`gOZxbejvvOMju3BB!3m>j)|p!bzwENkIgUhGzSVKL
ztmQRpj`sOYbKUrb9_NEi)t>4Q^i<WgPU@r9_pQWeng_qwI)r&W7mhPuojM`bc!(b`
z!^bqP<HI|CJhG0j2C1V*!RurhTXTJ~*Lohok6UREd3&kC2+>}d!!vW}_HBPfJS)g+
z3>;CHo;Ry|SiEpZf68X3Fwp#JV)ggjA1vKde>+Qi0r{P|t)7C00?~D}h0ccZxs^mc
z-leEA#>Rt(-AgzRp&#(`w}R_O)B82tki^yfTuYs$rXgk2Te-t~vha2P-^M=$9ObEp
zeh;LM+4G9Uz3?8q;I4&S-9&|ULu8+BEqs%%Bz0J<*U#i2A|%!v-(RF+)9!v<=J3@H
z?tk-cBh_=R%-u9L%K(O&d&M6Xxal6JU6X00zlDadQoMl=(RBufm78piB+-}6VtztB
zffgHDQzSIA&M(eQQNXps9W6gRU=!x+M;_E3rBy_|+b<hJzQ>a}bBOratA&Ff>79|D
zP<RugKDhBmrJqK-OO_*q^T$eIhup12v?crN*G>_`(yZGg0)-DtaGVRyZ`TJB#C;~K
z^u%;Dx$T6f#PPcideX8M1}`mXJV4&8XXe;SG^s>ZtH%TZm=<tH9Lg|GTB4}mUyfGa
z7t^XPzY)(O_db7N2H7*{JAHA@v|shjq0g&1u>S1xq$>Uo&EwV;QPqH7+gN>Gc_y4)
z(WQa@q!m}pTZScFC1raW$5pyNP>-Foepqd_8wIH9{vh7^Uf4CZ)vghsTefF^{b1j?
zpvyt~c3kV+rfhExzUBAsqFVFEtFK7ufSC%Hii_ql7p(x{QkV8Fb$`(#mHoxasrG5%
z;;zLlzpjguQWv8Dzpq}=Tc<k2KZ;#!T8cWQy5DT<YnszMQ{K#(<Rv&Kt=MBev(E~B
zRTfD8VO-rF^d(KkwB6{-3EwVgADJKI>VqlyoKCBd(TE>K0$w2}b=L7BR|7SVZ+GE9
zj7zO6XVZc0<<rs8gN2EYqZ}o<*gc=H^#7WX$jq|O&|2%GTS3-P*1&6^H3$(35ts<%
z1C?aN=a69o^I=X-uFrq0gys@W@}pRQ20&I%d!TP3QIb$tAXJcK3(yE&R<N4Sc}V4o
znNDOV2a}RC+?GOekpA`4p4TsI=w3_uWZ#^I&nYpD<_G1pSmTOrn&~KipqO}h@^Qx!
zb6nyqIee~+C_DOZNBG>;!2#6pFQ1{FiQAhw;sCD3oUa=D(iqJx9f^q?ml3uY%}gJ*
z-uM~>a|b-1xW<Ayq)pb0nYC4!+HIRQ9#_1V`4DJb!~%y|x|R)1qHP#SQyns2+Y5e@
zj#3T2)EB#$b?ts{1Hs)RQlPH`shtIWlQTBnFgGeN6|GHNFI_vjByKP&flKGD;e*vi
z55i|Lg)b{;ggxa<%wvbdpL0pjUI@c!9WeP`P>k3G$4~pe3HvKwn<6)E%02mcBFK89
zrtF1%a21?+B`dAaC?1B1+mO&4D8{_-)8lEA?wE6p^R!plj;vOVbIPvF-#j=g>#RP9
zcR6O%A3@yTCa-Sh2yUr(-ODNU5$Ug-t^1@L<j3@LV&0!urPSv&*?r_Xe%tyz<HNLB
zbL+>ebmSCkg_*g(lR1-9eh?dlttNKvkn+VCQ*bT(WRO5rFZtw8U~`anerKLJEhA%T
zojvXL#4OJV5$y99y;ywy?3Wpyb@?L^`;WgTzs$Ov-9Ry19Q-4pg2?!i@{(Wp7scA^
zc9BI4&#sIHY!NYM71iMW#mt6;FWVbOEVCrSHX!%rHW5QY$BYaCn8<gpy8WS96APJ9
z==Zv4_&QeKE{122<W3D(QTvZY&eW{Q$>yb)eVq9RMy|ncE_KI-xDD?4zR+80^CXCZ
z0X&4y<%<jAg#}u~XQ6-^#-*!K_9A5M)AFMR3eL`uIT_ljQhk|(x{MTUOoM!>sB}g=
z26yofJPTiM-||PtA0H@4s?<i?D-FX)HH#2CaDv`djp>K29U2I9oxUe;IB@FK`pWs`
zH(rcJq`X9=Aaq$~e-Z2)M5Iwods`Et*}ZCF<jN@gR28l_Y$i1SZSV2u0KwBfF2QEe
zvX5S^7c!z*-n`LWNoCiZTbwwy7Hogdp_h`z(!s|1Bn7jiHMTWEY@R8k4N<W>l-&c8
z{cxR=Sm8R4x&8r@lOp?UW5?xa53N`@hNlO=i*hY5E1@SzINLJC+(45c4j8WwUzQHJ
zs`z-<Z`K3jBt;yPa!z=G%b;zU#51y-IQCa5=48mB)`iel{FJ6$_+k#4hThPQO+y+x
z(;;=6%BR0lp4Q)nPUld2f4`ccY>y*h`v(7R6;g?eE!*DhH6Gov;QTtpNyw>Mf2xaH
zk1zS0VX75j+#R<__pR5miA2G8sfM4}grMxU!X2B*$BL;zg9L?t_*fGhK6|G1=e9Ty
zNg>(3a?@%MtDZ2tOuQb|PirHbn#?lGvtl6iuoCoE5c=`t`1Xl8QwFd306qyzTO@oV
zE@fd;=!RReO}1ON-sY!>efn?G$CR;Hm`-d({rU1ve$uh(_0in96Mqh(2Is;sPMV<Y
zk@>=V=6Y9SzQK#ZE-Id$lJ*b-edJM{QR@X><omdU?AwcUv^n9E+V2EAC*r%N#OB~Y
z9s1v<Z5fMf8z?{DiO%78(R8)NEt11uwhwQ}vn&wP<*%hiznA!W`jyQ24|UpaFSgg|
zww14>lG~(`!DCv2UZwWWb<(EFG;Dt-NlT%<$Qol%E$MJMN$6xTe-SJ0<R6ANtI1K=
zLc%C1Znng2@3t`YW6R>U8t)<1S}2rs$V`1s3@mK8vejn0@jNVkn^jA$OuTjrp1}T_
zy~@a#zEIpCXq0rlUhOlbzJ1Q;D!laEddV$NP?l-6`7ndT<XFbVtQ)bp^2;7~`IfT?
z>>e~5R6T6Np;UYbk3~sz&DwOs-0VlL9J1G->+jCnry{L)S7q~!lg*VJYt0(oYS72Z
z&~M}P8_+d{Cw=vujR`~?$L_2Va5X-128k=`>%gK>-KmEHzp*|v27jCD1j$^sP9=UH
z3M7#)x||JoQh;Mx>=1BW6C}=*++Ec5!z7DHg`VVbZ~dcPylAx%$VG@fvsWn#Nf`_D
z)JooPSu~*cCU4>zo8vMFWw;Dtxy;xZrS&-k<7DyeNXTelyx6o_n$ft=D4eWy=v%iR
zG~~Lv>X~Il(-mJVU*4Yj*pKJ28ArSHgimz#>HNHT6(2oM*~K5D3oBeUp>`jud|_a$
zebWW?vn0(hOi}c{%(HPZv$~u+l}iomR`@+EOSn^aHHe`_Og_+xaRP-A?x4l8f7NDc
zH$a&bkbk{Tzsn~o?Uxg#WdlDY7!kk5&vDWTzMc^5y1ROad&5HCOg<uzcpRBYD>xza
zQd|xhcdcjf$Rj0giRBC~ZMFHD;TLEtQrIK(wVFi$m+A-_el%H}b}+GQ?dAi@5zSen
z{S>irGwZ*6WuEC;^9&0J>ERz=x@(?jDwq=pWayfxoBQX8waV1kE7Zbset%gEd{+K!
zV;8e<atI?u<|K(}U=?#!gZZznZdrmEN2-pPZ}iK|4UPcc;A<lACJL6UEova@H~g|^
z;nt6P24qH~5<7QD+sVdnna8YdYV0cyq9U|YUaD4AD>QxNqL}hFgo77ey(h-clqEa_
zxz!fmKEGY=;nCGV<hZxPuOQd5m<2{|o(VHnYE9+&?!1>C3L%Z(F*N=TUVz}{R|8e&
zgBKDm(Uwu^Aw9XEt8dai8n=;>>^f{XdC7mQy1z`-2A0=4({ZW%P{v!6I8smiI~pO8
zY%EV*L(DK9zeXJTK<YWZk30%xVplH<SEL@X-`tmm9ftO`24*A&oH5yeq~IMHF|)Sc
zoIn|c7g58<aD8%h-#WdL0`$bPGx0AUL-z%)f0ZXOMqc+EFQd&h5KqN;p5k?rJ=i>D
zm+PK}7sXSc!(ODxM0Y0Qg)L90m5shtPZ_a2gG5$83+^5*zr4IKolG?Ld>{DUDk1E-
zM(Ro3h2}*~3e~W7JDee;ocOg4)|oJP8;ObK$9gnXdB)>+5=7Ma1AqQYNaf+P*29xV
z<Y$5Rd#y|Z0t8aLMLyUXW2Z%O!9Btpw1R)o{j0Wen-v^!<;ZN0*HffXl~)hVJ(~!_
z9CL~2BfT6332+zW*W5V{Oyz1xz3QlxZWaCJKE(zYlrr2BC&0<@BT;Hd>bv_4q=o$2
z8E#z|+S$^o>a)v-ZvE=pW-M23qORaf6@J)1kCV5YD~8}wmZpeN9eq+lm+M!&ehu>q
zyY^;vMNcl7Bb&eNPOzn{dTw&3nXaBFr1+0<ihOqRD;#k%BxU9mXzYsX+K$vm3N)fM
zL~+S2%tQ{Q(!uMg>u_srm=d_9Ej{VXS!cUxY+Pn$%dW?xX8V~&mNqR&+d^p~nO<T&
zK}L@r|0%`nP)bw(g(Itd<V>5fo;X|a+d~`QN@hV~!#8cnRg|*sv<{xsMdy4m&eJjz
zsw9gOd3<YPoj}4)q~mbo*E}==@3xCopKBZ#z0I|Y)rL<thEp?W3Mo(iEzDn*oV4BV
z5e&+RbaTO3h^jI0j&*z_ziu@3uEFto?(ci`FbkOk$8WC&WyD`Ll8rG|s+BAxu?y>I
zWSVNcp!_8@i>qw)b{03m{kqfDicRbo?K;k$e>blPT;_@~c_X<s9*#Ea>B5s_jizN6
zL3FdcSSbfD1Z&$*h}Z2Ks^<;ciVVjwRxq=RKV)XVh$Ipx8nQcL(2h%x&z+oF8uIOQ
zi?c3vMSYq~`p1TNWRnFAM1RhD-3nr`XiSa&&cTA0t&5H*RnL|JgG5JY$^8VY=tVw{
zOk!};T^QwVk{{~kl0OP6kbjTMAFL4b5~^SINplA-F19TuWa@D?et}i~th?mqC7~~;
z`t^nuR#EV`Pj*u+nO&*^!<cW4pGw*#Ol=ljKKg_*Hs~w=kZx47K-n6rfF*Chq9mrI
zmr^xy&-<W{M`^$Cd=~QJE0-tvcX{K*;c8-2mu}zp>$X$6uOebuoTE9HeAVIdu@6mK
zMXTJ?;lzJFk3`e#C2amuxY!9LQDW%Wk@qbdl%GPV6X!7vaE|ELN3K1U_jP*m+B;RW
z!Lm1jyfDlzTtU<n-*antiGPH^fF#m)YA+qtBT&!1h3*miK}cgQOwdExpL3X@@7p-7
z)@XN5XQy>sY86v3QuMu*rY5oUi3zvtm!nXb47d~||6s)FjjmHcR&FXQMXixPy9`G<
zL#koS$hzO~z-d#kpl_d}f^C@nlW2GD1pVAtHNvR0BC)_P6z$I`=NjMM{lWu{#)4K)
zwU{nto-*B*@&wCrM&|d-E5;q@GEPfiuU}=H^$Fg`g|6~jY2~q!<ho8&=j15aQ`>%Q
z;t@EFv3lOnj9z4Xt^NaBBfeA1AQWP(nDTZ#&!PwnuF}MtXVw=o?rAsp84Ui6GY*8}
zxz>VLYjImc5KHopLS5M>+y*ZU>~yCb?Fu|674r9N)Ag6@TOXP;HzuBh>Ts;;(u==c
zv5+?6#6PdXaLSB{!#^jYtr=03XBTBIqGG>$|7U27wC?YhE%ne9IBlf8_(I6Oym#SH
zeo6d@icG-b)Pc~}la=G!)QN2p1xKVQi!Ol_mFA}V&9kGKYm%9|VSho1c}W6(%SHRq
z!&lUnSar|0I>{ZT7xmND#xTzgNK%bc_}Ss*1W6jI2U|3whsJ4=4ow6GeoYVUq{oTj
zI<J+}xde&|q#t%O>&PZB&t}V{8<OWWiAuK(g+klgsSb6sCpd`qbkoc7N5lJfnWDeP
zwfYmi+@8hS@yH+F-pN_vw7L8Bqrkoa^sY8(N>zd#yikLn6MBbyIi<)3;VX8Nb&V@*
z7kMMaqk+U(wY<vD7llW1wwjd5dl>_Pa7_K`qNSFvKZ~&iTN(q(^t#V?9yLc981;X~
zGgaM${;)VMzr8)$yLEHEz1=*1*8i6!TU0#qZ}Iq23|}!T|B{B17j**Niyuj7i9PFr
zvE{0Dt#hIe%g5qH%XAq?>c$S&_5AS3Vj8=C+TM^$THyIg5|hDZ5D(rBY|_e)h{5ME
z1gSo0zE85=<Pp;3nL)f9H=d(d#zSG&?U76-uc2S%NZ^;T?ocGR)%w|-&P-X8oAOkX
z<sH7a^9q;O<eP#pmI%H4ET?+MVdAR%6Q_DDjFC*X)GxAoCCZL`B6Sjib@Pv_5`XKJ
zDfjCt?<kQliSktj^nGSfRDJ*2i;DpM3!_oCyC5g4pyNmP%%gOh6|))ceco;nmT#iN
zSs&n=E}W--zB83Z{T4NKsC<m~zQMGDq&^=tx()nEGeh}P(hl~nW$Z3aOtLJCX{nA4
z>&ytVp2Yd9*D~O@q;5(Vl+5i#oW<o4s=9&Io9huRky<N6ZU=1UZ4u0kns%R*;ciuB
zs_l!M)nm;11Tj!tTT_xQA%%~q#+f7|BFh>-=>(}Ts3+zbmm%{Pa*y-I6l*IgsEOzG
zv$B?0oe~XAJWE)F6S4Lp@rM^n#s-~>o=4Ogv5&joy>Z{I(J=8~P5SDoC6Qu86+}Iy
z(tgiBdh>NRVppp!>v1z(FR#&VGn^4kf%(u<)W>djZP@c*LS;!pNR%Kdl)#{B^6j?+
zZHIHas&$*j;({hQzC7-H@HyISS%SZhr5YZ)n%}KLXy3+dUwSY4H7@a!$EgVkS^aa5
z6F0Zv<#8!85q}$VU)+d3JV+mcpFUK{G@cl2Q3<Z(?;n08@M+UVkxX}#oeX|Tz4-0N
zS63O$8C4eeNzc;{E2<N>9@IL|D22EAROG5@y&gJwt;x$j%fJcmQ&%8hJ#C19f7ufd
zaE*A8UVLkK8~3aElQ|BdbNfiSdBH5lMn63PB6>09z~#Cd(}U~NfC%-N7N&h4y)Umk
zLw8Ah37$L7mZ~hzh=Q$$;M_Vq!BOLNNo)TStqi4yyd^TWpUL;trYNOQXmp3Hp+OS$
zu#D6(AAdQ+9DaCAbb6*74!II`0u>oKn1*oJjr02XvqFy8p;emtsxmaS*%vVbO!MKG
zRWTDk6*=7|>ADdKd=az6<<suSX|tN?$PtJxy>GEnPDI$Bgf-H|hB6CyiPTAT?(={?
zPfig@p}g&#h8MWh_D{@pKFqqf-;GHp6znENOl6nY#dtD5|DZLpb||E$8bs!?XYQAm
zF^oS)gecpNWn0XkpJ5o5yA*}L{N0t!<)lsUQEoFO&sRIlM3B`@DeRCjpPuU{Wg#+}
zE4Dm@i`UL6K5z1UeO!Vue87asRG+5el~kHxpMb5RI=d&4gRQLk*G85Zj)`wmg99>*
z2vS>{DONdALRzVQg)ITatp@o<)0W^iZ`ft<nL;a`wG7{$ShKu6`;~hM#iXrZJ{1xv
zP1083pMGYhT2ytT7%`zUm{^@|<U_~Twe>uAn$jVmNM(>i9{-3RF2%U|=3}_xg?DxY
z7AQSS*}R^ma2%5~EU!XHhbXLs)-s`-qJ$$a%c>C{H1p`2rF7=k0D~%`1v9J3Cxv0N
z;(eTZmbh9nnWA%Iy>>g#Pc5bECyY{UKgWdH*C!R_eYC}<d6^SsnbZ+R)!Ekhgft;5
zV#l%ObKDx6=3BhzSMcaV!uh%6!mNgju>+1?{0$z@2V<9Qi-i*I_3FQiI(N7uY{>nT
z`<6VSU$_^xN_KWe$Cj24D^Oc`GAaHpR(Q!!z~*25nnMliS1)l;Oz5}z=rC>9fP}1=
z#@>^0{DcTIypPQvhBPsX--UkaEo608>mVKT5Et328pbBJrTh&iEOrX*epbLY939r1
zqfX=s?(cipAEbW9q0<q!u9~e#vC8*ol90&vl#wmNE03Lp#_VgM7hBe7rPt-0jq8nf
z(NXD~jGCo!jh*Cr2j}tlvGbaKX>K6FwZ0Syy}Z!auvnja*e{-~t;!>UYP50m^Ni!&
zYHxIG^8+U(2DT)4+^*K=I%Q(lcOUFkZK;o$A4h0i*1Sv3Qj&HT^;|+3pDLCRQ-lNr
zB+YK_>}cu7rySEf&~F*}E7fWri8e&XTvZ&<yz=J6Zr<1ad-AaUFM~{(5t@%&59>k)
zcV?c*BOC{^8SI(}2-ExWjRl))6&Zzg4NXJGcy^@CJg=4B!;L-DQ-%r5rN39F$)hs2
zixDuG57_r!a6M$ft;HyPLeLcri`7@jsbA{VkO{rJ)_S5yI7Rf<cFddKWsprJW~2~f
zNQm<07P0P%M1<6necm6+40#-nZ#G6OQoYZ1Q9vwm+2|a?tjQqJ+F}-S9G9TDRQMq?
zPPs`QYmZsb2QDV%B>XColU24dGt!`fq#!NA?$>Gsi?i4(aq~g+q%Fown@)&mMb1}#
z*@K$;p{0Zk#G}z_)<Eu|Vbd4h6-MH!{e&5aQ~eL9D{pasdOxg>aa3hID9rx+S;f{3
zQP2=Wwf9tMD~`{#m?*<euGPNgNeCIIlAVh-wWWNVp(K3!Yl(1i3#_$0Cn$|Z$&LJD
zZ!nUlrsE+)Ji~%E(%y70`_kH4HaO+t^)hW`?i;*BdyVFn^p<B|k*s0M-wOE_P|YGT
zw0RYMTBr~3bSwO?1M}8iyrroKev&;L_{k(Uue-;Dz;uQ-pY*69rwpUjWQ4}dzl4gK
z%qPTq(W?bc^!c#kkNlzaBO`rMZ!(##-m|yvX-B?j9z`uM$y8IHw_Z1zQIa_)3pqLT
z1Q<2`6e)7x{V9ppA9_Nr2|Q693QoSyqV6ltGk-Xpbr)O#k2`fsiHL1;;MDfJh7>LG
zl)Ac*Y9*`i&Xojsk|D8Z@KiF(9@L=P&knC}UdE5XV?I{$tvd&)|CaS$$;UFTC!vsr
zV3<m3zEUT!=zAk|G|8;3HQX<soPfDb;vqAs2^)XH5?;KVNTgVA|5_ejdArEonnzQB
zkx3y%4K3#tt_q(3;>+lR?P-bH-*Sl$w!^&b2u;VEQm$znG>F)R7{tB63U-eXZN=tw
z{0iKs@Z6*D`X7@E*Ql>fqe1o|S-O@x1kF(*olJSgb<u(;Y+3u~hI8h+@23_5C3NRQ
zC#tpBMi?Yr#oXNLqH*F%wQ1@U6bR=@>4Pu3%h^1&Ir=%CMx_*LIP#gO9KKc%%CDO^
z3mnCXs_|<d5Fd?dOlXLb&sR9c9ElZDAX-l?h5JzmL~spq)(PvH2&Ahqd+1pBNE62%
zDq3QjaPyTHM#-DF<X?}zE^nG9TNPRV80=MDWZ<Pk^HO&*>gGU#<m0fC<oDL-u^?(U
z?Eb=n!1CAA8J63Wt_>feaSF64c{LS6bBqgPKFY^w>sx5`uF9rfE2g-vVlX8y78qwt
zRKvF|@E=9)gzA(B*DyEM4XfCgg$XXlui{ZEa-wxl?CmOg)CF=RhEt{xXS=i!WL+yf
z+@jWfvpnFFVx;;ShTSHHb_MdRCLpx&cHXZ+o#m3^dzs)yNvT=(Flsbl{`iR|jW^$z
zB0G*}0|Du}#s%HlsIUO83Z`2V2j$W(qaz&3lM{RUrnxqqf5}BxsbT}w3vV?R1Jf+J
z9$UAN>`fn*FbB?(6{lIp_tl>@0S^fIhE&Y4I{%>R{}gLhBY#6^jD!6mB1$CmFyJA|
zX~|sP%p(@^=7G{DxyF(ixVr*F7gt<_LP>nBMl6KZMlhwv%XT=c3_If&wdVt3G@?H6
z*;prr%>u9!L)Z>lQ^o@~4||=^XQhiqVGx?#)Nh^hGpF`HN|&WssvnR!yGv#;GrTBF
z3vhgESlHJs7s>TdGu6v@q?TxH*f&8J5w2dJVQgag$C}h{No6G>)H8!>x>!rN(sk7R
zfhJ8r6Ui$x`L1c6fUvLhYr__N!h21g@J*3Q&%P0h8j|q7`V97h8d6b)C!B{7Q+Tq;
zWdt0e?0NO;^7Wn>Cr;@@E)J)w71o_^t&WpOnu{j$BBcgx>IBSxhV9XOpnS0KGLuI9
zZTGnQfw(22dmPia=<)FT%C$=~4IJ1}r+h(J@#4?Vf>8a^E&5$gmwdM;%tH8Ez3_GC
z-Hsi5f%bVGR?Hu6@m8`Ad<YLv3}q#DRaQbe=Z#?oIW08xM0P)t?Y5rCo7F}3wbM>_
zdGwp?W`DEC@6=uH$ai&QTKcsd@f&$psxlmsjIbTv{twDpYTsTzWA;lx)9Uj~aMb@A
z!eA`j#mV^dDBQkxHo;$rK&AF0vKC&I;QFHSP57%5`$!5_NzsTz^M<A;Sb6;Yo(>*3
z_IOHN8S6y9w0;rWX#XPmrM=3);k3(|O3G-Nmi73<tkiJ7NZCFW`pVAEO63X_K^Jy_
zBhmZud2i{a0{2XFG!b@EEz13$7Rm2-Soy|i>lA|90$2J1Ju~K?81XhpxAFXe*DeGt
z9`WxrECkM@{-#Nc*B>Ms<VX`#_c@TU{%gxz_j{=@r+V~#K4xZ3s8KqC%V(v_rAO!#
z-^>|Du_vo%qZq5DRiP(^k~r#BjuvZE4r5nm<G~wGv;KmVxIkk?laC1sQk-R6Sv+I1
zc_MU2eHiny2cgkAzfy#EthEpH;L+x~izwlEJU$q^a&=GL+!RZPDLv~T!$}WqlU{k&
zZJzx>Bw8{!#c)3^R;zi8g}0xTZ|z3aBO?<U->H#ZOm9q+L#|*MiD#Kw8YrBxc_Q}F
z#>%=P!@k#s*`iFmVrmV8GAyi!I5F>7&7ZbYfjGbgVf5oxJL%+lStUJ=9j;xORpL~H
zF<0(1h-e-6=?$M_(<tIBib*GAJBt_e?-@w6BL1UuP&(Bvc7rt^WM1=^TjTPF(jV5Z
z?6tLZLws#*m`LJ?Iq`18j-vfW@&(&py2GtWNtgE9v8EP`<!jIp^1#mHfs9#=8KsJm
z=Lq+9j)E8IXVqGY1(;K!c5sUIx*pj|X)d1m+Gm&IhDuTu4~u;bU42-dC#mT;#xMUZ
zZ7(j5v0G}DP;>my098qV{W!LeZ(JqX>waO26QCGz%4jv$R}kiH+L&QQtlv&<_XA=;
zH<n{)WFpaU?JX%<CT<?>&_1t~F0oRmFR{S0w%+$jwN%DUpF8gw#RUE{^yH)QmI2Sm
zFrLt!v_!A0yidW1r|@Q@Q+32_g4#U!bsVZMryZ|zB&BfetR3U$#Q>4rFYuUvw%5wV
zXWUMk$fqdXR-u<}mXC)M%+{aJyhnW^Vj$FIpY3duH%aJ<TS3e7YF&0R>~`|8iKf>r
zTM@0_2hdzGVhR`I^|U{{`ydsOue@oKr4Yu-{}l1zwZ+?&DEQ>-@ZXo{+)<t8ZBp<5
z828#`XIfTT?&kV=j}9PK3zMxM<%w-xq>K2E^$s7~_%I7N9p5q`;F&%bcJA5!){MK}
zGzVrx?J0{=1ufx=tX<VjV}}R04R3@{!OLRJlCd{Xi(-oFFI(|&N0$*v()tr;IUV{)
zc8&obp_qpRX#&Yvi9CE&jzq4o;u!WI_K{r;FZ8e2-$mpW;PI96SU58FC~?0Y)d#Rf
zQBgHxMAs?}-Tebcea8qJ?_Qdwhr<45J6WHZCiy%nrKB>~4a|0=(@m)K0z+8NQm4g@
zk{H08b+&t!X8!O%IO1``MgKL^1L2Ao+o%|(^A?Ww`Jw6o!!X?nkwSeBbb=(V3k82!
z&Wz%Dwhe{}6YegHa_-EO6?5697V5;O1f3^0$qu{PWLWyNGnCgmJB5eazRMk6i>H4U
zHRWmuW0PikW_p;bT`Pp_wNCg)umv#ZRs>x!!XilFkxnM^@B<OP8_aZqh@wVGI>R3<
z;I5RlB-F|XQ;ct_wyKdx&w1Y5=YcZNCwlDO>ux)qk>a|E*^g<y8)KSEFAvX3md4hr
zF@()3pyX+k#eY)YuBqrZf#^C8=(cIo7YUZk+RDx;@A}OlB38?%m8pVQ3?!nWPue8?
zW-6do(b!BOaMMo7p5w$H$^pZ6k)-wGJa}G)ThPj>;Xf4&8d*Ep4{X0gcHps$<CO)X
zg+FWl?brC@ktLbR!P~0YC$~Br-*(MEQuDL9H2mGAbp75!Da9K6Wk4^-Ta@>Z?MBpq
z`Jv|c&~(Bur<>gM5zmI!iub<VzORao-wWrTHSDT?e!9V}s0>fO6=0>Ke;>!0LdUJo
ziKuC}aDP`j*~}mAn1H^p9zOS?K50Ah**Z1`IS1XDI94Lx#T#NSj~dq%ULKAUBk56$
zhSN17A;x#<3JZ<s+s^J^#dpbLzwx|Bn<@i^Pmg2nD6r#eEV;Qkez3RwRvN1r+gcv$
zXh5q628|iRX%1t~?Qc{VWWpm|`Arh1bf~I-pf&wC<=>Xr#l38N)^_6L@$gWU;ZP)v
z-E=8}k+7aO=f|g|&_^Fhf3<qU-?Y+bOJqFLzZlOy!kYa(T7TleTb+kde`3qajONC=
zdfixFwDA#}K*MZLGA;m_Q_RRHLU%WCo0=D`vw5|$!3Fqai8H3hqmoCIhQD?Mi|dyc
z%4-?D<T_elJaC$oCEE$7*={$aJ)7>Us10vK?B}w_4pDIJmgpc#@P)<HCzY5_>ae7h
z(Po>E(qC}c#otW~*IQb1qMeRR9g>+TOA0r<i`G#A8MIfaARR>^zpzf}Wbf!s?k;zQ
zXD`FT;d7P-EG3aS`>r-Gs7mH#xUJZhZzeWxf1rOLmNLr}A(GryL(iihbc@ih_Onc=
z)2oxmjvRTKKYZ9SQxZ@^kW?zh)xk7}vHO)ms**AB6&!TNsS_XRahiLA?Br6nu+qia
zM?R6<Nc7iDGIk`juW8cx9#Bb8R>P|K1FwuR9)3|Qhs}7*{a8%xO66>cEn4dtg`c6I
za+Ku5gxTlL_QawJX^omYOu|hXND8Z(CH!o{kpL@FLu1E}Z!>d@sXteLCQweWA|EaL
zyk$Z70?tOkGrd%WL%15@tO=Ht)X{cpdCY14=j+WEwuqpQ@wY-Jb=50$MvSwj9kK*#
z0aozfs?;j@^GE!)NzX$vh*RamH4-!P|MKW)X%9j9Z|lo2mxLZxxt?q@-x3dtvY)4~
z(6yP$FnAHH?|v1p#32nowGX%BIug;y(uDnp+F_!P9Y}qrGcVh?fAg?c)aoofnbS*A
z-}9MaS!Eh46yCwvTm_|N2r^2}vGBk9Tfj>=i|{stWaLS2`lDTl5O~iqW?Hf(rhr^A
zrY(q-JEf=)=fb$PtM9RL-a?Uz>9dsACFuREacas$eP>_OY~HjsxA|@8<4ts|b~OFL
zN8dSm{@e&mzL8ZxXE-RNE-X|xwvw?D;^sod?NL<f+2PMWWI}JaQdDpvnu}ls5AZa@
z^$LVI2|=$&HwRh4B!Q&s`)`_fUpjaTYv`w=ySk;HzobK_Cqa+=?rLe+!aAmqtKPKr
z;2A#p>XE?tn{v9JSE><7CkImETRw@`IN@eH<ohX&WtJ!S-`Ffiq&}QWCa%d|L?T8X
zsju#CZ*?kC_(gidj;QtB=+u%Gx{jhL;D4$fXm((S+UXGSbN(gbix1O$(2;)`o>3yk
zraHlO>ikF9#Aqk;?|Ze&4!y<|pJmm4zKkTfEwC$JFRtw;H$!i`gCcsKz7>wY&0F!9
ze-?ChTdeMWG0l_d66I1!M1x`O(cxUX-UE5>(}Ygm_@s`K4DLNl%hhb>6A2yC<rTQN
zt4be9JvZyRjI3KJvD==8Y~7diK-SsxYVu)4>WB)_-j(KA;(Ae$w%?y|nDRtL>=uU;
z7KbIg+;Qqz^a@+-6DgOaTMzQ<ca61FcJ-FtyxX*+{_;h1Lp-XlFJL-;!2Mi4^^@+>
z?MKl36{<H~XpMO**77y)sS!rJs!RyH<yJkW>h&}1Vfk@NSMD<@&-AP7w{F*!X)v@8
z10Fvz0|`tt<ZrTH6t1ku>~$LC&40!aSAe=3Pd1P0Wt)FSof@6{5=)%sbJ59BGb}3e
z5#sdzgIS(R-%bnhBif>al%=?dB9jBmHL;)T?Mnmp$6)__e{cMuLB%X{0_LD#xUqYM
z<Oj(Plf|qBTXHTuu3~!~pRol9C!z}xIfq4LS4rdd+7WBTUh|!ou{N<+y~U@B(u2h*
zCmrS~c0pcphn?+P3vFMGe&dxY+lIGYN5iH>Wdzq6h)3%uF;dm<<W3qQ^jGrUEu@&5
zrqXVN%PrUr*w?I<aDY{1y!cP};U=Pg<nd5Jtm^h-=3gGl&u*U;3@r(oir~{<)n~dA
zEp4aJp{~4&RE`nMCZ!8;l4)x|emjgRq;5csN<z26=|DG<Buii#(7zF;0v8x1H^jao
zQYdN5(ugMH6Vi1GR3+g0C9=qhIVj@SHBkC=$bFe4lFScWKzX58OR#<O5MIX{@Nm6U
z=1K^UoWKjOta!?o0Jo?XP5;+3aZlv;CXbMqxMOC1|3RC=m^~vG|K}KTM2mDp<EvBV
zmAY(h9(f%mjN8X375!pyt=aWy%$7FtcKBO}xJku*3lpE<2SN!Su9bNyL*EEp$Zrvf
zOGHx1M=G3C$|n*y#OhedX2PZR`2t=kc-A>+^3p3{hZEJlEIZQ5#k~Yu)DD`2_(j|S
z`aVia?@W$29FGYG99AUreVh1k=&v-i*?K=Q((9LTeVw^A3Z0n^xJJqj(WSll5x!-i
zKg^xyYW$w=V;@DdV=@VKw-G*nq)bI9m_OR_oXC}A#s(H0EKN0i2(OO{UO~7hJdhv8
z^F-C3-i$v>VG<=Muj9cA_C?IKAn@uEA7zGY2M<ow+vncWnhi4M{_q_|8}+6A#mUqK
zheNBQMH?9%lVw7)S<tKCKi!QpkQ>oo+g`1;Wvtz((Caa5@rtneoo6RGWAZ;}Dc90B
z8XWRVfCX7-^2oIH!-dFp%V*u93S>VCOyyg+t@%jDaJfOnXWZ5kExK2+4QvcT6<i)Y
z(Kre^`|z%CyWeW#@F{<C5D^;|pKgOA1(BTsLD?&{!ULu$>jFjk<8nl4MPDGxbK4X=
zvN?`6VKt8$ydrNZ{P*)}=PzH*XYG((P<gRZD(0;2S@s{LslW+x#0CCX(qCk{&Y)my
z@mWlp34IYVZ^J8GG{Lo>=1q>NrfW{0L(vx@6jv#!w|^<9e<oiPF^!&|eHfb^6gbnv
zb!H4{2>l`GYR;^oaaHYB;FZfM%=alPntMPeC7`m6C5$se8)J7mBruBJ@W>*g&KM)a
z!HzO?aPyTsQ7pU%W7;`2#FV8fe+o9=cggPK?{na}DPh;C{hPzu{xpf@nVs;b{<Dv4
zks9mMLC=q!$@BVbY!%Nku7lDA{lE?V`>tP|eRQkpM`kG>lZ!XX#(p18EE%71ds?Z=
zTJ==Kyp-071AUYoJ+ofe)jn8E2k$*6ypkRNJ!=k#?9o2_&?fTIN4pK(Fn0pvnIBJ%
zo;1xih=4*$H7!Z>BYVK7RbdhXtlBJ0A6%fvV637Y>Fn62JLUE+_|J@q^g_MJPc>hC
zS&JLdCo7U&Yvn>dr#1cgQ>Lpf#Im1W=!Q`!Td)2KFOVxgLWo=BRhZ_xvVh8m6ml6B
zvQmeyf<&Ledw=#8vS3%MlIQ5WnvoHC-;UuPe1b|co{%J!r>RjEd))Y<%L!HA1b<#8
zVVzup#G%c5kfJn0TH`9O$F6-gO^qKHmU{Pp9z5E?e)Pv2EBdjr!|<5nqp8$M$N#Ud
z>j10qegDo$?`dyM?V^&lLPnI4B87@jR7ixVlysB`4JCR+Q&AMzNokmg7D>@AeI;5%
z+wXoyhokHNKi73s_vhZv{fu{bp4x%K*-ERDZ;P}F7*<|1P|!@fTB4f6e0U*if%lDc
zrjhZJf-$D=rLi|vLl*Tz(~-?+Ys7|v)hAx?#cA&Gj&NSJ@M80(PnA!_ns59PHY_(>
zkTNIv){D7{gVCy6V@|Xr&eB@DQ1EQCMoa;}%SN-=5;ACD>H|xkB{i3yyK+b@xVRwA
z-ymS8z2?Z2*#~12xD0Z5fA7zC-F8Ax-z9e2+1MzXcF#tp$Lqbh`;NUb{;J{{7O~=X
z$k3?Rw?WGY@18r8luuZmGG5sI?)K)`{b@oA_#TSB%`&*$u!%!{)eCKYDM8HkON*Rf
z9arGGt9BlJu>q3{f__Cl^n}O!mwx6uZM^!yea*LbD!;mKPMz_KbIj4zj=pV~b?|Vh
zWx;SwefFK)JIj8)X3BLhH&k5zx<ptfU5I{)zCOY#;s}>g?<CGC^IA@-1z|rI(aj8_
zOaq_h?Fw5SByEtSwsrDk&b0zd#8xY+xMyDLO6d5tSzG?quP9&Rx8Hr%t@P?&x9+f#
zWpA;zO#I}m>*w3w9n^neKmC>dYxmWu8PeN7#_!Dc%4wWA$empHdM49u>&OM|BUr8b
zv6EBYnPv4Xi$^8rx_=c{bi3|RP>8b?t0;9VUFyy!do%cS%#W`Y;yO!{WL^{wq*z2>
z2yxE;S!nIXqi?<I_A~po&N3sFnT+Kd9GXpMIiJpnerNr{Ji+B$smkL_@vEbDa~loP
zt29+ZGvYGbU1&UWE!^6&<CuG7Hru^aihEZ!3scpuSmm-vZP5JS%pLPv?v1_AvG)+1
z$%u&%^xiWX+dSELZQ_P4-U^OQ1Dp^0zcoJJ+O&Lo{Kjoo4L7{vr7SfKU)WikH!yBp
zAoa?{S-RTD^i{RGYBhH6e#dZY2mRY&yI-%lgUg$}wff6do%L6#$2xAm%g0o|&8Mz-
zcTJ^Us==$hkF37A+3ZMp8;YG^C^=YPZM56U|17-PZ82{~hexW=B=wlXvuO=xe3`m>
zk+yu9v-BdTVQ+#0-$n)AeO}0~@6r^u0xOG?;xLkyDptch^z<SXF}<L`Da9sBot@&l
zy}!LoU3_)Kuru>kop|S0^H--&F^9|e2Ir-nDHnVlR(>(uzgm64^f3Qw;Y6>X^8Hce
zbHmH~S9`rHyOz?EZ*1CLmf_NMRNuKvTzP;0sq+ruuiuI8?+?oP9+l%4p7Swm{*w@~
zwr|g+WvW`crQCNVNz0gpOE`t|ZwPNRx>mYk?L|TNo%=(qYCP3z2luGeo(_vPV=f%J
zqVgeC#V;+YAhV@gOPRU8MSI4;uw);4H}G*sTleC&Zl&;omHKVntw9A=ufq!DB?sNt
zj_fw<d%t{S7SEX0(lO~-V<lzcgR2&m$!=2U7U5}8d}jFi&26*SsZo-4!gt;+53_js
zAn3f6lJ1SAuLTdQCn#S&s3!DXT{v_8Vdlcx$!A9Hev#Hbb|Xsdxe>?hi~Bs^wuj!0
zHG3GcvwoXPs=02Tva<5Zr^}<A+VtR0=QfYTDCbW%oy|_|_ozrq5%j1XvNS)QcU4QW
z>+pSBRi)Q%<)^xSy;$n!Aol2&WXEnrKZnVW5>5Ra4E(ZX6faI`6Hs>1Uu4KzT(0bL
zhl%-S3F}=|U~Ubz6mhXJxv{u76&qZmoSLS<+!p+U>y2onqselsqjhe<yWl@!%^6ZU
zztDfzx~$)I1Af+z#(0&NEV-1frZ%Kxv$jg@gKO}{B!zCH#aar*ob)~mt{ju2{)Jp~
z>=uo^;hKXK{^KduR&LwK-)Fb9cnjxXlCbA_ra}m3o1KuS{n3$o!k!61BjLiHa*N8q
z>XKq#={D1)#c@F+*M;?#Mb4r5&RN`UP#h8-xnHcUJ1lZPmuJM05$VNcl?pyGii|03
z-Qkf(C(lt+$TBHj#NQ{Z>{1ZqU&U2x6*)@p>*T7<TC`wW@YL0jOr6C7LTyKmj9`le
zb}%DP%P2zCh%PNw44NtuX=iIXR%w*yyyu$y*tV0GlYc!ZG5q;N%UgQU!nz~hZS{(n
zdNvJL)R=FU`^s21Oj9e6R^RhhjaicBpKyUY^!h5@(I+0w4)?@7<G7WVSjnh=StB-D
zyWCpdx@x-GkfBXgn)MF}<+fd%gLd$5P~1$W0{#nspH$*Y>zw9yy#AZ?%jQPDcXGGW
z+ud~k;)BE0%Qs{xeVe1~_Q-5Qmcq9UD%b6lzxgV+od_DaDC`-m@ae<A?8Ol~BAGs$
zbxgEuoS!piYfCFgRJJ@;qOE`Y?AVeIEsqz5zmnyha_)B@GCojz%<R)*ny;))&dpt$
zvJ{w(dU_2h3XX<)4W^Ov>7M+Hf9?n?*c$xR7OqtndyBecAK4fhSufqj42z8C=_^=T
zyejCcSfr7HOByzKP58FOqWo>aUzLirXuisez1<=Y`Hybakm;RQlE@ps{bYZ;&zYa=
z_<nnwQU2z2Z?|#DLHhHnsXbZ4g;U)98m*sp9b<Bv-sB8^`m^HuzMDqJZhL*7ZMk>H
zbd?L*mQ__^+q`qrx0ig5ZA@PKlR0+9G3zY1!0)-sU5$e+r}6l%bo{k{nxo{|1MihL
zb#i`}ITCi@=1WGY@tvA&iV@RHthWrVRp}B+s%zKCc`uZAbjA&PpO*Bx!fhXtI5hH&
z4PGY59r?|{+%P+_p)xpRbmM~So}$|PZ}S|Udwz4sbU5lOcX}X$k>(cqXwS`bO;MRF
z*Yz7W<nLZOWAeP6RTU?c=5DL1;BwnxR^04eRk1uNd7ejbm_~81u-=MDYue!a;IN&M
z<|!+AW)z>ToOX;`Pg9}bbYyekv|fX9Nrhk6vR1$7<c~aL&gB2aQ*2z}+4U|zfTO&`
zXVtkJ?iiCp^Z4%el<h0=x4Yk^QJG%n==m+>=C3oBW{L&Q$Aenkho_xSnk8VZ+!7wJ
z&S?4Qh{0Mf?y!Yg8chN%B^z(Ls?&QeGcTk#g!r`c{Pfr33u){7AahV6+iKrepQ$6(
zbvt+8jZGC9`#IIulxdS*X&)jZDUl)Tcwy8NWrR)3HV+@0SM0Lpq}O0h_{AXqTk{S~
zchwJAVDLq(+j&d*qI>dXQ<ANJCz&bF@3?xF*EVOyrVDa<F)!OfqpP<mJhacLY7Fi$
zYDw1Iy=tpSR&&?0w%t!J9?rVsQ!L0MU#=m~k4c2ce-1caFuy=Vm^piAbnCOqcl#uK
zX&+jKkGgq#-&tq7p>1C*|FNl_J#+4Qz0h)SIO}mgc12Bu?WKDA$2Zg}6)pT%cU7F&
zarbA0xx0vLX}R3@sg~CiM@`fP(ikbOkCSvAbdBg~3tfKl)_MC+RX*Z=Cn($c%%ywD
zS|3g~-|_#TVWYia;o8*FmUyOguSUO;P{B;KN>vMkSEBwpC(pLl$hvkeySDn5L4TdB
z*y{ezZmP0k(WlORn*a7lov4^jU`>R;8)N?BpGileM1CZ`F&P?J_gLZM_K?m8b=42L
zK54vvY?UO`?qY12`r$+|-*i2@n7va^)hh2Z>Uv%sNK^2soPD)x$K&vdlP=uMfhyH%
zt^Llb>G#dumqor&5lB27axgB-cf|^^%lh)xQ7r>9(I2Me1s^#5P?(u~=<Mul&Egm5
zf7mGH%}|wFy~}RHf?NI5#cIwK?ULQ6{mpe+O>&FpK}N!xGcU8YufKUJCk|;Py?XLU
z)sR<|tKZM<V3l>@-H^>o=RI~_-m=*yo_W;wlth-zf9F2mY&^NWN8QSOM9@oSNYHD+
zdfxbcUClF%tE@9ZJbo=-*kduWB3XM^XFyoyjU}SpdQ;E$1Tg!52+gVg$|y5yub3Cx
z%-`~vTlczp)!gPIOJ`NB$<l3_KFjNqkjhd&+xu1KoBWRmmME1kriInz%D%POb1Ps)
znIBWN(W<*7uDxpI4JGpujzfX7cLvK<+J%;E_x_|m<e@tvR=-&+-Q$T$z{<^h&m(qh
z*y?aSvC=wxe&ILG2agi&C1tG;=dmjEX-TqN8>Csz>ExRkKa?iDwNl+y;+CVp$&}kM
zLwynjLux%9F*@d^Z`a2SpS3^kANu`)*ehvI;W%cQ&E_+rfg#g+s|L&Y`nctIXuj5~
z-%6fT{kUkQunKK!P%g%sckMY{LYEm3eYdb((roRs*Y29?E>W#|pEy5q-Y(Q>7J2A+
zN^<Pf9onVhhcZjboX>JidXisW<W#7CZ2id_&dx2IjW>jRxX+%vtJS)z#-hu`H%#q?
z%k=7U#tmjp#64xP(ZNu~0sT+UDptp3X_oo@xR&X(Up!RhioMbOxWk$v7q&7&x1k2p
zqH~3IffAPmEiR{YYn4VFD^CvE?^>i0(m33I=E+*mgn9A@8E2oot{grW<<)oIV4=?4
zc?Qz=mzk}wKv~W{y!&OQY)w9I({?iEzpPijx@TUm>q%iAjw>tmzIinDNA}O<Z{*B#
zoUWRbV&)0^jAl7X7vGiO@G5G%u9>GHwc#Ay?b~tjv!0>@foI(9=kKt-b5ZjaW^_wj
zrPJw=+IqEfd!s$Ja$0I_9Joh!-=}Q!q`qqT)6nqa>SuoMwVY8P6Yg`gN6ky8Z^XaE
zNZ$XnapmcPWpjs^S+=(P`%`X@?h1b9-t{WUA}`cqOFKQlP)aTOOh<7>N&3^F)Gtoq
zGY5vQuGPGya#!BZRCNB?XSbIGR1fy77i{9a+h9M<+vCO4vTBZ<k=~OW)fOH$K3l|h
zF1t{oarM*Gl!^^!0))a}eAoNZn(;$aHZ0V4s>$y+nAB#qnMT_rnH(Q)#avf7J>MuV
zB3@;!%HlcCm%4hd&|OeILwRA)kg%6?>)k6n<@M*K&xSS!%=_=z$56S1Y^V7qU57;j
zoku$~s|}tBm@pa^N#AJIIk?br)43nY{=v7+G?goDc6EMQC!hZC#LQEL#RXdgTWzi}
zf}S?CBo^H$&yG>!$SqE6?qDViS(H>~RjKT$N_5EetP3mM#%<rsSQnK&q+hNP>6jtH
z7}R>PPBkDU|7+3n<)UiItLC(Y3~&tWTpW;LBG51T+ct1sripmQ%}nXYM)k;NBRXy;
zhFqffK1+rTrDx1=$erOieED*wV2Dwp;ml(Nc1;#nuKyNZ*LK3qT5jEv2Ihj9CC=B1
zjSWs3+lU!FA3LhiyULV1_tMj-D<Tn_Thx?~r<}7dIUU2%>RKV6^gcaAarXJn3ctFX
zSb?Ql$&3rLM_wjZo-J-({jR&xx-`DV-r?D9-NuySqTBE82G)n_e4aAbXu4Hvy(;=N
ziGDc6+ot3qW8Q)yTjw(-{vAC2Zp;VHaZ_AITYA)uZrko^@QcWtcENP}rh~06D$SEm
z@5w%*bZVzRy>W-kcG-$Iqb8G#@@%FChIaF1p8D#e{Qk}Z8Slc1C#_NG8dB??(I0);
zV*Vl8zP`tBU^~y~h+W8~!8z3nbYwc7EY5l|)$l2b9Ub_cZdUNxF4f8KOHGmr(}t-U
zp{qPkYF^foo3gUa_G33LC{Ar(_s$~EA*L`6d%#oaa5iV)bkXj>-PLQHdrHJRJIp)F
zTlVU8YEN0IiK)GaRUgf`_GxzF8;(yJZihBkFCNU%6;9&v)L47BN%GFtVf*>mqhkYy
z1`eq%zc@9+MJ?q`#@*u8_Y<t|$(CD1a#}IBDn+SkwVka+x~q6UGh?oBx6D@F;ND@s
zY?0l;fGZW#5?-ay7noXTS=q@RuZtK|+tT#Ps_m6)>w0zP?U%M@yz+~%`4QdOo{^v|
zv1FP~?791WeZe+vb6+~l(z%7*<A}FQT-LZtQt8-I<s*YI2bS%3?d;z9<EY{+<4lRY
zt0kEqJsz#TKc?7~cOs2Z6fg0rdZBKIPwkLI#C;!o?c}tXuV+6h_U^oVyWg|c@7Nn(
z=a0Ue8`dve+p{NXS{{GE*!Jn}uMhRoWlghvGx{AFYwS+&d|As`ljr!XclW7Pw|bn)
z1~w?%617*lbsno?Sj*SWSSsUh=@JsD)g>HY6P(C=U9<Jzk&cBujf27gC7qgejVBIk
zXC36;D;uDJD%T|o9-W)iF*p6elMniGb6210@Y<*MC23@T_l^e->OUyc(a&S{)fX<c
zCJjGYUj5kYK=s)52XV(*vzIj|$Ob7+ZKx^qE}C(lGppvO?Z;a+wiiPrH%NKO@GLd!
zE6tRBm(=9T<Woky%j%97DU7aYx+%2trBiQe=CMl&75w?)w}a*$R6Td^?H=icsm;9R
zHB!P&k+f;1)1QP1%QGA^B}~O%JiS^iJeGg>E8hSrlW<tI@auc~87F=lG}h+K9eCTE
zW;Lw&w7hA%^xS0$+8@1q2A9|ln67lt8gYtRTx;8#GLq@W+#(&M^!BmKy4X9T{avD}
zuWh83?lrLI%e}QL*VViH<X~pKN>=HCXU{j>cj!5u=8<RDu;a3ft9O>uoac?@<-Od(
z)w=nW9<M&gx;hM*E*oU{^ZI3ez4o8Wx1YD`=eYUoe*CyT+PfUHEf8y{+wsfwTdm3F
z--d^rc7@Jg9wHKA&lJhba{o2d*;3sr9H1q4>DYgJ>v>LldgsOqzQ{~Vx7k*&lqFHp
zxx#n8#YXkt%40q^^CC`#9@Z-Out0n29qoG|Utc}e^`6=2+{pF*dyVi&z>ZV$L7hkU
zZsL9)(ljLeU;*Fz(?woJ8?}QvmG_QL-Y9>x({=CRQ_r@}@iyc8JiL&#!!_3=eCwii
z32ZaDW!5qoYz4Ww=vhUKpWGfPRTaCcN^HEe+5!_NcffL6iBa4AowvfqxQGpqV(qcF
zr0gC?Y$mBMaVvI({B8L*4EB=)YnD5Xzlr7IoHWUX2d&=2DTNjaGI+A}+%PF}m!(x6
zm=%LinB;}=kb5Lu_r}Q06tfQ=#C8yFrM3EF<fdiqK^V2~A>T1fmGsXb1Y?qW)ZIUg
z&EepHeY{cM8EiH`+fLrdC>onZ?2C-{Mq|?Y0<cvRx#cyDF2+Ib0FH0H40}+qK76d-
zgeHAkq=OzsV=}}Z)2I$q&^OQ!EeSR`6FiIYkz}27Kn@3TIyMEZ#>u!!<a8Fu`LyU}
znykkEZB35NT0afNiP02hthV?gfp1pLVuD`;S%2XE=^}x1m>g-5aAY$*I*=|Qz%GyW
z;Xa<GqkV5_N+|2xxQ_)mxs)X1+i?s1YZwt6!W_7un&#i=ziDF+WE}^1F(o>jga7}D
zU4<=@C_)77&c}o&x>15KY1&()fG|a32XKVPO5;FI2vd^(*A;O#y#^>5VX9<P;cDnR
zCL@LK9Aan)VSM<W;i&99CPP0z8CfgAX3KNVkGCt)+%G6HzJoaOXUB#nqg&dX5~u*k
z_*UYiqM5J<;uTI&G=?)1l^_rcRyT5zb+afIlO)NTaI!c?)=dP9d<`epVbQ-aS+p`1
z<5R$ObcB1&Uj|{Vgs(g+JlJ_Na0`RTbS#4p>0B7MXmSB`d}5#|AG#RYdtuyS7*0OG
zg=pFIDd-W93Ega4n6v4g&mCRFCks28^CH=c<GN>F1SLZ_A{TAU!;dr*C?AasqK=#e
z`C|C0v+1eh!MRcXMNEne{Ufd;o0rfr!26dD*3Re?bR_Tr_l!T*{_K|iueII$gx(wc
z{HP*s-0P+|u;?d1Ah`m6Su9qt+>d*WZ!5{}wUr>j9Vy6<0^-N@M8tz04Iu(?7b5i#
z1?YRVYR*N_@pgh9mzV^M+|nM+O91JmB1EM{`-|}XY2a1#!mY1C)DcD~S@=2rNevVe
zCF&`9g(%66kDRD70ZLXzj4Ub6L`;>S&P)XA+$lI!D%yLB=wIUqF%MYo7a3d92dbBV
z72R<Y@G~{g4<#pJCi3|3ZP0V@`E6iGf~_>!nQ~*2FcSrwr!~#GH4J#lfk&H7QJySe
z9{DC=Duh!>N#N8uc@~vFx<MX89Z66%xF*-{{k<Zf<veU#sL7_uWEv^cl#Fpk*Q;?M
z<77;XkP*u{p)Cem9Ik<$uE8b~r}jq%g(qXugbUY_!G!@`7NkIEk*hTH3W8}$op;hC
zLpCij<}6lDwBQmpjo?3Vr^99|c-lL`(_L2V{5&Z05+*{JF1iG!C2juT(K>5+5SD_8
z67bX%fV<bQ!NO=q3YDA!=R`MUIEz9May*00#YgMdWVlgo3T3eZSE;^}gt1gio^bx>
zi^!Q<1SU;tRE90M*))BlSU0C)GK5e5@C*HnFQFj1%vTJ#-^Tce%HX|PTlEw&APYOT
zvn!d8dQ-7kgt+=;5ML624{H+9%m88JaT$h3yl4;O$fF<<$&crX{v9NMO4F%WU))!H
z{}4)w23wKNWb?2!W?V!ldM4sR=L;!?x>rEq=kqKSd0oNeh;XAao*jsWP|a5To4DZk
zadvUkbcIsXjVp30B9RM4LVvt+GfA{<0dM@lGbJ{!PQ1q1C6P}WjH7rZ@2fTBoekOP
zg!=e1wc(xXS}Do;A`O!!68UXLtmh_(b35$*%AQD-m~?Cwp>Flt&gcfv!?*Tdb<f_C
zj{bftNH~fw-O#CY2;tKJiO3KBh13DUp~g!?9(*)8w3C-M1<kxl1wQX8U@Q0tOp72Z
zf-+0K+fC=CArxK+g}rO&^Ao&N(SCl|BcITNTOY>tBn#3|yckUbbqmr&35*EVaY<=*
z8l<iQzD8^*gw0K_VM_`3ORj-}3SmNl4wB4(MB$DEG9^nNL+Y!+851^HUu2zuSrJU4
zngf>`pd>?~z7^P*Vo^Z`rcD^=&4B#elSPFYm>BHs4@r=}0hNav**pD7ZW;_HyfB<h
zWs~PnCi&+o(|Azvbx0Z>Y-A>=YSSbknVB>ZG$O>{BN8|J^~OV`;O}H;Ty|HIXVK8U
zMUa=8Su_E%gmGOu*CFmqBMNIZf~5M7+X=-np1Bm3cO8=?Y^-$1HdcjvltbgN&sZxL
z5xg2iXoRa;H$X*>DGk+|!otr3A|}X(adPG|8md@EQ%3pY<WeBhT2RLg=*qZridpct
z2b!OS%_0(QxUWgQ9iq#G=-9{IA1Epdmf^TiDG1S(Jdo2(OdCnv#HJIXDWjX0uLUt4
zsCW~$9CIVbo0t_Ldg~^L<{rRBXCv$uCPg%l((r<&2OxqUEr73o#y_cn|M`%tKDRJs
zLP7j3P{89$Qu}UU5(Jg+Hc-t&Na~i`7_t8@^24b$p(M2&s6=vkcPxI;$qxqrDNLF)
zcia;EObwhBPK)lPE1^T-G%1wukjmuhJCMnP7jZ}t3EhP?Tjm{1i7;D<Lu=w$kQrg1
zZySf6IJDjYXuWl82HF!@tg>i%5=|0)&7rJ(xC^TGTw>u<QN<-1hK%n~_=<aYdlr#+
z#bX*58Z4s8q8sD*BODKX%);jpstJES)_CjBh8ZwNV$!6)uQO5uUp{5=tD=niFumZ-
zTX-K-?W`c7z1i4QB$Ex384l@Y1GMTb3(_VG_#c<Zv4mh}z~$B=wt)4jS*$W>B%3lI
z`~bAne}L<$k2E!8nTwG<D=A+j_$P?tqk#dN8j)s#R{}ZZz<Cy%n`!(=DwUElYu=~A
z0Et5Q&SI0=(DJvGKn^Sw@EB&~fc3krf3O(@IRYnd|MZ6}jH+^AfrE<-<5>286sGeK
zu1J7vdAcTeb0#b=6d<|mouw1)dq{Pb>kmP;kxs{h6-QDWbcsI^dyi&BMnKYXVOV0H
zB$f+O0>-(REa8JgF6fb#rpTvrF*$;K6DK#0lkpQx&@>sk2=bjwjaTCEGRMLxlO}cP
z!T#TD`ME7iDFZ1{!YQINe$V0ZZ-hSl6)r>BXK5pS)Rc!wqr^N+kw`#Og&lVn49iZ?
zo!Aqw1vTbT36OaN9-_sREvrXVJbQplFIa&T3NS^~ln;Ae^H{(&%gaa9kj=IB!lWqh
z_Y!>B+cnqXFQFs(7$@Sjr1K!ne5$J$=Y!@%OLiuCA~xwWe!P*OFbTf;@E!l828OO=
z@hcFqT~wIgC<Zl!AG5$dLGD8G1=tcopIMFfrdpU+_@Qh4xje?lk}4}yQ2@D0D8NJr
zeZQ7n`o0J{i7MB>%Zv_GUV!Nm6Y1t(_P#ApQQB~eLTTJN_?a5G6Ui4+Onj?`ZA-u_
zdl+olt0oNXDa2+e;!73X_q)s^K(Y+J?CZ)4+u&}12VDU*Y@_oLb%HP5Vv3-Z_H8F1
zC1g?rt%NV=oN#i#J4H?^!W0NUhl^BV=`h5}fUoS0vl2BHVP=F2;<<Ty@eR)3f}iYH
z8JG4_3P10q3!&jB)Z+8PGVU#tKx+}C396O#NexU!$&ax`glWmZ^Y=A?Np6DaUPOCB
znf`MQ&cB*Gd??d!G>$Cc=H(8N)007=J6L5OcG7(*-Y#G0Ah?@EPI#U|PR0%qm^@nc
zlv<T<#L2f}=}0$@E{-Cf!X$)e@G4H`ha+Qv3?s>StcOkc)J}m_XXt6FtVr>e&O^G-
zFax5z9O^?9cS8nafsy^n>0}b36=Q1X`ZG*~U}c@m1IcFZwI-KHR>pH`5SM)p{lg@c
zq`FjNqJ#q00X-8GEV@FnJ^}^AaW%wAJt(Odn?m23PWh2eXCV0(R1eg80TzO;kx=P1
zfc(axlQ<NdNkVW?4+DLC56zDcr!nJ)^-S;}GNu@tM+|ohi$Of*CMh0VOht47r^ekT
zsf|D-^s&zJnV_!_3BRNiu6_xk4fk=;>FDfBO5rt}iXM>Eu9uh?q44RZS$6mdMO!B*
ze1H^7D1}ZXAX<}0il&xeVuathIQ3&bN&O8}BIm60fF>wxEF@VsyrLBBdj$&UPe`ie
z6FL`q^oq*%YaG&kMnXcbDcw8LN*c|fZZ1PvvloQJ3zF4+oRxKk&;&QSUy`iPft84(
z{x#T=h3g_bU5cfYt(G4fZC*lRR)YfeI^9-=D$Aix50_GPYQN68|36@joM6khf@FPP
zN;Sf_Qm~crhNSA1QFWSaTdaBw;_`?7&mNclJCZfv9aI&5flVA{v}M%rCfZX0cfHkW
zNc=OXB7zw!0|PC!Bo&T2VxSe}R8H5I1BBI)P(nFXQBUlIk~+cp=n2kipo(&;00b*Q
z)TxOSU0Xrf+KE%Iwvf~;pb`}&DmP@X4;02hK<vRdqvi@qp+Y5y%D0m_cd4Wl`r%a5
z&m=X!l4=R9lvi0kpfF{E!qE<rRq74Zlsa!fK|v=;J@AH7dkUv&bdl6Dpb~x#C-+^$
z4@Od-(7-EV-eSf?HW$1FNsB&GGUzSUTuEY+vL1lsj0uvrevqtn<E&wGy<M)uP}mP&
z_J#SKpCs$(Px_Q|0u1sBXG0a(d+-ZKrlI&Ms=l7IJefKGOA-}Wy|CZ5QvQvzN}x@@
z>C!RpsCE{72TFEeNU?!LxRK>MxY);sBh&b|Z#}{D<O!)fCV=y+p$Y*G263H7@Usq&
zf=IR4M)bu(B!9RN2Nx2orcBFKgXtwABorwEko!2~heON7NT{HiYTK;Hj{W!%YOWIu
z>=GwgW!_V)tRtx=utrFdtUka>G+V@buoW#$QX8bf4SYZ*pf5OdX(|b6*I;7A=>IdH
z<69mo{{W-^bvY6X1&qjnk*3vr{A{U-F5XihSYs5yKz9vgV5|lVd{iQpnATDrZKwt6
zhzdzftffjYLO6Z*dr-Z7LP)u&vKE_9cr5$@L>tsdQQHrc!reHPK7*vLoB<wWmQWtN
z#39B^5)$}G4fL!dvL@IPK#M+7wgNwbsDUmi%G3p|WgjW6^*H3LPeM2J0n(_WpgDB_
zMa&|hfI7;cNYjjV{IdJ(1cS2ZRvl%q7Z<gfONtuSQ^BpQ2kM1+I8_}**Hhhqb=KAd
zg*O+FtX=g~Vm<Dk@iu`P$FJbn>-G~;XrOF6HGq|Urlcqw$i+a{8>oo#aA?a?5`ts7
z7>K)(TEnxB=9=Jz(sGi2b0g&i=g6jD;uNn5tmY`Pk@BLV5lrp1Bt^xWs3A+U38?9-
zNGd+y5~YZ><jup6?7~Mv_OSX_ldNT+fEe9+H>R3;11o;$7(45|m}bhfNi!JnS&K`m
zp<~UI>5Diu(Uzpbp<rY$_;V82zxo{QNme);jAV^m`(%;|n59pcrKfEmS<kmnwr;e5
zt#cbGTN@$ILoHMjaJK@KvzdfewNhcZFSENN2fFV=O4%ouN9af^HMtbvqSKs7(aCL;
zE$KF(&Tu8Ej%}DCkx~(*-g)a_y-J76N%m_B{cSkw^mAMc@)klJE?>DDEo#Tak>Dq6
zD$zT&J^{674@rds%Y=}7I~BnZ9OB(iLT39Zh_Je-ea$vM2;&W;NQG@&)%U^qCD3jk
z4naZ{(VBnGI{Wv6w;P$XV@8B4e(hkdBZ!pWbDTo}<+W2cb((SLLhxUZ@_(2D;Ywe9
zKJAkT9AY{B-}`d2j<fj1P{e;!RPq0Tsx7f3bTJmZY#N8UaY!eDgmxxyi2MnlPSb75
zWthVH;3AOys(Kf4`b=F_$9)F*_33EKXGlQBXH1!J&|=23?G})$z6rhP`!yCTC(`bq
z0#aK3`Wk*_-CmGkzmz<69d}I}9qWMm?f7)~;_!i^&w))F)?MtZ=2;|bEwB>F9qItz
z*4!qkGrwTunXy)1fGU|oQiHx=QpDv^0!|&KsFhzZNrL(nrxrXUdEp2+vVInH;?!J{
z3P->FRX>q9l$lRLpYj318-Z}#B)p_t2lAl~DOF~xALVBx|Hfxj{Sf@ZXNm{SfWHv}
zWl#UvVv@h94EVjiQhg=#E0|Vz{TEaU5TUBEkW;n>ayDy%s<bi|zc|wTM%9b)H&FGW
zl7M2~aESl)IG$?~-UxS3-S^Q3g-4+;u;0v~y<;g9KtF}3e%OI4^nOo5S?}SIxK0;k
zYhf2aeIH3^MjcgvgxgiKKPimCGpQrc$raf$R#;E+FZ{*9h-u)!COD|?`0O`cP(9!z
z`<?62zCWU9{&(nc_$_s!UgmUzD+NDTI3GF)6vCBBTk9;I2*c$9lpK52VZT`XWZxlF
zeE~rZe(uRgmwU1r(&-rwwg<?IMc@$2?;KOmArW{B08a!lUi>+u@81XSI_PE(rbXy&
z1_kuPQ_-y+cmsquicg`JYGkF&BZ&dj>;dBf>ysLIMUKTUhWvXeUqX99m74+!;zu_W
z;DEf?dJ1pCaV@34a5(jkoT#*o0|jfrfDV{rzkSt%toyLVM9S1|d@%nE1$UMI-#ZJ^
zsw|~^XtOFD=J%nGGTPAxMwh_3r+9paXG|7E8s8~s&Ub*+7m$$qcT9rF+Mgo@|E&=@
zl>8mjA(+&feIG9cS5n{}C;RO&Rn+qxUNFLMkSP2B{b`#}?{~OeX7_`7)W$l05JF|Y
z!(`<|vW}lds7%}zGW;CoQ2@PG9B!|%&l0An_Xnm=q~_Q=^Ea<x{C=<c@9i}+S28|-
zR|tLfeQN0VbCTh|{#zX+`LFh462!B-DP9>}vEb`$@PXaFx*y5f-;c=>S>ZMN-H-%q
zZ(u5A?;}vQKe5?F!R`79S?Oewq6zT-DhVr2b5Hjrf~YTyW$X!E8AP&n{G=QTtrz0G
z2)P%6o6}0HqQq}7sU0U-osL7S_LrzwTh<RpHo&lQ3EGOCpCgRqH-=qCCv<o<7thD7
z;88Vr#QxffViYO1K58-_VTOpS=NH7a=o|_8o|`OybOxwGTQ~ra6r9nD*WkVZYS53w
zsfUwE>b>O2!o)30A{$0aZy85JX!r{m?6+tgE|dIzSHQNyAk2<XX_iUD_xQQM*S+8?
zQ~>Lf8o2lhi(dqt8l)VG9R$<iS4rsAAoZ|{|7Xk4Vkk))zkl1{Vg|`7H3V&d57&{Z
zwYPRa8%%{ZP-L0I+d!(BWOW_FqzTr0aW4C|L;c{dWw5twVLQ$W2e;zyC*2>yrVx27
z8v@^)KmP^Ae}>%b8m5}_+L9;ELJ;dpFweeLoA&iDA*Zi!v?wk_C_OX`N}1g(oEue)
zV7#bcn0m}si{sgS|KhSE)T5QTBY>ly|Kb57P`-FRep#P!-zWg@4=Mlal*=Hy5c$lb
z2iM2Vg{(OkMEuhUFIS8LwMmXe<wo-IoH8h3l#1dyj=L!Qg}0AlvV;TTCuAx<Ly^Cn
zu(XO&#rY-BD^<=Z$ZCvIwRsFw6={&r_`#f{Z#g)Wr^$j;iN4KtJSSU=M<Ctb<9+)#
zh}s#DqDjB0RZ|g8b)Q92`+vg=KajF>vJAL7HzbLrhMXe!?GGZ9>kV2t_%cNrMiKU#
z<=c!X%|@KE6Z)%XT-M&r&;+^g3KILZ&d^+zm?)B>Q7Z^78aR+@&VsnmP8x$;=7r+W
z5(^S4pfQw*3|wM*Z4`kNpMZgweL93Ylyrt6(S&p9AUf3=7nMSL>6F4KoT|Boq`sgt
z$fvkXI8|&dPL)BDAV8RDf6pCI4WXCF{M(lwpw%1<10qM}{<{5_p%wbz%f4Ky+=T0s
zM0p&P?RwBo&)ZB=e{JRzhWkWRS7M!EIzfxV7Mx!KKh{)~C>p}5;fo`?7_k0X1+By0
zGW4w^f8Jz<I{Ao%XJ}d%B#Hwb0J0Cd>s{a_!$eLoB+bc?A$a4iMET+Gjs=5i_RG1D
z-4t)ZZcb@501vK-DKRH~&Aoll{XJmxVV{z8Q5GjdpI}n&^P!bOb2Y(JEOw?gM8g>R
z#J~yL`}=f5G(Hn1*YCdQCMQE4?Z+78>rN*z$fHUCNqsg>{fJX{1(DPnL7WUE$AHBj
zKK;*R0Cev-3Ar&SHB6j3JB*~}j#Ddf>KsH;`MDUXL<mRw=Cz4HoJ%ImbUTnW7lVAV
z_RLGa7=I^D2ePLC4LSZv4Sa}_xft4nCcDD|zW9v*p9xI!Q8zFV4l8mqWH@@0h?Gks
z?PLhXiJJ;$4~|KvP*@r_70n}@oRLbA`^U+=JV0J>g(92sP~7Wra%CDt7EA{N=Xv01
zE<S}#-q!mKe*;MlnoMCl2Kbp87<QEsXaqe(G%`CoAD#oO6~62RLr22AjClkT>zrDC
z+CTG73(h2i<gasLD4drHFb+ucItf%M%$S0@xfz^juM8%DWF_G>Dg4<MQ7#tdSGRM(
z9Lo<YQ1-_G^JUm2#mMKqcw{n$YlQQl#<HMOvrp!y6#o)>q=?D=u~g@KFn^aSJh!v`
zxBpyF{Yz++k3mjAO|IJ3Z=r#0!4Ug^u+)O&PvB<=AX|QD3K)ISE`A8taU}~P?}JQU
zXVdTqx<a_<zZWGDRxDP2w0|-~gviIL67z;=$OjX~U2vB5New)0Px3#q$3)Nu{LVJs
zCENtSs;eUj;jh-Cct?0Xo;i-^;`q6(f8nKD0UsO3`2_)Au#JV2k8&Mx>d+1rl?PoE
zq$=(f4w-rU1$_gE@I9hJ>p%{8ya=+!-YhX*fAKFAVyF`Q+cwz3cDUp^Scw%WUZ5%7
zEPie>H~5m^vC8)0=}^oCkk4ss{2m8!esL6k5OPCYE8@A~6$V#p{Yhv6{6VzSMx0s~
zgi}>ff-v}w>pr#mrfL)TvKLyL{YsvG3}+=*+I%7)s}X_|RM1KhXfs^aUh07gei1tx
d+Ks)2Gf(5JQ_zRgm=wA$!VtpR&j8b;{{j3365jv-

diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest
index abf288dd2..793712a8e 100644
--- a/src/main/webapp/cache.manifest
+++ b/src/main/webapp/cache.manifest
@@ -1,7 +1,7 @@
 CACHE MANIFEST
 
 # THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 06/03/2018 08:54 AM
+# 06/05/2018 07:59 AM
 
 app.html
 index.html?offline=1
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 6e501a20c..a3940df05 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -500,19 +500,19 @@ mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.pro
 mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
 mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
 mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
-mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);b.outline&&null!=b.style&&1!=mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||this.drawChildren(a,b,c,d,e,
-f,this.fgNode,g,!0)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l),c=c.nextSibling};
+mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,
+0))};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l,m){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l,m),c=c.nextSibling};
 mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling;else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
-m);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*m,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,b=Number(b)/100,b=Math.min(n*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
-mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
-mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,k=d.x,l=d.y,m=d.width,n=d.height,p=Math.min(m,n);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e,f),c=c.nextSibling;else if("close"==g)a.close();else if("move"==g)a.moveTo(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("line"==g)a.lineTo(k+Number(c.getAttribute("x"))*m,l+
+Number(c.getAttribute("y"))*n);else if("quad"==g)a.quadTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n);else if("curve"==g)a.curveTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n,k+Number(c.getAttribute("x3"))*m,l+Number(c.getAttribute("y3"))*n);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*m,Number(c.getAttribute("ry"))*
+n,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("rect"==g)a.rect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*
+n,b=Number(b)/100,b=Math.min(p*b,d*b),a.roundrect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,p,d,b,b);else if("ellipse"==g)a.ellipse(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),
+"1"==c.getAttribute("flipV")));else if("text"==g){if(!b.outline){p=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){f=b.rotation;var q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-f:q||b?d+f:d-f}d-=c.getAttribute("rotation");a.text(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,0,0,p,c.getAttribute("align")||"left",c.getAttribute("valign")||
+"top",!1,"",null,!1,d)}}else if("include-shape"==g)f=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=f&&(k+=Number(c.getAttribute("x"))*m,l+=Number(c.getAttribute("y"))*n,p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*n,f.drawShape(a,b,k,l,p,d));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)m="1"==c.getAttribute("fixed")?1:p,a.setStrokeWidth(Number(c.getAttribute("width"))*m);else if("dashed"==
+g)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");m=[];for(n=0;n<c.length;n++)0<c[n].length&&m.push(Number(c[n])*p);c=m.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):
+"alpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*p);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
+mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;
+mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
 mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
 mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
 mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -3247,7 +3247,7 @@ q[b]?this.addSysMLActivitiesPalette():"Interactions"==q[b]?this.addSysMLInteract
 "Chips"==r[b]?this.addGMDLChipsPalette():"Dialogs"==r[b]?this.addGMDLDialogsPalette():"Dividers"==r[b]?this.addGMDLDividersPalette():"Grid Lists"==r[b]?this.addGMDLGridListsPalette():"Icons"==r[b]?this.addGMDLIconsPalette():"Lists"==r[b]?this.addGMDLListsPalette():"Menus"==r[b]?this.addGMDLMenusPalette():"Misc"==r[b]?this.addGMDLMiscPalette():"Pickers"==r[b]?this.addGMDLPickersPalette():"Selection Controls"==r[b]?this.addGMDLSelectionControlsPalette():"Sliders"==r[b]?this.addGMDLSlidersPalette():
 "Steppers"==r[b]?this.addGMDLSteppersPalette():"Tabs"==r[b]?this.addGMDLTabsPalette():"Text Fields"==r[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addWebIconsPalette();this.addWebLogosPalette();this.showEntries()};if("1"==urlParams.createindex){var e=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,c,d,m,k,n,q){e.apply(this,arguments);n=null!=n?n:1;mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,
 function(b,a,c,e,l){if(null==m||0>mxUtils.indexOf(m,a))c=null!=q?q[a]:null,mxLog.debug('<shape style="shape='+b+a+d+'" w="'+Math.round(e*n)+'" h="'+Math.round(l*n)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,e,d,m){var l=d;null!=this.searchFileData&&(this.addSearchFileData(mxUtils.parseXml(this.editorUi.editor.graph.decompress(this.searchFileData)).documentElement),this.searchFileData=null);null!=this.tagIndex&&(this.addTagIndex(this.editorUi.editor.graph.decompress(this.tagIndex)),
-this.tagIndex=null);this.editorUi.isOffline()||0!=e||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});null!=ICONSEARCH_PATH&&(d=mxUtils.bind(this,function(b,d,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=e-Math.ceil((d-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?v=2&q="+encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)l(b,d,!1,g),this.editorUi.handleError(f);
+this.tagIndex=null);this.editorUi.isOffline()||0!=e||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});null!=ICONSEARCH_PATH&&(d=mxUtils.bind(this,function(b,d,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=e-Math.ceil((d-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?q="+encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)l(b,d,!1,g),this.editorUi.handleError(f);
 else{for(a=0;a<f.icons.length;a++){for(var h=f.icons[a].raster_sizes,k=h.length-1;0<k&&128<h[k].size;)k--;var m=h[k].size,n=h[k].formats[0].preview_url;null!=m&&null!=n&&mxUtils.bind(this,function(a,c){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+c,a,a,"")}))})(m,n)}l(b,(e-1)*c+b.length,f.icons.length==c,g)}}catch(z){l(b,d,!1,g),this.editorUi.handleError(z)}else l(b,
 d,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(z){l(b,d,!1,g),this.editorUi.handleError(z)}},function(){l(b,d,!1,g)}))):l(b,d,f||!this.editorUi.isOffline(),g)}));b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(b,a,e){var d=this.editorUi.editor.graph,l=!1;if(null!=b&&1==d.getSelectionCount()&&d.getModel().isVertex(b[0])){var f=d.cloneCells(b)[0];if(d.getModel().isEdge(d.getSelectionCell())&&null==d.getModel().getTerminal(d.getSelectionCell(),
 !1)&&d.getModel().isVertex(f)){d.getModel().beginUpdate();try{var g=d.view.getState(d.getSelectionCell());if(null!=g){var q=d.view.translate,p=d.view.scale,r=g.absolutePoints[g.absolutePoints.length-1];f.geometry.x=r.x/p-q.x-f.geometry.width/2;f.geometry.y=r.y/p-q.y-f.geometry.height/2}d.addCell(f);d.getModel().setTerminal(d.getSelectionCell(),f,!1)}finally{d.getModel().endUpdate()}d.scrollCellToVisible(f);d.setSelectionCell(f);l=!0}}l||c.apply(this,arguments)}})();(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var d=a.apply(this,arguments),e=this,b=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html=1;startSize=20;horizontal=1;childLayout=flowLayout;flowOrientation=north;resizable=0;interRankCellSpacing=50;containerType=tree;");b.vertex=!0;var c=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);var l=new mxCell("Task",new mxGeometry(20,
@@ -7178,7 +7178,7 @@ var U=document.createElement("input");U.style.cssText="margin:0 8px 0 8px;";U.se
 v.className="geBtn",e.appendChild(v));PrintDialog.previewEnabled&&(v=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),v.className="geBtn",e.appendChild(v));v=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});v.className="geBtn gePrimaryBtn";e.appendChild(v);a.editor.cancelFirst||e.appendChild(h);k.appendChild(e);this.container=k};var v=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
 this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(v.apply(this,arguments),null!=this.mathEnabled&&
 this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.7.4";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.7.5";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
 EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
 EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
 !1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(u){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
@@ -7189,131 +7189,131 @@ length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiT
 "10px",e.style.zIndex=2E9,e.style.left=Math.max(0,a)+"px",e.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(e.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(e.style,"boxShadow","2px 2px 3px 0px #ddd"),e.innerHTML=k+"...",c.appendChild(e),d.status=e,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(e.style.left=Math.round(Math.max(0,a-e.offsetWidth/2))+"px",e.style.top=Math.round(Math.max(0,
 b+70-e.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,k)}));this.stop();return a}),e=!0);return e};var k=d.stop;d.stop=function(){k.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=k;k+=b;return a.substring(c,k)}function f(a){a=d(a,4);return a.charCodeAt(3)+
 (a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var k=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=f(a);var e=d(a,4);if(null!=b&&b(k-8,e,c))break;value=d(a,c);d(a,4);if("IEND"==e)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("&lt;mxfile ");if(0<=d){var f=b.lastIndexOf("&lt;/mxfile&gt;");f>d&&(c=b.substring(d,f+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var e=mxUtils.parseXml(b),g=this.editor.extractGraphModel(e.documentElement,null!=this.pages),c=null!=g?mxUtils.getXml(g):""}catch(v){}return c};EditorUi.prototype.validateFileData=
-function(a){if(null!=a&&0<a.length){var b=a.indexOf('<meta charset="utf-8">');0<=b&&(a=a.slice(0,b)+'<meta charset="utf-8"/>'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");
-if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var f=d.length-1;0<=f;f--){var e=this.updatePageRoot(new DiagramPage(d[f]));null==e.getName()&&e.setName(mxResources.get("pageWithNumber",[f+1]));b.model.execute(new ChangePage(this,e,0==f?e:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
-this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)b.model.execute(new ChangePage(this,c[f],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,g,h,l,m,t){b=null!=b?b:this.editor.graph;e=null!=e?e:!1;m=null!=m?m:!0;var f,k=null;null==c||
-c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":k=f=d;if(null==a)return"";var n=a;if("mxfile"!=n.nodeName.toLowerCase()){var q=b.zapGremlins(mxUtils.getXml(a)),n=b.compress(q);if(b.decompress(n)!=q)return q;q=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(q,n);n=a.ownerDocument.createElement("mxfile");n.appendChild(q)}t?(n=n.cloneNode(!0),n.removeAttribute("userAgent"),n.removeAttribute("version"),n.removeAttribute("editor"),n.removeAttribute("type")):(n.setAttribute("userAgent",
-navigator.userAgent),n.setAttribute("version",EditorUi.VERSION),n.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&n.setAttribute("type",a));a=mxUtils.getXml(n);if(!g&&!e&&(h||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(n),b,null!=c?c.getTitle():null,f,k);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(d=null),a=this.getEmbeddedSvg(a,b,d,null,l,m,k);return a};EditorUi.prototype.getXmlFileData=
-function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),
-e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),e.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,g,h,l,m){e=null!=e?e:!0;h=null!=h?h:this.getXmlFileData(e,null!=g?g:!1);m=null!=m?m:this.getCurrentFile();g=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());
-var f=g.getGlobalVariable,k=this.pages[0];g.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(k.root)}a=this.createFileData(h,g,m,window.location.href,a,b,c,d,e,l);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return a};EditorUi.prototype.getHtml=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=null,k="https://www.draw.io/js/embed-static.min.js";if(null!=b){var f=g?b.getGraphBounds():
-b.getBoundingBox(b.getSelectionCells()),n=b.view.scale;g=Math.floor(f.x/n-b.view.translate.x);n=Math.floor(f.y/n-b.view.translate.y);f=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(k="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",n)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=
-e&&(e=e.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?
-'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+"</head>\n<body"+(null==e&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+d+"</div>\n</div>\n"+(null==e?'<script type="text/javascript" src="'+k+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
-"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){null!=e&&(e=e.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':
-">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==e?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=
-b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var b=this.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&
-0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,e,g,h){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),k=f+"."+a;if("xml"==a){var n='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(k,a,n,"text/xml")}else if("html"==a)n=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(k,
-a,n,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?k=f+".png":"jpeg"==a&&(k=f+".jpg"),this.saveRequest(k,a,mxUtils.bind(this,function(b,c){try{var f=this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var e=this.createDownloadRequest(b,a,d,c,h);this.editor.graph.pageVisible=f;return e}catch(B){this.handleError(B)}}));else{var q=null,l=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",
-a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==a){var v=this.editor.graph.background;if(h||v==mxConstants.NONE)v=null;var u=this.editor.graph.getSvg(v,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(u);this.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();l('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(a))})))}else k=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();l(a)}),d)}}catch(J){this.handleError(J)}};EditorUi.prototype.createDownloadRequest=function(a,b,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var k="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==b&&(f="1",b="png",null!=this.pages&&null!=this.currentPage))for(var n=
-0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){k="&from="+n;break}n=this.editor.graph.background;"png"==b&&e&&(n=mxConstants.NONE);return new mxXmlRequest(EXPORT_URL,"format="+b+k+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=
-null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,k=null,
-n=mxUtils.bind(this,function(){var b=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){b===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),g()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(k);k=window.setTimeout(n,e)});this.editor.addListener("pageSelected",
-mxUtils.bind(this,function(){g();n()}));g();n()}null!=b&&b()});if(null!=a.url){var e=a.url;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f(a.data)};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){editorUi.alert(a.tooltip)});
-return b}var c=null;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null,null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,f=d.getModel();f.beginUpdate();var e=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var g=f.getCell(a.getAttribute("id"));if(null!=g){try{var h=a.getAttribute("value");if(null!=h){var l=mxUtils.parseXml(h).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))f.setValue(g,l);else for(var t=l.attributes,y=0;y<t.length;y++)d.setAttributeForCell(g,
-t[y].nodeName,0<t[y].nodeValue.length?t[y].nodeValue:null)}}catch(B){null!=window.console&&console.log("Error in value for "+g.id+": "+B)}try{var m=a.getAttribute("style");null!=m&&d.model.setStyle(g,m)}catch(B){null!=window.console&&console.log("Error in style for "+g.id+": "+B)}try{var D=a.getAttribute("icon");if(null!=D){var x=0<D.length?JSON.parse(D):null;null!=x&&x.append||d.removeCellOverlays(g);null!=x&&d.addCellOverlay(g,b(x))}}catch(B){null!=window.console&&console.log("Error in icon for "+
-g.id+": "+B)}try{var J=a.getAttribute("geometry");if(null!=J){var J=JSON.parse(J),A=d.getCellGeometry(g);if(null!=A){A=A.clone();for(key in J){var C=parseFloat(J[key]);"dx"==key?A.x+=C:"dy"==key?A.y+=C:"dw"==key?A.width+=C:"dh"==key?A.height+=C:A[key]=parseFloat(J[key])}d.model.setGeometry(g,A)}}}catch(B){null!=window.console&&console.log("Error in icon for "+g.id+": "+B)}}}else if("model"==a.nodeName){for(var G=a.firstChild;null!=G&&G.nodeType!=mxConstants.NODETYPE_ELEMENT;)G=G.nextSibling;null!=
-G&&(new mxCodec(a.firstChild)).decode(G,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(e=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{f.endUpdate()}null!=e&&this.chromelessResize&&this.chromelessResize(!0,e)}return c};
-EditorUi.prototype.fileLoaded=function(a){var b=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&
-0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();
-this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();
-this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){null!=window.console&&console.log("error in fileLoaded:",a,u);if(EditorUi.enableLogging&&
-!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=u&&null!=u.message?":err:"+encodeURIComponent(u.message):"")+(null!=u&&null!=u.stack?"&stack="+encodeURIComponent(u.stack):"")}catch(p){}this.handleError(u,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?
-window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return b};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(n){}};EditorUi.prototype.restoreLibraries=
-function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,e,g,h){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=
-function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);
-delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;if(null==a){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(a=c[c.length-1].nextSibling)}a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName){var c=
-JSON.parse(mxUtils.getTextContent(b.documentElement));this.libraryLoaded(a,c,b.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:
-null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f);else for(var d=0;d<b.length;d++){var e=b[d],k=e.data;if(null!=k){var k=this.convertDataUri(k),n="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";
-"fixed"==e.aspect&&(n+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(n+"image="+k,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(k=this.stringToCells(this.editor.graph.decompress(e.xml)),0<k.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(k,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=b)for(var k=0;k<b.length;k++)mxUtils.bind(this,function(a){var b=a.data;null!=b&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){b=
-this.convertDataUri(b);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+b,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var b=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(b,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[k]);c=null!=c&&0<c.length?c:
-a.getTitle();var n=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var g=n.parentNode.previousSibling;c=g.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&g.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");g.style.position=
-"relative";var h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("close"));h.setAttribute("valign","absmiddle");h.setAttribute("border","0");h.style.margin="0 3px";var l=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(h),mxEvent.addListener(h,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=l?this.confirm(mxResources.get("allChangesLost"),
-null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var m=this.editor.graph,x=null,J=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),n,b,a,a.getMode());mxEvent.consume(c)}),A=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=x&&null!=x.parentNode&&x.parentNode.removeChild(x),x=h.cloneNode(!1),x.setAttribute("src",Editor.spinImage),x.setAttribute("title",mxResources.get("saving")),x.style.cursor="default",
-x.style.marginRight="2px",x.style.marginTop="-2px",t.insertBefore(x,t.firstChild),g.style.paddingRight=18*t.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=x&&null!=x.parentNode&&(x.parentNode.removeChild(x),g.style.paddingRight=18*t.childNodes.length+"px")})):null==l&&(l=h.cloneNode(!1),l.setAttribute("src",IMAGE_PATH+"/download.png"),l.setAttribute("title",mxResources.get("save")),t.insertBefore(l,t.firstChild),mxEvent.addListener(l,"click",mxUtils.bind(this,
-function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==l||a.isModified()||(g.style.paddingRight=18*t.childNodes.length+"px",l.parentNode.removeChild(l),l=null)});mxEvent.consume(c)})),g.style.paddingRight=18*t.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,c,d,e){a=m.cloneCells(mxUtils.sortCells(m.model.getTopmostCells(a)));for(var k=0;k<a.length;k++){var g=m.getCellGeometry(a[k]);null!=g&&g.translate(-c.x,-c.y)}n.appendChild(this.sidebar.createVertexTemplateFromCells(a,
-c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);A(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),G=mxUtils.bind(this,function(a){if(m.isSelectionEmpty())m.getRubberband().isActive()?(m.getRubberband().execute(a),m.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=
-m.getSelectionCells(),c=m.view.getBounds(b),d=m.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=m.view.translate.x;c.y-=m.view.translate.y;C(b,c)}mxEvent.consume(a)});n.style.border="3px solid transparent";mxEvent.addGestureListeners(n,function(){},mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)",
-n.style.cursor="copy",m.panningManager.stop(),m.autoScroll=!1,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!1),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler&&(n.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),n.style.cursor="default",this.sidebar.showTooltips=!0,m.panningManager.stop(),m.graphHandler.reset(),
-m.isMouseDown=!1,m.autoScroll=!0,G(a),mxEvent.consume(a))}));mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="visible",n.style.border="3px solid transparent",n.style.cursor="",m.autoScroll=!0,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!0),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&
-(mxEvent.addListener(n,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";n.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"drop",mxUtils.bind(this,function(a){n.style.border="3px solid transparent";n.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,
-0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,k,g,t,h,l,q,y){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,t,h),c)],c[0].vertex=!0,C(c,new mxRectangle(0,0,t,h),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var m=!1,v=mxUtils.bind(this,function(c,
-d){if(null!=c&&"text/xml"==d){var k=mxUtils.parseXml(c);if("mxlibrary"==k.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(k.documentElement));e(g,n);b=b.concat(g);A(a);this.spinner.stop();m=!0}catch(U){}else if("mxfile"==k.documentElement.nodeName)try{for(var t=k.documentElement.getElementsByTagName("diagram"),k=0;k<t.length;k++){var g=mxUtils.getTextContent(t[k]),h=this.stringToCells(this.editor.graph.decompress(g)),l=this.editor.graph.getBoundingBoxFromGeometry(h);C(h,new mxRectangle(0,
-0,l.width,l.height),a)}m=!0}catch(U){null!=window.console&&console.log("error in drop handler:",U)}}m||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=y&&null!=l&&(/(\.vsdx?)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?this.importVisio(y,function(a){v(a,"text/xml")},null,l):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,l)&&null!=y?this.parseFile(y,
-mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?v(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):v(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(n.style.border="3px solid transparent",n.style.cursor="");a.stopPropagation();a.preventDefault()}));
-h=h.cloneNode(!1);h.setAttribute("src",Editor.editImage);h.setAttribute("title",mxResources.get("edit"));t.insertBefore(h,t.firstChild);mxEvent.addListener(h,"click",J);mxEvent.addListener(n,"dblclick",function(a){mxEvent.getSource(a)==n&&J(a)});c=h.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",G);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),
-c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}g.appendChild(t);g.style.paddingRight=18*t.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=
-64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top=
-"-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=
-3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=
-null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage=
-"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};
-EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(a){var b=document.getElementById("geFooter");null!=b&&(this.footerHeight=a,b.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
-!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==
-this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,
-function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=null!=a&&null!=a.error?a.error:a;if(null!=e||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var f=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=e)if(null!=e.retry&&(f=mxResources.get("cancel"),k=function(){d();e.retry()}),"undefined"!=
-typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));else if(404==e.code||404==e.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var n=window.location.hash;null!=n&&"#G"==n.substring(0,2)&&(n=n.substring(2),
-a+=' <a href="https://drive.google.com/open?id='+n+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else e.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):e.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=e.message?a=mxUtils.htmlEntities(e.message):null!=e.response&&null!=e.response.error&&(a=mxUtils.htmlEntities(e.response.error));this.showError(b,a,f,c,k)}else null!=c&&c()};EditorUi.prototype.showError=
-function(a,b,c,d,e,g,h,l,m,t,y,E){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),d,e,g,h,E,l,m);this.showDialog(a.container,t||340,y||150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=
-b&&b()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,
-b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,e=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(e,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&
-(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.Blob&&navigator.msSaveOrOpenBlob)a=d?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),
-c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var f=document.createElement("a"),k=!mxClient.IS_SF&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var n=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),k=65==(n?parseInt(n[2],
-10):!1)?!1:k;if(k||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));k?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.click(),f.parentNode.removeChild(f)}catch(z){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=
-c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),k=0;k<e;++k){for(var g=1024*k,h=Math.min(g+1024,d),t=Array(h-g),l=0;g<h;++l,++g)t[l]=c[g].charCodeAt(0);f[k]=new Uint8Array(t)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e,g,h){g=null!=g?g:!1;h=null!=h?h:"vsdx"!=e&&
-(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,d);else e==App.MODE_DEVICE||"download"==e?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,
-mxUtils.bind(this,function(f){try{this.exportFile(a,b,c,d,e,f)}catch(E){this.handleError(E)}}))}catch(y){this.handleError(y)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,h,null,1<e,4<e&&(!g||6>e)?3:4,a,c,d);this.showDialog(b.container,420,e==(mxClient.IS_IOS?0:1)?160:4<e?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=
-window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+'"/></html>'),d.document.close())}else d=window.open("data:"+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=
-null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign=
-"center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.exportDialog.style.zIndex=d.zIndex;var e=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});e.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,function(a){e.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";
-a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),
-Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,e,g,h){h=null!=h?h:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,e){if("_blank"==e||null!=
-a&&0<a.length){var f=c("_blank"==e?null:a,e==App.MODE_DEVICE||"download"==e||null==e||"_blank"==e?"0":"1");null!=f&&(e==App.MODE_DEVICE||"download"==e||"_blank"==e?f.simulate(document,"_blank"):this.pickFolder(e,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,e,c)}catch(D){this.handleError(D)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&
-299>=f.getStatus())try{this.exportFile(f.getText(),a,g,!0,e,c)}catch(D){this.handleError(D)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,h,null,1<f,4<f?3:4,d,g,e);this.showDialog(a.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,c,d,e,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,g,h,l,m){if(this.spinner.spin(document.body,mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f="#ffffff");var k=this.editor.graph.getSvg(f,a,h,l,null,c);d&&this.editor.graph.addSvgShadow(k);var n=this.getBaseFilename()+".svg",
-q=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,m));if(null!=this.editor.fontCss){var b=a.ownerDocument,b=null!=b.createElementNS?b.createElementNS(mxConstants.NS_SVG,"style"):b.createElement("style");b.setAttribute("type","text/css");mxUtils.setTextContent(b,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(b)}var d='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(a);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(n,"svg",d,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.convertMath(this.editor.graph,k,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(k,q,this.thumbImageCache)):q(k)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=
-document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type","checkbox");c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled","disabled");g&&(a.appendChild(f),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),e||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=f.getAttribute("disabled")&&(f.checked=!f.checked,mxEvent.consume(a))})));return f};EditorUi.prototype.addEditButton=
-function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));f.appendChild(d);d=document.createElement("option");
-d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");f.appendChild(d);a.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==f.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===f.value?"_blank":e:null},getEditInput:function(){return c},getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){k.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=f&&f!=mxConstants.NONE?"border:1px solid black;background-color:"+f:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");
-e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var f="#0000ff",k=null,k=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();k.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";a.appendChild(k);mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,g,h,l){var f=this.getCurrentFile(),k=[];d&&(k.push("lightbox=1"),"auto"!=a&&k.push("target="+
-a),null!=b&&b!=mxConstants.NONE&&k.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&k.push("edit="+encodeURIComponent(e)),g&&k.push("layers=1"),this.editor.graph.foldingEnabled&&k.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&k.push("page="+a);break}a=!0;null!=h?c="#U"+encodeURIComponent(h):(f=this.getCurrentFile(),l||null==f||f.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?
-this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+f.getHash(),a=!1));a&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&k.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<k.length?"?"+k.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,
-b,c,d,e,g,h,l,m,t,y){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d);m||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];h&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),f.resize=!0);l&&c.push("layers");0<c.length&&(m&&c.push("lightbox"),f.toolbar=c.join(" "));null!=t&&0<t.length&&(f.edit=t);null!=
-a?f.url=a:f.xml=this.getFileData(!0,null,null,null,null,!h);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(f))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";y(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+
-'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(f);var k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
-g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");f=g.cloneNode(!0);f.setAttribute("value","copy");k.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(n);mxUtils.br(k);k.appendChild(g);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));k.appendChild(n);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(n=
-document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.setAttribute("href","javascript:void(0);"),mxUtils.write(n,mxResources.get("share")),k.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));f.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");e.appendChild(k);var h=this.addLinkSection(e),l=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,
-":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="12px";m.value="100%";e.appendChild(m);var q=this.addCheckbox(e,mxResources.get("fit"),!0),k=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(e,mxResources.get("allPages"),k,!k),A=this.addCheckbox(e,mxResources.get("layers"),!0),C=this.addCheckbox(e,mxResources.get("lightbox"),!0),G=this.addEditButton(e,C),B=G.getEditInput();
-B.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?B.removeAttribute("disabled"):B.setAttribute("disabled","disabled");B.checked&&C.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,m.value,h.getTarget(),h.getColor(),q.checked,J.checked,A.checked,C.checked,G.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};
-EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(k);var n=this.getCurrentFile(),k="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=n&&n.constructor==window.DriveFile&&!b){a=80;var k="https://desk.draw.io/support/solutions/articles/16000039384",
-t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var h=document.createElement("div");h.style.whiteSpace="normal";mxUtils.write(h,mxResources.get("linkAccountRequired"));t.appendChild(h);h=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(n.getId())}));h.style.marginTop="12px";h.className="geBtn";t.appendChild(h);f.appendChild(t);h=document.createElement("a");
-h.style.paddingLeft="12px";h.style.color="gray";h.style.fontSize="11px";h.setAttribute("href","javascript:void(0);");mxUtils.write(h,mxResources.get("check"));t.appendChild(h);mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));
-this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,m=null;if(null!=c||null!=d)a+=30,mxUtils.write(f,mxResources.get("width")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",f.appendChild(l),mxUtils.write(f,mxResources.get("height")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.width="50px",
-m.style.marginLeft="6px",m.style.marginBottom="10px",m.value=d+"px",f.appendChild(m),mxUtils.br(f);var q=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var p=null;if(null==n||n.constructor!=window.DriveFile||b)p=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var u=this.addCheckbox(f,mxResources.get("lightbox"),!0),C=this.addEditButton(f,u),G=C.getEditInput(),B=this.addCheckbox(f,mxResources.get("layers"),!0);B.style.marginLeft=G.style.marginLeft;B.style.marginBottom="16px";
-B.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(B.removeAttribute("disabled"),G.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&u.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(q.getTarget(),q.getColor(),null==p?!0:p.checked,u.checked,C.getLink(),B.checked,null!=l?l.value:null,null!=
-m?m.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-e.appendChild(f);var k=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,n=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!k.checked,null!=g?g.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,
-300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e,g,h,l){h=null!=h?h:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var k=this.editor.graph,n="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(m);mxUtils.write(f,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width=
-"60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";f.appendChild(q);mxUtils.write(f,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";f.appendChild(v);mxUtils.br(f);var p=this.addCheckbox(f,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background,null,null,"jpeg"!=
-l),u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,k.isSelectionEmpty()),w=document.createElement("input");w.style.marginTop="16px";w.style.marginRight="8px";w.style.marginLeft="24px";w.setAttribute("disabled","disabled");w.setAttribute("type","checkbox");g&&(f.appendChild(w),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),n+=26,mxEvent.addListener(u,"change",function(){u.checked?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}));k.isSelectionEmpty()||(w.setAttribute("checked",
-"checked"),w.defaultChecked=!0);var G=this.addCheckbox(f,mxResources.get("shadow"),k.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");b&&(f.appendChild(B),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),n+=26);var L=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),h,null,null,"jpeg"!=l),H=null!=this.pages&&1<this.pages.length,
-F=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=l);F.style.marginLeft="24px";F.style.marginBottom="16px";H||(F.style.visibility="hidden");mxEvent.addListener(L,"change",function(){L.checked&&H?F.removeAttribute("disabled"):F.setAttribute("disabled","disabled")});h&&H||F.setAttribute("disabled","disabled");a=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=q.value;e(q.value,p.checked,!u.checked,G.checked,L.checked,B.checked,
-v.value,w.checked,!F.checked)}),null,c,d);this.showDialog(a.container,340,n,!0,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var k=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-f.appendChild(g)}var n=this.addCheckbox(f,mxResources.get("fit"),!0),t=this.addCheckbox(f,mxResources.get("shadow"),k.shadowVisible&&d,!d),h=this.addCheckbox(f,c),l=this.addCheckbox(f,mxResources.get("lightbox"),!0),m=this.addEditButton(f,l),q=m.getEditInput(),u=1<k.model.getChildCount(k.model.getRoot()),A=this.addCheckbox(f,mxResources.get("layers"),u,!u);A.style.marginLeft=q.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked?
-(u&&A.removeAttribute("disabled"),q.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&l.checked?m.getEditSelect().removeAttribute("disabled"):m.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){a(n.checked,t.checked,h.checked,l.checked,m.getLink(),A.checked)}),null,mxResources.get("embed"),e);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
-function(a,b,c,d,e,g,h,l){function f(b){var f=" ",n="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;");
-a&&(n+="max-width:100%;");var t="";c&&(t=' width="'+Math.round(k.width)+'" height="'+Math.round(k.height)+'"');h('<img src="'+b+'"'+t+(""!=n?' style="'+n+'"':"")+f+"/>")}var k=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");f(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),
-k.width*k.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var n="";c&&(n="&w="+Math.round(2*k.width)+"&h="+Math.round(2*k.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+n+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?f("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
-b,c,d,e,g,h){var f=this.editor.graph.getSvg(),k=f.getElementsByTagName("a");if(null!=k)for(var n=0;n<k.length;n++){var l=k[n].getAttribute("href");null!=l&&"#"==l.charAt(0)&&"_blank"==k[n].getAttribute("target")&&k[n].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(f);if(c){var m=" ",q="";d&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("&lt;mxfile ");if(0<=d){var f=b.lastIndexOf("&lt;/mxfile&gt;");f>d&&(c=b.substring(d,f+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var e=mxUtils.parseXml(b),g=this.editor.extractGraphModel(e.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=
+g?mxUtils.getXml(g):""}catch(v){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('<meta charset="utf-8">');0<=b&&(a=a.slice(0,b)+'<meta charset="utf-8"/>'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();
+try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var f=d.length-1;0<=f;f--){var e=this.updatePageRoot(new DiagramPage(d[f]));null==e.getName()&&e.setName(mxResources.get("pageWithNumber",[f+1]));b.model.execute(new ChangePage(this,e,0==f?e:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),
+this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)b.model.execute(new ChangePage(this,c[f],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,g,h,l,m,t){b=null!=
+b?b:this.editor.graph;e=null!=e?e:!1;m=null!=m?m:!0;var f,k=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":k=f=d;if(null==a)return"";var n=a;if("mxfile"!=n.nodeName.toLowerCase()){var q=b.zapGremlins(mxUtils.getXml(a)),n=b.compress(q);if(b.decompress(n)!=q)return q;q=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(q,n);n=a.ownerDocument.createElement("mxfile");n.appendChild(q)}t?(n=n.cloneNode(!0),n.removeAttribute("userAgent"),n.removeAttribute("version"),
+n.removeAttribute("editor"),n.removeAttribute("type")):(n.setAttribute("userAgent",navigator.userAgent),n.setAttribute("version",EditorUi.VERSION),n.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&n.setAttribute("type",a));a=mxUtils.getXml(n);if(!g&&!e&&(h||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(n),b,null!=c?c.getTitle():null,f,k);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
+App.MODE_BROWSER||(d=null),a=this.getEmbeddedSvg(a,b,d,null,l,m,k);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;
+this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),e.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,g,h,l,m){e=null!=e?e:!0;h=null!=h?h:this.getXmlFileData(e,null!=g?g:!1);m=null!=m?m:this.getCurrentFile();g=this.editor.graph;
+if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,k=this.pages[0];g.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(k.root)}a=this.createFileData(h,g,m,window.location.href,a,b,c,d,e,l);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return a};
+EditorUi.prototype.getHtml=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=null,k="https://www.draw.io/js/embed-static.min.js";if(null!=b){var f=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),n=b.view.scale;g=Math.floor(f.x/n-b.view.translate.x);n=Math.floor(f.y/n-b.view.translate.y);f=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(k="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",n)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom",
+"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':
+">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+"</head>\n<body"+(null==e&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+d+"</div>\n</div>\n"+(null==e?'<script type="text/javascript" src="'+k+'">\x3c/script>':
+'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){null!=e&&(e=e.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,
+this.currentPage));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==e?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?
+mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var b=this.getCurrentFile(),b=null!=b&&null!=
+b.getTitle()?b.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,e,g,h){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),
+k=f+"."+a;if("xml"==a){var n='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(k,a,n,"text/xml")}else if("html"==a)n=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(k,a,n,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?k=f+".png":"jpeg"==a&&(k=f+".jpg"),this.saveRequest(k,a,mxUtils.bind(this,function(b,c){try{var f=
+this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var e=this.createDownloadRequest(b,a,d,c,h);this.editor.graph.pageVisible=f;return e}catch(B){this.handleError(B)}}));else{var q=null,l=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==a){var v=this.editor.graph.background;if(h||v==
+mxConstants.NONE)v=null;var u=this.editor.graph.getSvg(v,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(u);this.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();l('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else k=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();l(a)}),d)}}catch(J){this.handleError(J)}};
+EditorUi.prototype.createDownloadRequest=function(a,b,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var k="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==b&&(f="1",b="png",null!=this.pages&&null!=this.currentPage))for(var n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){k="&from="+n;break}n=this.editor.graph.background;"png"==b&&e&&(n=mxConstants.NONE);
+return new mxXmlRequest(EXPORT_URL,"format="+b+k+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,k=null,n=mxUtils.bind(this,function(){var b=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(a){b===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),g()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(k);k=window.setTimeout(n,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();n()}));g();n()}null!=b&&b()});if(null!=a.url){var e=a.url;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&
+(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f(a.data)};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){editorUi.alert(a.tooltip)});return b}var c=null;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null,null!=a&&"updates"==a.nodeName)){var d=
+this.editor.graph,f=d.getModel();f.beginUpdate();var e=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var g=f.getCell(a.getAttribute("id"));if(null!=g){try{var h=a.getAttribute("value");if(null!=h){var l=mxUtils.parseXml(h).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))f.setValue(g,l);else for(var t=l.attributes,y=0;y<t.length;y++)d.setAttributeForCell(g,t[y].nodeName,0<t[y].nodeValue.length?t[y].nodeValue:null)}}catch(B){null!=window.console&&console.log("Error in value for "+
+g.id+": "+B)}try{var m=a.getAttribute("style");null!=m&&d.model.setStyle(g,m)}catch(B){null!=window.console&&console.log("Error in style for "+g.id+": "+B)}try{var D=a.getAttribute("icon");if(null!=D){var x=0<D.length?JSON.parse(D):null;null!=x&&x.append||d.removeCellOverlays(g);null!=x&&d.addCellOverlay(g,b(x))}}catch(B){null!=window.console&&console.log("Error in icon for "+g.id+": "+B)}try{var J=a.getAttribute("geometry");if(null!=J){var J=JSON.parse(J),A=d.getCellGeometry(g);if(null!=A){A=A.clone();
+for(key in J){var C=parseFloat(J[key]);"dx"==key?A.x+=C:"dy"==key?A.y+=C:"dw"==key?A.width+=C:"dh"==key?A.height+=C:A[key]=parseFloat(J[key])}d.model.setGeometry(g,A)}}}catch(B){null!=window.console&&console.log("Error in icon for "+g.id+": "+B)}}}else if("model"==a.nodeName){for(var G=a.firstChild;null!=G&&G.nodeType!=mxConstants.NODETYPE_ELEMENT;)G=G.nextSibling;null!=G&&(new mxCodec(a.firstChild)).decode(G,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(d.view.scale=parseFloat(a.getAttribute("scale"))),
+a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(e=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{f.endUpdate()}null!=e&&this.chromelessResize&&this.chromelessResize(!0,e)}return c};EditorUi.prototype.fileLoaded=function(a){var b=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),
+c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));
+this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=
+App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){null!=window.console&&console.log("error in fileLoaded:",a,u);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+
+(null!=u&&null!=u.message?":err:"+encodeURIComponent(u.message):"")+(null!=u&&null!=u.stack?"&stack="+encodeURIComponent(u.stack):"")}catch(p){}this.handleError(u,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return b};EditorUi.prototype.descriptorChanged=
+function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(n){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,e,g,h){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=
+function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=
+a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;if(null==a){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=
+this.sidebar.palettes.search);null!=c&&(a=c[c.length-1].nextSibling)}a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(b.documentElement));this.libraryLoaded(a,c,b.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};
+EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,
+"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f);else for(var d=0;d<b.length;d++){var e=b[d],k=e.data;if(null!=k){var k=this.convertDataUri(k),n="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(n+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(n+"image="+k,e.w,e.h,"",e.title||"",!1,
+!1,!0))}else null!=e.xml&&(k=this.stringToCells(this.editor.graph.decompress(e.xml)),0<k.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(k,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=b)for(var k=0;k<b.length;k++)mxUtils.bind(this,function(a){var b=a.data;null!=b&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){b=this.convertDataUri(b);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(c+=
+"aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+b,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var b=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(b,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[k]);c=null!=c&&0<c.length?c:a.getTitle();var n=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var g=
+n.parentNode.previousSibling;c=g.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&g.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");g.style.position="relative";var h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",
+mxResources.get("close"));h.setAttribute("valign","absmiddle");h.setAttribute("border","0");h.style.margin="0 3px";var l=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(h),mxEvent.addListener(h,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=l?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var m=
+this.editor.graph,x=null,J=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),n,b,a,a.getMode());mxEvent.consume(c)}),A=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=x&&null!=x.parentNode&&x.parentNode.removeChild(x),x=h.cloneNode(!1),x.setAttribute("src",Editor.spinImage),x.setAttribute("title",mxResources.get("saving")),x.style.cursor="default",x.style.marginRight="2px",x.style.marginTop="-2px",t.insertBefore(x,t.firstChild),g.style.paddingRight=18*t.childNodes.length+
+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=x&&null!=x.parentNode&&(x.parentNode.removeChild(x),g.style.paddingRight=18*t.childNodes.length+"px")})):null==l&&(l=h.cloneNode(!1),l.setAttribute("src",IMAGE_PATH+"/download.png"),l.setAttribute("title",mxResources.get("save")),t.insertBefore(l,t.firstChild),mxEvent.addListener(l,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==l||a.isModified()||
+(g.style.paddingRight=18*t.childNodes.length+"px",l.parentNode.removeChild(l),l=null)});mxEvent.consume(c)})),g.style.paddingRight=18*t.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,c,d,e){a=m.cloneCells(mxUtils.sortCells(m.model.getTopmostCells(a)));for(var k=0;k<a.length;k++){var g=m.getCellGeometry(a[k]);null!=g&&g.translate(-c.x,-c.y)}n.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
+w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);A(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),G=mxUtils.bind(this,function(a){if(m.isSelectionEmpty())m.getRubberband().isActive()?(m.getRubberband().execute(a),m.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=m.getSelectionCells(),c=m.view.getBounds(b),d=m.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=m.view.translate.x;
+c.y-=m.view.translate.y;C(b,c)}mxEvent.consume(a)});n.style.border="3px solid transparent";mxEvent.addGestureListeners(n,function(){},mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)",n.style.cursor="copy",m.panningManager.stop(),m.autoScroll=!1,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!1),
+null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler&&(n.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),n.style.cursor="default",this.sidebar.showTooltips=!0,m.panningManager.stop(),m.graphHandler.reset(),m.isMouseDown=!1,m.autoScroll=!0,G(a),mxEvent.consume(a))}));mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){m.isMouseDown&&
+null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="visible",n.style.border="3px solid transparent",n.style.cursor="",m.autoScroll=!0,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!0),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(n,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)";
+a.dataTransfer.dropEffect="copy";n.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"drop",mxUtils.bind(this,function(a){n.style.border="3px solid transparent";n.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,k,g,t,h,l,q,y){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+
+this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,t,h),c)],c[0].vertex=!0,C(c,new mxRectangle(0,0,t,h),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var m=!1,v=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var k=mxUtils.parseXml(c);if("mxlibrary"==k.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(k.documentElement));e(g,n);b=b.concat(g);A(a);
+this.spinner.stop();m=!0}catch(U){}else if("mxfile"==k.documentElement.nodeName)try{for(var t=k.documentElement.getElementsByTagName("diagram"),k=0;k<t.length;k++){var g=mxUtils.getTextContent(t[k]),h=this.stringToCells(this.editor.graph.decompress(g)),l=this.editor.graph.getBoundingBoxFromGeometry(h);C(h,new mxRectangle(0,0,l.width,l.height),a)}m=!0}catch(U){null!=window.console&&console.log("error in drop handler:",U)}}m||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=y&&null!=l&&(/(\.vsdx?)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?this.importVisio(y,function(a){v(a,"text/xml")},null,l):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,l)&&null!=y?this.parseFile(y,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?v(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":
+"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):v(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(n.style.border="3px solid transparent",n.style.cursor="");a.stopPropagation();a.preventDefault()}));h=h.cloneNode(!1);h.setAttribute("src",Editor.editImage);h.setAttribute("title",mxResources.get("edit"));t.insertBefore(h,t.firstChild);mxEvent.addListener(h,"click",J);mxEvent.addListener(n,
+"dblclick",function(a){mxEvent.getSource(a)==n&&J(a)});c=h.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",G);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
+mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}g.appendChild(t);g.style.paddingRight=18*t.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");
+if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?
+(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=
+5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",
+Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",
+Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display=
+"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var b=document.getElementById("geFooter");null!=b&&(this.footerHeight=a,b.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=
+!0;this.editor.graph.model.execute(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");
+a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=
+this.spinner.pause?this.spinner.pause():function(){},e=null!=a&&null!=a.error?a.error:a;if(null!=e||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var f=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=e)if(null!=e.retry&&(f=mxResources.get("cancel"),k=function(){d();e.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));
+else if(404==e.code||404==e.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var n=window.location.hash;null!=n&&"#G"==n.substring(0,2)&&(n=n.substring(2),a+=' <a href="https://drive.google.com/open?id='+n+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else e.code==App.ERROR_TIMEOUT?a=
+mxUtils.htmlEntities(mxResources.get("timeout")):e.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=e.message?a=mxUtils.htmlEntities(e.message):null!=e.response&&null!=e.response.error&&(a=mxUtils.htmlEntities(e.response.error));this.showError(b,a,f,c,k)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,g,h,l,m,t,y,E){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),d,e,g,h,E,l,m);this.showDialog(a.container,t||340,y||150,!0,!1);a.init()};EditorUi.prototype.alert=
+function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};
+EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));
+return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,e=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(e,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};
+EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.Blob&&navigator.msSaveOrOpenBlob)a=d?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height=
+"380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var f=document.createElement("a"),k=!mxClient.IS_SF&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var n=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),k=65==(n?parseInt(n[2],10):!1)?!1:k;if(k||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));k?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},
+0),f.click(),f.parentNode.removeChild(f)}catch(z){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),
+k=0;k<e;++k){for(var g=1024*k,h=Math.min(g+1024,d),t=Array(h-g),l=0;g<h;++l,++g)t[l]=c[g].charCodeAt(0);f[k]=new Uint8Array(t)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e,g,h){g=null!=g?g:!1;h=null!=h?h:"vsdx"!=e&&(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");
+null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,d);else e==App.MODE_DEVICE||"download"==e?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){try{this.exportFile(a,b,c,d,e,f)}catch(E){this.handleError(E)}}))}catch(y){this.handleError(y)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,h,null,1<e,4<e&&(!g||6>e)?3:4,
+a,c,d);this.showDialog(b.container,420,e==(mxClient.IS_IOS?0:1)?160:4<e?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+'"/></html>'),d.document.close())}else d=window.open("data:"+
+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=
+this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color=
+"#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var e=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});e.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,
+function(a){e.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+
+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,
+f){return this.createEchoRequest(c,a,d,e,b,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,e,g,h){h=null!=h?h:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,e){if("_blank"==e||null!=a&&0<a.length){var f=c("_blank"==e?null:a,e==App.MODE_DEVICE||"download"==e||null==e||"_blank"==e?"0":"1");null!=f&&(e==App.MODE_DEVICE||"download"==e||"_blank"==e?f.simulate(document,"_blank"):this.pickFolder(e,mxUtils.bind(this,
+function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,e,c)}catch(D){this.handleError(D)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,g,!0,e,c)}catch(D){this.handleError(D)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,h,null,1<f,4<f?3:4,d,g,e);this.showDialog(a.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,d,e,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,g,h,l,m){if(this.spinner.spin(document.body,
+mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f="#ffffff");var k=this.editor.graph.getSvg(f,a,h,l,null,c);d&&this.editor.graph.addSvgShadow(k);var n=this.getBaseFilename()+".svg",q=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,m));if(null!=this.editor.fontCss){var b=a.ownerDocument,b=null!=b.createElementNS?
+b.createElementNS(mxConstants.NS_SVG,"style"):b.createElement("style");b.setAttribute("type","text/css");mxUtils.setTextContent(b,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(b)}var d='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(n,"svg",d,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
+mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.convertMath(this.editor.graph,k,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(k,q,this.thumbImageCache)):q(k)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type","checkbox");c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled",
+"disabled");g&&(a.appendChild(f),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),e||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=f.getAttribute("disabled")&&(f.checked=!f.checked,mxEvent.consume(a))})));return f};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&
+(e=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));f.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");f.appendChild(d);a.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==
+f.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===f.value?"_blank":e:null},getEditInput:function(){return c},
+getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){k.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=f&&f!=mxConstants.NONE?"border:1px solid black;background-color:"+f:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft=
+"8px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value",
+"frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var f="#0000ff",k=null,k=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();k.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";a.appendChild(k);mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,g,h,l){var f=this.getCurrentFile(),k=[];d&&(k.push("lightbox=1"),"auto"!=a&&k.push("target="+a),null!=b&&b!=mxConstants.NONE&&k.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&k.push("edit="+encodeURIComponent(e)),g&&
+k.push("layers=1"),this.editor.graph.foldingEnabled&&k.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&k.push("page="+a);break}a=!0;null!=h?c="#U"+encodeURIComponent(h):(f=this.getCurrentFile(),l||null==f||f.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+f.getHash(),a=!1));
+a&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&k.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<k.length?"?"+k.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,g,h,l,m,t,y){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d);m||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;
+c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];h&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),f.resize=!0);l&&c.push("layers");0<c.length&&(m&&c.push("lightbox"),f.toolbar=c.join(" "));null!=t&&0<t.length&&(f.edit=t);null!=a?f.url=a:f.xml=this.getFileData(!0,null,null,null,null,!h);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(f))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";y(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var f=document.createElement("h3");
+mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(f);var k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");f=g.cloneNode(!0);f.setAttribute("value",
+"copy");k.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(n);mxUtils.br(k);k.appendChild(g);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));k.appendChild(n);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.setAttribute("href","javascript:void(0);"),mxUtils.write(n,mxResources.get("share")),
+k.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));f.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");e.appendChild(k);var h=this.addLinkSection(e),l=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight=
+"12px";m.value="100%";e.appendChild(m);var q=this.addCheckbox(e,mxResources.get("fit"),!0),k=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(e,mxResources.get("allPages"),k,!k),A=this.addCheckbox(e,mxResources.get("layers"),!0),C=this.addCheckbox(e,mxResources.get("lightbox"),!0),G=this.addEditButton(e,C),B=G.getEditInput();B.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?B.removeAttribute("disabled"):B.setAttribute("disabled","disabled");B.checked&&C.checked?
+G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,m.value,h.getTarget(),h.getColor(),q.checked,J.checked,A.checked,C.checked,G.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var k=document.createElement("h3");
+mxUtils.write(k,a||mxResources.get("link"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(k);var n=this.getCurrentFile(),k="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=n&&n.constructor==window.DriveFile&&!b){a=80;var k="https://desk.draw.io/support/solutions/articles/16000039384",t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var h=document.createElement("div");h.style.whiteSpace="normal";mxUtils.write(h,mxResources.get("linkAccountRequired"));t.appendChild(h);h=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(n.getId())}));h.style.marginTop="12px";h.className="geBtn";t.appendChild(h);f.appendChild(t);h=document.createElement("a");h.style.paddingLeft="12px";h.style.color="gray";h.style.fontSize="11px";h.setAttribute("href","javascript:void(0);");mxUtils.write(h,mxResources.get("check"));
+t.appendChild(h);mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,m=null;if(null!=c||null!=d)a+=30,mxUtils.write(f,mxResources.get("width")+":"),l=document.createElement("input"),
+l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",f.appendChild(l),mxUtils.write(f,mxResources.get("height")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.width="50px",m.style.marginLeft="6px",m.style.marginBottom="10px",m.value=d+"px",f.appendChild(m),mxUtils.br(f);var q=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var p=null;
+if(null==n||n.constructor!=window.DriveFile||b)p=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var u=this.addCheckbox(f,mxResources.get("lightbox"),!0),C=this.addEditButton(f,u),G=C.getEditInput(),B=this.addCheckbox(f,mxResources.get("layers"),!0);B.style.marginLeft=G.style.marginLeft;B.style.marginBottom="16px";B.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(B.removeAttribute("disabled"),G.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),G.setAttribute("disabled",
+"disabled"));G.checked&&u.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(q.getTarget(),q.getColor(),null==p?!0:p.checked,u.checked,C.getLink(),B.checked,null!=l?l.value:null,null!=m?m.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():
+document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";e.appendChild(f);var k=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),
+!0),f=this.editor.graph,n=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!k.checked,null!=g?g.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e,g,h,l){h=null!=h?h:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var k=
+this.editor.graph,n="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(m);mxUtils.write(f,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";f.appendChild(q);mxUtils.write(f,mxResources.get("borderWidth")+":");
+var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";f.appendChild(v);mxUtils.br(f);var p=this.addCheckbox(f,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background,null,null,"jpeg"!=l),u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,k.isSelectionEmpty()),w=document.createElement("input");w.style.marginTop="16px";w.style.marginRight=
+"8px";w.style.marginLeft="24px";w.setAttribute("disabled","disabled");w.setAttribute("type","checkbox");g&&(f.appendChild(w),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),n+=26,mxEvent.addListener(u,"change",function(){u.checked?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}));k.isSelectionEmpty()||(w.setAttribute("checked","checked"),w.defaultChecked=!0);var G=this.addCheckbox(f,mxResources.get("shadow"),k.shadowVisible),B=document.createElement("input");B.style.marginTop=
+"16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");b&&(f.appendChild(B),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),n+=26);var L=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),h,null,null,"jpeg"!=l),H=null!=this.pages&&1<this.pages.length,F=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=l);F.style.marginLeft="24px";F.style.marginBottom="16px";H||(F.style.visibility=
+"hidden");mxEvent.addListener(L,"change",function(){L.checked&&H?F.removeAttribute("disabled"):F.setAttribute("disabled","disabled")});h&&H||F.setAttribute("disabled","disabled");a=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=q.value;e(q.value,p.checked,!u.checked,G.checked,L.checked,B.checked,v.value,w.checked,!F.checked)}),null,c,d);this.showDialog(a.container,340,n,!0,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
+mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var k=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(g)}var n=this.addCheckbox(f,mxResources.get("fit"),!0),t=this.addCheckbox(f,mxResources.get("shadow"),k.shadowVisible&&d,
+!d),h=this.addCheckbox(f,c),l=this.addCheckbox(f,mxResources.get("lightbox"),!0),m=this.addEditButton(f,l),q=m.getEditInput(),u=1<k.model.getChildCount(k.model.getRoot()),A=this.addCheckbox(f,mxResources.get("layers"),u,!u);A.style.marginLeft=q.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked?(u&&A.removeAttribute("disabled"),q.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));
+q.checked&&l.checked?m.getEditSelect().removeAttribute("disabled"):m.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){a(n.checked,t.checked,h.checked,l.checked,m.getLink(),A.checked)}),null,mxResources.get("embed"),e);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,e,g,h,l){function f(b){var f=" ",n="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;");a&&(n+="max-width:100%;");var t="";c&&(t=' width="'+Math.round(k.width)+'" height="'+Math.round(k.height)+'"');h('<img src="'+b+'"'+t+(""!=n?' style="'+n+'"':"")+f+"/>")}var k=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");f(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),
+null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),k.width*k.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var n="";c&&(n="&w="+Math.round(2*k.width)+"&h="+Math.round(2*k.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+n+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?f("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,c,d,e,g,h){var f=this.editor.graph.getSvg(),k=f.getElementsByTagName("a");if(null!=k)for(var n=0;n<k.length;n++){var l=k[n].getAttribute("href");null!=l&&"#"==l.charAt(0)&&"_blank"==k[n].getAttribute("target")&&k[n].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(f);if(c){var m=" ",q="";d&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",q+="cursor:pointer;");a&&(q+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(a){h('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=q?' style="'+q+'"':"")+m+"/>")}))}else q="",d&&(f.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),a&&(a=parseInt(f.getAttribute("width")),b=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+a+" "+b),q+="max-width:100%;max-height:"+b+"px;",f.removeAttribute("height")),""!=q&&f.setAttribute("style",q),h(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+
 " "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<
diff --git a/src/main/webapp/js/atlas-viewer.min.js b/src/main/webapp/js/atlas-viewer.min.js
index fb28051d4..159768f1d 100644
--- a/src/main/webapp/js/atlas-viewer.min.js
+++ b/src/main/webapp/js/atlas-viewer.min.js
@@ -501,19 +501,19 @@ mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.pro
 mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
 mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
 mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
-mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);b.outline&&null!=b.style&&1!=mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||this.drawChildren(a,b,c,d,e,
-f,this.fgNode,g,!0)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l),c=c.nextSibling};
+mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,
+0))};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l,m){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l,m),c=c.nextSibling};
 mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling;else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
-m);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*m,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,b=Number(b)/100,b=Math.min(n*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
-mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
-mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,k=d.x,l=d.y,m=d.width,n=d.height,p=Math.min(m,n);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e,f),c=c.nextSibling;else if("close"==g)a.close();else if("move"==g)a.moveTo(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("line"==g)a.lineTo(k+Number(c.getAttribute("x"))*m,l+
+Number(c.getAttribute("y"))*n);else if("quad"==g)a.quadTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n);else if("curve"==g)a.curveTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n,k+Number(c.getAttribute("x3"))*m,l+Number(c.getAttribute("y3"))*n);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*m,Number(c.getAttribute("ry"))*
+n,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("rect"==g)a.rect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*
+n,b=Number(b)/100,b=Math.min(p*b,d*b),a.roundrect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,p,d,b,b);else if("ellipse"==g)a.ellipse(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),
+"1"==c.getAttribute("flipV")));else if("text"==g){if(!b.outline){p=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){f=b.rotation;var q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-f:q||b?d+f:d-f}d-=c.getAttribute("rotation");a.text(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,0,0,p,c.getAttribute("align")||"left",c.getAttribute("valign")||
+"top",!1,"",null,!1,d)}}else if("include-shape"==g)f=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=f&&(k+=Number(c.getAttribute("x"))*m,l+=Number(c.getAttribute("y"))*n,p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*n,f.drawShape(a,b,k,l,p,d));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)m="1"==c.getAttribute("fixed")?1:p,a.setStrokeWidth(Number(c.getAttribute("width"))*m);else if("dashed"==
+g)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");m=[];for(n=0;n<c.length;n++)0<c[n].length&&m.push(Number(c[n])*p);c=m.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):
+"alpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*p);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
+mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;
+mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
 mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
 mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
 mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -2716,131 +2716,131 @@ length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiT
 "10px",e.style.zIndex=2E9,e.style.left=Math.max(0,a)+"px",e.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(e.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(e.style,"boxShadow","2px 2px 3px 0px #ddd"),e.innerHTML=g+"...",c.appendChild(e),d.status=e,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(e.style.left=Math.round(Math.max(0,a-e.offsetWidth/2))+"px",e.style.top=Math.round(Math.max(0,
 b+70-e.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,g)}));this.stop();return a}),e=!0);return e};var g=d.stop;d.stop=function(){g.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,d){var b=g;g+=d;return a.substring(b,g)}function f(a){a=d(a,4);return a.charCodeAt(3)+
 (a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var g=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=f(a);var e=d(a,4);if(null!=b&&b(g-8,e,c))break;value=d(a,c);d(a,4);if("IEND"==e)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var d=mxUtils.parseXml(a),b=this.editor.extractGraphModel(d.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(m){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(d),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages),b=null!=h?mxUtils.getXml(h):""}catch(n){}return b};EditorUi.prototype.validateFileData=
-function(a){if(null!=a&&0<a.length){var d=a.indexOf('<meta charset="utf-8">');0<=d&&(a=a.slice(0,d)+'<meta charset="utf-8"/>'+a.slice(d+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var d=null!=a?this.editor.extractGraphModel(a,!0):null;null!=d&&(a=d);if(null!=a){d=this.editor.graph;d.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");
-if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=c.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(c[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));d.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
-this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,r,h,n,u,k,t){b=null!=b?b:this.editor.graph;r=null!=r?r:!1;k=null!=k?k:!0;var d,f=null;null==c||
-c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?d="_blank":f=d=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var m=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(m);if(b.decompress(g)!=m)return m;m=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(m,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(m)}t?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",
-navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(n||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!r&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,k,f);return a};EditorUi.prototype.getXmlFileData=
-function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d)));mxUtils.setTextContent(this.currentPage.node,c);d=this.fileNode.cloneNode(!1);if(b)d.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(c=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),
-e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,r,h,n,u,k){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=h?h:!1);k=null!=k?k:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=k&&/(\.svg)$/i.test(k.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());
-var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(n,h,k,window.location.href,a,b,c,e,r,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=function(a,b,c,e,r,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():
-b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=
-r&&(r=r.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?
-'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
-"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,r){null!=r&&(r=r.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
-">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==r?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=
-d;this.pages=[];for(d=0;d<a.length;d++){var b=new DiagramPage(a[d]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];d=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=d&&(this.fileNode=d.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(d.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&
-0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(a,b,c,e,r,h,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!r),f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,
-a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(d,b){try{var c=this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b,n);this.editor.graph.pageVisible=c;return f}catch(z){this.handleError(z)}}));else{var m=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",
-a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var l=this.editor.graph.background;if(n||l==mxConstants.NONE)l=null;var q=this.editor.graph.getSvg(l,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(a))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(B){this.handleError(B)}};EditorUi.prototype.createDownloadRequest=function(a,b,c,e,r){var d=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var f="";if(d.width*d.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};d="0";if("xmlpng"==b&&(d="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=
-0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE);return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+d+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=
-null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,
-h=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){d===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),n()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),n=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",
-mxUtils.bind(this,function(){n();h()}));n();h()}null!=b&&b()});if(null!=a.url){var e=a.url;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f(a.data)};EditorUi.prototype.updateDiagram=function(a){function d(a){var d=new mxCellOverlay(a.image||c.warningImage,a.tooltip,a.align,a.valign,a.offset);d.addListener(mxEvent.CLICK,function(d,b){editorUi.alert(a.tooltip)});
-return d}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var c=this.editor.graph,e=c.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var k=a.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(n,l);else for(var t=l.attributes,x=0;x<t.length;x++)c.setAttributeForCell(n,
-t[x].nodeName,0<t[x].nodeValue.length?t[x].nodeValue:null)}}catch(z){null!=window.console&&console.log("Error in value for "+n.id+": "+z)}try{var q=a.getAttribute("style");null!=q&&c.model.setStyle(n,q)}catch(z){null!=window.console&&console.log("Error in style for "+n.id+": "+z)}try{var p=a.getAttribute("icon");if(null!=p){var v=0<p.length?JSON.parse(p):null;null!=v&&v.append||c.removeCellOverlays(n);null!=v&&c.addCellOverlay(n,d(v))}}catch(z){null!=window.console&&console.log("Error in icon for "+
-n.id+": "+z)}try{var B=a.getAttribute("geometry");if(null!=B){var B=JSON.parse(B),y=c.getCellGeometry(n);if(null!=y){y=y.clone();for(key in B){var C=parseFloat(B[key]);"dx"==key?y.x+=C:"dy"==key?y.y+=C:"dw"==key?y.width+=C:"dh"==key?y.height+=C:y[key]=parseFloat(B[key])}c.model.setGeometry(n,y)}}}catch(z){null!=window.console&&console.log("Error in icon for "+n.id+": "+z)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=
-I&&(new mxCodec(a.firstChild)).decode(I,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(c.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))c.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};
-EditorUi.prototype.fileLoaded=function(a){var d=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&
-0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();
-this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();
-this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&
-!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?
-window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):c()}))}else c();return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=
-function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,r,h,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=
-function(a){var d=mxUtils.createXmlDocument(),b=d.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));d.appendChild(b);return mxUtils.getXml(d)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var d=this.sidebar.palettes[a];if(null!=d){for(var b=0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);
-delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var d=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:d.firstChild.nextSibling.nextSibling;var b=d.lastChild,c=b.previousSibling;d.insertBefore(b,a);d.insertBefore(c,b)};EditorUi.prototype.loadLibrary=function(a){var d=mxUtils.parseXml(a.getData());if("mxlibrary"==d.documentElement.nodeName){var b=
-JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(a,b,d.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:
-null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(d,b){if(0==d.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f);else for(var c=0;c<d.length;c++){var e=d[c],g=e.data;if(null!=g){var g=this.convertDataUri(g),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";
-"fixed"==e.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+"image="+g,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(g=this.stringToCells(this.editor.graph.decompress(e.xml)),0<g.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var d=a.data;null!=d&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){d=
-this.convertDataUri(d);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+d,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var d=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:
-a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var l=k.parentNode.previousSibling;c=l.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");l.style.position=
-"relative";var x=document.createElement("img");x.setAttribute("src",Dialog.prototype.closeImage);x.setAttribute("title",mxResources.get("close"));x.setAttribute("valign","absmiddle");x.setAttribute("border","0");x.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(x),mxEvent.addListener(x,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),
-null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var p=this.editor.graph,v=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),y=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v),v=x.cloneNode(!1),v.setAttribute("src",Editor.spinImage),v.setAttribute("title",mxResources.get("saving")),v.style.cursor="default",
-v.style.marginRight="2px",v.style.marginTop="-2px",t.insertBefore(v,t.firstChild),l.style.paddingRight=18*t.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=v&&null!=v.parentNode&&(v.parentNode.removeChild(v),l.style.paddingRight=18*t.childNodes.length+"px")})):null==q&&(q=x.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),t.insertBefore(q,t.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,
-function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(l.style.paddingRight=18*t.childNodes.length+"px",q.parentNode.removeChild(q),q=null)});mxEvent.consume(d)})),l.style.paddingRight=18*t.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,d,c,e){a=p.cloneCells(mxUtils.sortCells(p.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var h=p.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,
-d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);y(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=mxUtils.bind(this,function(a){if(p.isSelectionEmpty())p.getRubberband().isActive()?(p.getRubberband().execute(a),p.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=
-p.getSelectionCells(),b=p.view.getBounds(d),c=p.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=p.view.translate.x;b.y-=p.view.translate.y;C(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",
-k.style.cursor="copy",p.panningManager.stop(),p.autoScroll=!1,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!1),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,p.panningManager.stop(),p.graphHandler.reset(),
-p.isMouseDown=!1,p.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",p.autoScroll=!0,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!0),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&
-(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,
-0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,n,m,r,t,u){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,m),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,n,m),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var l=!1,q=mxUtils.bind(this,function(d,
-c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);y(a);this.spinner.stop();l=!0}catch(T){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),g=0;g<n.length;g++){var h=mxUtils.getTextContent(n[g]),m=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(m);C(m,new mxRectangle(0,
-0,r.width,r.height),a)}l=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=r&&(/(\.vsdx?)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(u,function(a){q(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,r)&&null!=u?this.parseFile(u,
-mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?q(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):q(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",k.style.cursor="");a.stopPropagation();a.preventDefault()}));
-x=x.cloneNode(!1);x.setAttribute("src",Editor.editImage);x.setAttribute("title",mxResources.get("edit"));t.insertBefore(x,t.firstChild);mxEvent.addListener(x,"click",B);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=x.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),
-c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}l.appendChild(t);l.style.paddingRight=18*t.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=
-64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top=
-"-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=
-3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=
-null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage=
-"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};
-EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,r){a=new ImageDialog(this,a,b,c,e,r);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
-!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,r){a=new LibraryDialog(this,a,b,c,e,r);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==
-this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,
-function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){d();f.retry()}),"undefined"!=
-typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),
-a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=f.message?a=mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error&&(a=mxUtils.htmlEntities(f.response.error));this.showError(b,a,e,c,g)}else null!=c&&c()};EditorUi.prototype.showError=
-function(a,b,c,e,r,h,n,k,l,t,q,p){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),e,r,h,n,p,k,l);this.showDialog(a.container,t||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,r){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=
-b&&b()},function(){d();null!=c&&c()},e,r)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,
-b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,f=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(f,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&
-(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,r){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),
-c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var d=document.createElement("a"),f=!mxClient.IS_SF&&"undefined"!==typeof d.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],
-10):!1)?!1:f;if(f||this.isOffline()){d.href=URL.createObjectURL(e?this.base64ToBlob(a,c):new Blob([a],{type:c}));f?d.download=b:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},0),d.click(),d.parentNode.removeChild(d)}catch(w){}}else this.createEchoRequest(a,b,c,e,r).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,r,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=
-c?"&mime="+c:"")+(null!=r?"&format="+r:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),n=0;n<f;++n){for(var k=1024*n,l=Math.min(k+1024,c),t=Array(l-k),q=0;k<l;++q,++k)t[q]=d[k].charCodeAt(0);e[n]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,k,h,n){h=null!=h?h:!1;n=null!=n?n:"vsdx"!=k&&
-(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,
-mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(F){this.handleError(F)}}))}catch(x){this.handleError(x)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,h,n,null,1<k,4<k&&(!h||6>k)?3:4,a,c,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=
-window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+'"/></html>'),d.document.close())}else d=window.open("data:"+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=
-null;var d=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var c=d.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign=
-"center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=c.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.exportDialog.style.zIndex=c.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var d=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";
-a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",d);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(d.substring(d.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),
-Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,k){this.isLocalFileSave()?this.saveLocalFile(c,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,d){return this.createEchoRequest(c,a,e,k,b,d)}),c,k,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,k,h,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=
-a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(D){this.handleError(D)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&
-299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(D){this.handleError(D)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,4<d?3:4,e,h,k);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,c,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,k,h,n,u,l){if(this.spinner.spin(document.body,mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,n,u,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",
-m=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,l));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(d)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,m,this.thumbImageCache)):m(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,k,h){h=null!=h?h:!0;var d=
-document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled","disabled");h&&(a.appendChild(d),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),k||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=d.getAttribute("disabled")&&(d.checked=!d.checked,mxEvent.consume(a))})));return d};EditorUi.prototype.addEditButton=
-function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("makeCopy"));e.appendChild(c);c=document.createElement("option");
-c.setAttribute("value","custom");mxUtils.write(c,mxResources.get("custom")+"...");e.appendChild(c);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==b||
-b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return d.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function d(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var c=document.createElement("select");c.style.width="100px";c.style.marginLeft="8px";c.style.marginRight="10px";c.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));c.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));c.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),c.appendChild(f));a.appendChild(c);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;d()});mxEvent.consume(a)}));d();n.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return c.value},focus:function(){c.focus()}}};EditorUi.prototype.createLink=function(a,b,c,e,k,h,n,u){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+
-a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);break}a=!0;null!=n?c="#U"+encodeURIComponent(n):(d=this.getCurrentFile(),u||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?
-this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,
-b,c,e,k,h,n,u,l,t,q){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==e&&(d.target=e);l||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];n&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),d.resize=!0);u&&c.push("layers");0<c.length&&(l&&c.push("lightbox"),d.toolbar=c.join(" "));null!=t&&0<t.length&&(d.edit=t);null!=
-a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+
-'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
-m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");f=m.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));g.appendChild(k);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(k=
-document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));f.setAttribute("checked","checked");null==c&&m.setAttribute("disabled","disabled");d.appendChild(g);var l=this.addLinkSection(d),q=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,
-":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight="12px";p.value="100%";d.appendChild(p);var v=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),y=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),I=this.addEditButton(d,C),z=I.getEditInput();
-z.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?z.removeAttribute("disabled"):z.setAttribute("disabled","disabled");z.checked&&C.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(m.checked?c:null,q.checked,p.value,l.getTarget(),l.getColor(),v.checked,B.checked,y.checked,C.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};
-EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,k,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",
-m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));m.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";m.appendChild(r);d.appendChild(m);r=document.createElement("a");
-r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));m.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));
-this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,q=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",d.appendChild(l),mxUtils.write(d,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",
-q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",d.appendChild(q),mxUtils.br(d);var p=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var B=null;if(null==g||g.constructor!=window.DriveFile||b)B=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var v=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,v),I=C.getEditInput(),z=this.addCheckbox(d,mxResources.get("layers"),!0);z.style.marginLeft=I.style.marginLeft;z.style.marginBottom="16px";
-z.style.marginTop="8px";mxEvent.addListener(v,"change",function(){v.checked?(z.removeAttribute("disabled"),I.removeAttribute("disabled")):(z.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"));I.checked&&v.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==B?!0:B.checked,v.checked,C.getLink(),z.checked,null!=l?l.value:null,null!=
-q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-d.appendChild(f);var g=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),m=e?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,k=e?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,d,mxUtils.bind(this,function(){c(!g.checked,null!=m?m.checked:!1,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,
-300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,e,k,h,n,l){n=null!=n?n:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width=
-"60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";d.appendChild(r);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var q=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=
-l),p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.style.marginLeft="24px";v.setAttribute("disabled","disabled");v.setAttribute("type","checkbox");h&&(d.appendChild(v),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(p,"change",function(){p.checked?v.removeAttribute("disabled"):v.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(v.setAttribute("checked",
-"checked"),v.defaultChecked=!0);var I=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible),z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||z.setAttribute("disabled","disabled");b&&(d.appendChild(z),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var N=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=l),E=null!=this.pages&&1<this.pages.length,
-J=this.addCheckbox(d,E?mxResources.get("allPages"):"",E,!E,null,"jpeg"!=l);J.style.marginLeft="24px";J.style.marginBottom="16px";E||(J.style.visibility="hidden");mxEvent.addListener(N,"change",function(){N.checked&&E?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")});n&&E||J.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=r.value;k(r.value,q.checked,!p.checked,I.checked,N.checked,z.checked,
-u.value,v.checked,!J.checked)}),null,c,e);this.showDialog(a.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-d.appendChild(g)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),r=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(d,c),q=this.addCheckbox(d,mxResources.get("lightbox"),!0),p=this.addEditButton(d,q),v=p.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),y=this.addCheckbox(d,mxResources.get("layers"),B,!B);y.style.marginLeft=v.style.marginLeft;y.style.marginBottom="12px";y.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?
-(B&&y.removeAttribute("disabled"),v.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"));v.checked&&q.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(m.checked,r.checked,l.checked,q.checked,p.getLink(),y.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
-function(a,b,c,e,k,h,n,l){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");
-a&&(g+="max-width:100%;");var m="";c&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+d+'"'+m+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),
-f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?d("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
-b,c,e,k,h,n){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var m=f[g].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var r=" ",l="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(d),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!=
+h?mxUtils.getXml(h):""}catch(n){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var d=a.indexOf('<meta charset="utf-8">');0<=d&&(a=a.slice(0,d)+'<meta charset="utf-8"/>'+a.slice(d+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var d=null!=a?this.editor.extractGraphModel(a,!0):null;null!=d&&(a=d);if(null!=a){d=this.editor.graph;d.model.beginUpdate();
+try{var b=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=c.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(c[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));d.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),
+this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,r,h,n,u,k,t){b=null!=
+b?b:this.editor.graph;r=null!=r?r:!1;k=null!=k?k:!0;var d,f=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?d="_blank":f=d=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var m=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(m);if(b.decompress(g)!=m)return m;m=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(m,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(m)}t?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"),
+g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(n||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!r&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
+App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,k,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d)));mxUtils.setTextContent(this.currentPage.node,c);d=this.fileNode.cloneNode(!1);if(b)d.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;
+this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(c=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,r,h,n,u,k){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=h?h:!1);k=null!=k?k:this.getCurrentFile();h=this.editor.graph;
+if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=k&&/(\.svg)$/i.test(k.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(n,h,k,window.location.href,a,b,c,e,r,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};
+EditorUi.prototype.getHtml=function(a,b,c,e,r,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom",
+"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=r&&(r=r.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
+">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>':
+'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,r){null!=r&&(r=r.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,
+this.currentPage));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==r?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?
+mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=d;this.pages=[];for(d=0;d<a.length;d++){var b=new DiagramPage(a[d]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];d=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=d&&(this.fileNode=d.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(d.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var d=this.getCurrentFile(),d=null!=d&&null!=
+d.getTitle()?d.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(a,b,c,e,r,h,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!r),
+f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(d,b){try{var c=
+this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b,n);this.editor.graph.pageVisible=c;return f}catch(z){this.handleError(z)}}));else{var m=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var l=this.editor.graph.background;if(n||l==
+mxConstants.NONE)l=null;var q=this.editor.graph.getSvg(l,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(B){this.handleError(B)}};
+EditorUi.prototype.createDownloadRequest=function(a,b,c,e,r){var d=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var f="";if(d.width*d.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};d="0";if("xmlpng"==b&&(d="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE);
+return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+d+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,h=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(a){d===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),n()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),n=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){n();h()}));n();h()}null!=b&&b()});if(null!=a.url){var e=a.url;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&
+(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f(a.data)};EditorUi.prototype.updateDiagram=function(a){function d(a){var d=new mxCellOverlay(a.image||c.warningImage,a.tooltip,a.align,a.valign,a.offset);d.addListener(mxEvent.CLICK,function(d,b){editorUi.alert(a.tooltip)});return d}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var c=
+this.editor.graph,e=c.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var k=a.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(n,l);else for(var t=l.attributes,x=0;x<t.length;x++)c.setAttributeForCell(n,t[x].nodeName,0<t[x].nodeValue.length?t[x].nodeValue:null)}}catch(z){null!=window.console&&console.log("Error in value for "+
+n.id+": "+z)}try{var q=a.getAttribute("style");null!=q&&c.model.setStyle(n,q)}catch(z){null!=window.console&&console.log("Error in style for "+n.id+": "+z)}try{var p=a.getAttribute("icon");if(null!=p){var v=0<p.length?JSON.parse(p):null;null!=v&&v.append||c.removeCellOverlays(n);null!=v&&c.addCellOverlay(n,d(v))}}catch(z){null!=window.console&&console.log("Error in icon for "+n.id+": "+z)}try{var B=a.getAttribute("geometry");if(null!=B){var B=JSON.parse(B),y=c.getCellGeometry(n);if(null!=y){y=y.clone();
+for(key in B){var C=parseFloat(B[key]);"dx"==key?y.x+=C:"dy"==key?y.y+=C:"dw"==key?y.width+=C:"dh"==key?y.height+=C:y[key]=parseFloat(B[key])}c.model.setGeometry(n,y)}}}catch(z){null!=window.console&&console.log("Error in icon for "+n.id+": "+z)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(c.view.scale=parseFloat(a.getAttribute("scale"))),
+a.hasAttribute("dx")||a.hasAttribute("dy"))c.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};EditorUi.prototype.fileLoaded=function(a){var d=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),
+b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));
+this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=
+App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+
+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):c()}))}else c();return d};EditorUi.prototype.descriptorChanged=
+function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,r,h,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=
+function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var d=mxUtils.createXmlDocument(),b=d.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));d.appendChild(b);return mxUtils.getXml(d)};EditorUi.prototype.closeLibrary=function(a){null!=
+a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var d=this.sidebar.palettes[a];if(null!=d){for(var b=0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var d=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=
+this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:d.firstChild.nextSibling.nextSibling;var b=d.lastChild,c=b.previousSibling;d.insertBefore(b,a);d.insertBefore(c,b)};EditorUi.prototype.loadLibrary=function(a){var d=mxUtils.parseXml(a.getData());if("mxlibrary"==d.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(a,b,d.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};
+EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(d,b){if(0==d.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,
+"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f);else for(var c=0;c<d.length;c++){var e=d[c],g=e.data;if(null!=g){var g=this.convertDataUri(g),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+"image="+g,e.w,e.h,"",e.title||"",!1,
+!1,!0))}else null!=e.xml&&(g=this.stringToCells(this.editor.graph.decompress(e.xml)),0<g.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var d=a.data;null!=d&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){d=this.convertDataUri(d);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+=
+"aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+d,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var d=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var l=
+k.parentNode.previousSibling;c=l.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");l.style.position="relative";var x=document.createElement("img");x.setAttribute("src",Dialog.prototype.closeImage);x.setAttribute("title",
+mxResources.get("close"));x.setAttribute("valign","absmiddle");x.setAttribute("border","0");x.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(x),mxEvent.addListener(x,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var p=
+this.editor.graph,v=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),y=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v),v=x.cloneNode(!1),v.setAttribute("src",Editor.spinImage),v.setAttribute("title",mxResources.get("saving")),v.style.cursor="default",v.style.marginRight="2px",v.style.marginTop="-2px",t.insertBefore(v,t.firstChild),l.style.paddingRight=18*t.childNodes.length+
+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=v&&null!=v.parentNode&&(v.parentNode.removeChild(v),l.style.paddingRight=18*t.childNodes.length+"px")})):null==q&&(q=x.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),t.insertBefore(q,t.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||
+(l.style.paddingRight=18*t.childNodes.length+"px",q.parentNode.removeChild(q),q=null)});mxEvent.consume(d)})),l.style.paddingRight=18*t.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,d,c,e){a=p.cloneCells(mxUtils.sortCells(p.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var h=p.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
+w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);y(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=mxUtils.bind(this,function(a){if(p.isSelectionEmpty())p.getRubberband().isActive()?(p.getRubberband().execute(a),p.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=p.getSelectionCells(),b=p.view.getBounds(d),c=p.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=p.view.translate.x;
+b.y-=p.view.translate.y;C(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",p.panningManager.stop(),p.autoScroll=!1,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!1),
+null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,p.panningManager.stop(),p.graphHandler.reset(),p.isMouseDown=!1,p.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){p.isMouseDown&&
+null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",p.autoScroll=!0,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!0),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";
+a.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,n,m,r,t,u){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+
+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,m),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,n,m),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var l=!1,q=mxUtils.bind(this,function(d,c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);y(a);
+this.spinner.stop();l=!0}catch(T){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),g=0;g<n.length;g++){var h=mxUtils.getTextContent(n[g]),m=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(m);C(m,new mxRectangle(0,0,r.width,r.height),a)}l=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=r&&(/(\.vsdx?)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(u,function(a){q(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,r)&&null!=u?this.parseFile(u,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?q(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":
+"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):q(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",k.style.cursor="");a.stopPropagation();a.preventDefault()}));x=x.cloneNode(!1);x.setAttribute("src",Editor.editImage);x.setAttribute("title",mxResources.get("edit"));t.insertBefore(x,t.firstChild);mxEvent.addListener(x,"click",B);mxEvent.addListener(k,
+"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=x.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
+mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}l.appendChild(t);l.style.paddingRight=18*t.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");
+if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?
+(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=
+5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",
+Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",
+Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display=
+"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,r){a=new ImageDialog(this,a,b,c,e,r);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=
+!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,r){a=new LibraryDialog(this,a,b,c,e,r);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");
+a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=
+this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){d();f.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));
+else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else f.code==App.ERROR_TIMEOUT?a=
+mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=f.message?a=mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error&&(a=mxUtils.htmlEntities(f.response.error));this.showError(b,a,e,c,g)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,e,r,h,n,k,l,t,q,p){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),e,r,h,n,p,k,l);this.showDialog(a.container,t||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=
+function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,r){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},function(){d();null!=c&&c()},e,r)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};
+EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));
+return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,f=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(f,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};
+EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,r){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height=
+"380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var d=document.createElement("a"),f=!mxClient.IS_SF&&"undefined"!==typeof d.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],10):!1)?!1:f;if(f||this.isOffline()){d.href=URL.createObjectURL(e?this.base64ToBlob(a,c):new Blob([a],{type:c}));f?d.download=b:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},
+0),d.click(),d.parentNode.removeChild(d)}catch(w){}}else this.createEchoRequest(a,b,c,e,r).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,r,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=r?"&format="+r:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),
+n=0;n<f;++n){for(var k=1024*n,l=Math.min(k+1024,c),t=Array(l-k),q=0;k<l;++q,++k)t[q]=d[k].charCodeAt(0);e[n]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,k,h,n){h=null!=h?h:!1;n=null!=n?n:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");
+null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(F){this.handleError(F)}}))}catch(x){this.handleError(x)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,h,n,null,1<k,4<k&&(!h||6>k)?3:4,
+a,c,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+'"/></html>'),d.document.close())}else d=window.open("data:"+
+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var d=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=
+this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var c=d.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color=
+"#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=c.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=c.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,
+function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var d=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",d);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(d.substring(d.indexOf(",")+
+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,k){this.isLocalFileSave()?this.saveLocalFile(c,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,
+d){return this.createEchoRequest(c,a,e,k,b,d)}),c,k,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,k,h,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,
+function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(D){this.handleError(D)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(D){this.handleError(D)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,4<d?3:4,e,h,k);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,k,h,n,u,l){if(this.spinner.spin(document.body,
+mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,n,u,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",m=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,l));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?
+d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(d)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
+mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,m,this.thumbImageCache)):m(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,k,h){h=null!=h?h:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled",
+"disabled");h&&(a.appendChild(d),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),k||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=d.getAttribute("disabled")&&(d.checked=!d.checked,mxEvent.consume(a))})));return d};EditorUi.prototype.addEditButton=function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&
+(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("makeCopy"));e.appendChild(c);c=document.createElement("option");c.setAttribute("value","custom");mxUtils.write(c,mxResources.get("custom")+"...");e.appendChild(c);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==
+e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return d.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return d},
+getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function d(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var c=document.createElement("select");c.style.width="100px";c.style.marginLeft=
+"8px";c.style.marginRight="10px";c.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));c.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value",
+"frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),c.appendChild(f));a.appendChild(c);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;d()});mxEvent.consume(a)}));d();n.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return c.value},focus:function(){c.focus()}}};EditorUi.prototype.createLink=function(a,b,c,e,k,h,n,u){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&
+f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);break}a=!0;null!=n?c="#U"+encodeURIComponent(n):(d=this.getCurrentFile(),u||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));
+a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,e,k,h,n,u,l,t,q){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==e&&(d.target=e);l||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;
+c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];n&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),d.resize=!0);u&&c.push("layers");0<c.length&&(l&&c.push("lightbox"),d.toolbar=c.join(" "));null!=t&&0<t.length&&(d.edit=t);null!=a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");
+mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");f=m.cloneNode(!0);f.setAttribute("value",
+"copy");g.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));g.appendChild(k);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),
+g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));f.setAttribute("checked","checked");null==c&&m.setAttribute("disabled","disabled");d.appendChild(g);var l=this.addLinkSection(d),q=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight=
+"12px";p.value="100%";d.appendChild(p);var v=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),y=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),I=this.addEditButton(d,C),z=I.getEditInput();z.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?z.removeAttribute("disabled"):z.setAttribute("disabled","disabled");z.checked&&C.checked?
+I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(m.checked?c:null,q.checked,p.value,l.getTarget(),l.getColor(),v.checked,B.checked,y.checked,C.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,k,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");
+mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));m.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";m.appendChild(r);d.appendChild(m);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));
+m.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,q=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),l=document.createElement("input"),
+l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",d.appendChild(l),mxUtils.write(d,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",d.appendChild(q),mxUtils.br(d);var p=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var B=null;
+if(null==g||g.constructor!=window.DriveFile||b)B=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var v=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,v),I=C.getEditInput(),z=this.addCheckbox(d,mxResources.get("layers"),!0);z.style.marginLeft=I.style.marginLeft;z.style.marginBottom="16px";z.style.marginTop="8px";mxEvent.addListener(v,"change",function(){v.checked?(z.removeAttribute("disabled"),I.removeAttribute("disabled")):(z.setAttribute("disabled","disabled"),I.setAttribute("disabled",
+"disabled"));I.checked&&v.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==B?!0:B.checked,v.checked,C.getLink(),z.checked,null!=l?l.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():
+document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(f);var g=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),m=e?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),
+!0),f=this.editor.graph,k=e?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,d,mxUtils.bind(this,function(){c(!g.checked,null!=m?m.checked:!1,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,e,k,h,n,l){n=null!=n?n:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=
+this.editor.graph,g="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";d.appendChild(r);mxUtils.write(d,mxResources.get("borderWidth")+":");
+var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var q=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight=
+"8px";v.style.marginLeft="24px";v.setAttribute("disabled","disabled");v.setAttribute("type","checkbox");h&&(d.appendChild(v),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(p,"change",function(){p.checked?v.removeAttribute("disabled"):v.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(v.setAttribute("checked","checked"),v.defaultChecked=!0);var I=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible),z=document.createElement("input");z.style.marginTop=
+"16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||z.setAttribute("disabled","disabled");b&&(d.appendChild(z),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var N=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=l),E=null!=this.pages&&1<this.pages.length,J=this.addCheckbox(d,E?mxResources.get("allPages"):"",E,!E,null,"jpeg"!=l);J.style.marginLeft="24px";J.style.marginBottom="16px";E||(J.style.visibility=
+"hidden");mxEvent.addListener(N,"change",function(){N.checked&&E?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")});n&&E||J.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=r.value;k(r.value,q.checked,!p.checked,I.checked,N.checked,z.checked,u.value,v.checked,!J.checked)}),null,c,e);this.showDialog(a.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
+mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(g)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),r=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,
+!e),l=this.addCheckbox(d,c),q=this.addCheckbox(d,mxResources.get("lightbox"),!0),p=this.addEditButton(d,q),v=p.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),y=this.addCheckbox(d,mxResources.get("layers"),B,!B);y.style.marginLeft=v.style.marginLeft;y.style.marginBottom="12px";y.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(B&&y.removeAttribute("disabled"),v.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"));
+v.checked&&q.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(m.checked,r.checked,l.checked,q.checked,p.getLink(),y.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,e,k,h,n,l){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");a&&(g+="max-width:100%;");var m="";c&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+d+'"'+m+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),
+null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?d("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,c,e,k,h,n){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var m=f[g].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var r=" ",l="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");a&&(l+="max-width:100%;");this.convertImages(d,mxUtils.bind(this,function(a){n('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+r+"/>")}))}else l="",e&&(d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(d.getAttribute("width")),b=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",d.removeAttribute("height")),""!=l&&d.setAttribute("style",l),n(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var d=Math.floor(a/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(a/2592E3);if(1<d)return d+
 " "+mxResources.get("months");d=Math.floor(a/86400);if(1<d)return d+" "+mxResources.get("days");d=Math.floor(a/3600);if(1<d)return d+" "+mxResources.get("hours");d=Math.floor(a/60);return 1<d?d+" "+mxResources.get("minutes"):1==d?d+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,e){e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var d=null;if("diagram"==a.nodeName)d=a;else if("mxfile"==a.nodeName){var c=a.getElementsByTagName("diagram");if(0<
diff --git a/src/main/webapp/js/atlas.min.js b/src/main/webapp/js/atlas.min.js
index 3bb4b36b1..eaa5cfe88 100644
--- a/src/main/webapp/js/atlas.min.js
+++ b/src/main/webapp/js/atlas.min.js
@@ -500,19 +500,19 @@ mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.pro
 mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
 mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
 mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
-mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);b.outline&&null!=b.style&&1!=mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||this.drawChildren(a,b,c,d,e,
-f,this.fgNode,g,!0)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l),c=c.nextSibling};
+mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,
+0))};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l,m){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l,m),c=c.nextSibling};
 mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling;else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
-m);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*m,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,b=Number(b)/100,b=Math.min(n*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
-mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
-mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,k=d.x,l=d.y,m=d.width,n=d.height,p=Math.min(m,n);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e,f),c=c.nextSibling;else if("close"==g)a.close();else if("move"==g)a.moveTo(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("line"==g)a.lineTo(k+Number(c.getAttribute("x"))*m,l+
+Number(c.getAttribute("y"))*n);else if("quad"==g)a.quadTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n);else if("curve"==g)a.curveTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n,k+Number(c.getAttribute("x3"))*m,l+Number(c.getAttribute("y3"))*n);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*m,Number(c.getAttribute("ry"))*
+n,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("rect"==g)a.rect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*
+n,b=Number(b)/100,b=Math.min(p*b,d*b),a.roundrect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,p,d,b,b);else if("ellipse"==g)a.ellipse(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),
+"1"==c.getAttribute("flipV")));else if("text"==g){if(!b.outline){p=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){f=b.rotation;var q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-f:q||b?d+f:d-f}d-=c.getAttribute("rotation");a.text(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,0,0,p,c.getAttribute("align")||"left",c.getAttribute("valign")||
+"top",!1,"",null,!1,d)}}else if("include-shape"==g)f=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=f&&(k+=Number(c.getAttribute("x"))*m,l+=Number(c.getAttribute("y"))*n,p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*n,f.drawShape(a,b,k,l,p,d));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)m="1"==c.getAttribute("fixed")?1:p,a.setStrokeWidth(Number(c.getAttribute("width"))*m);else if("dashed"==
+g)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");m=[];for(n=0;n<c.length;n++)0<c[n].length&&m.push(Number(c[n])*p);c=m.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):
+"alpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*p);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
+mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;
+mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
 mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
 mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
 mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -3247,7 +3247,7 @@ q[b]?this.addSysMLActivitiesPalette():"Interactions"==q[b]?this.addSysMLInteract
 "Chips"==r[b]?this.addGMDLChipsPalette():"Dialogs"==r[b]?this.addGMDLDialogsPalette():"Dividers"==r[b]?this.addGMDLDividersPalette():"Grid Lists"==r[b]?this.addGMDLGridListsPalette():"Icons"==r[b]?this.addGMDLIconsPalette():"Lists"==r[b]?this.addGMDLListsPalette():"Menus"==r[b]?this.addGMDLMenusPalette():"Misc"==r[b]?this.addGMDLMiscPalette():"Pickers"==r[b]?this.addGMDLPickersPalette():"Selection Controls"==r[b]?this.addGMDLSelectionControlsPalette():"Sliders"==r[b]?this.addGMDLSlidersPalette():
 "Steppers"==r[b]?this.addGMDLSteppersPalette():"Tabs"==r[b]?this.addGMDLTabsPalette():"Text Fields"==r[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addWebIconsPalette();this.addWebLogosPalette();this.showEntries()};if("1"==urlParams.createindex){var e=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,c,d,m,k,n,q){e.apply(this,arguments);n=null!=n?n:1;mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,
 function(b,a,c,e,l){if(null==m||0>mxUtils.indexOf(m,a))c=null!=q?q[a]:null,mxLog.debug('<shape style="shape='+b+a+d+'" w="'+Math.round(e*n)+'" h="'+Math.round(l*n)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,e,d,m){var l=d;null!=this.searchFileData&&(this.addSearchFileData(mxUtils.parseXml(this.editorUi.editor.graph.decompress(this.searchFileData)).documentElement),this.searchFileData=null);null!=this.tagIndex&&(this.addTagIndex(this.editorUi.editor.graph.decompress(this.tagIndex)),
-this.tagIndex=null);this.editorUi.isOffline()||0!=e||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});null!=ICONSEARCH_PATH&&(d=mxUtils.bind(this,function(b,d,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=e-Math.ceil((d-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?v=2&q="+encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)l(b,d,!1,g),this.editorUi.handleError(f);
+this.tagIndex=null);this.editorUi.isOffline()||0!=e||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});null!=ICONSEARCH_PATH&&(d=mxUtils.bind(this,function(b,d,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=e-Math.ceil((d-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?q="+encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)l(b,d,!1,g),this.editorUi.handleError(f);
 else{for(a=0;a<f.icons.length;a++){for(var h=f.icons[a].raster_sizes,k=h.length-1;0<k&&128<h[k].size;)k--;var m=h[k].size,n=h[k].formats[0].preview_url;null!=m&&null!=n&&mxUtils.bind(this,function(a,c){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+c,a,a,"")}))})(m,n)}l(b,(e-1)*c+b.length,f.icons.length==c,g)}}catch(z){l(b,d,!1,g),this.editorUi.handleError(z)}else l(b,
 d,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(z){l(b,d,!1,g),this.editorUi.handleError(z)}},function(){l(b,d,!1,g)}))):l(b,d,f||!this.editorUi.isOffline(),g)}));b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(b,a,e){var d=this.editorUi.editor.graph,l=!1;if(null!=b&&1==d.getSelectionCount()&&d.getModel().isVertex(b[0])){var f=d.cloneCells(b)[0];if(d.getModel().isEdge(d.getSelectionCell())&&null==d.getModel().getTerminal(d.getSelectionCell(),
 !1)&&d.getModel().isVertex(f)){d.getModel().beginUpdate();try{var g=d.view.getState(d.getSelectionCell());if(null!=g){var q=d.view.translate,p=d.view.scale,r=g.absolutePoints[g.absolutePoints.length-1];f.geometry.x=r.x/p-q.x-f.geometry.width/2;f.geometry.y=r.y/p-q.y-f.geometry.height/2}d.addCell(f);d.getModel().setTerminal(d.getSelectionCell(),f,!1)}finally{d.getModel().endUpdate()}d.scrollCellToVisible(f);d.setSelectionCell(f);l=!0}}l||c.apply(this,arguments)}})();(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var d=a.apply(this,arguments),e=this,b=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html=1;startSize=20;horizontal=1;childLayout=flowLayout;flowOrientation=north;resizable=0;interRankCellSpacing=50;containerType=tree;");b.vertex=!0;var c=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);var l=new mxCell("Task",new mxGeometry(20,
@@ -7178,7 +7178,7 @@ var U=document.createElement("input");U.style.cssText="margin:0 8px 0 8px;";U.se
 x.className="geBtn",d.appendChild(x));PrintDialog.previewEnabled&&(x=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),x.className="geBtn",d.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";d.appendChild(x);b.editor.cancelFirst||d.appendChild(q);e.appendChild(d);this.container=e};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
 this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&&
 this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.7.4";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.7.5";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
 EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
 EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
 !1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var b=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!b.getContext||!b.getContext("2d"))}catch(q){}try{var a=document.createElement("canvas"),c=new Image;c.onload=function(){try{a.getContext("2d").drawImage(c,0,0);var b=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
@@ -7189,131 +7189,131 @@ length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiT
 "10px",d.style.zIndex=2E9,d.style.left=Math.max(0,b)+"px",d.style.top=Math.max(0,a+70)+"px",mxUtils.setPrefixedStyle(d.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(d.style,"boxShadow","2px 2px 3px 0px #ddd"),d.innerHTML=e+"...",c.appendChild(d),f.status=d,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(d.style.left=Math.round(Math.max(0,b-d.offsetWidth/2))+"px",d.style.top=Math.round(Math.max(0,
 a+70-d.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(c,e)}));this.stop();return b}),d=!0);return d};var e=f.stop;f.stop=function(){e.call(this);this.active=!1;null!=f.status&&(f.status.parentNode.removeChild(f.status),f.status=null)};f.pause=function(){return function(){}};return f};EditorUi.parsePng=function(b,a,c){function f(b,a){var c=e;e+=a;return b.substring(c,e)}function h(b){b=f(b,4);return b.charCodeAt(3)+
 (b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var e=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(f(b,4),"IHDR"!=f(b,4))null!=c&&c();else{f(b,17);do{c=h(b);var d=f(b,4);if(null!=a&&a(e-8,d,c))break;value=f(b,c);f(b,4);if("IEND"==d)break}while(c)}};EditorUi.prototype.isCompatibleString=function(b){try{var a=mxUtils.parseXml(b),c=this.editor.extractGraphModel(a.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(u){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var h=b.indexOf("&lt;mxfile ");if(0<=h){var e=b.lastIndexOf("&lt;/mxfile&gt;");e>h&&(c=b.substring(h,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var d=mxUtils.parseXml(b),g=this.editor.extractGraphModel(d.documentElement,null!=this.pages),c=null!=g?mxUtils.getXml(g):""}catch(w){}return c};EditorUi.prototype.validateFileData=
-function(b){if(null!=b&&0<b.length){var a=b.indexOf('<meta charset="utf-8">');0<=a&&(b=b.slice(0,a)+'<meta charset="utf-8"/>'+b.slice(a+23-1,b.length))}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b){a=this.editor.graph;a.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");
-if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var d=e.length-1;0<=d;d--){var g=this.updatePageRoot(new DiagramPage(e[d]));null==g.getName()&&g.setName(mxResources.get("pageWithNumber",[d+1]));a.model.execute(new ChangePage(this,g,0==d?g:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),
-this.currentPage.setName(mxResources.get("pageWithNumber",[1])),a.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(d=0;d<c.length;d++)a.model.execute(new ChangePage(this,c[d],null))}finally{a.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,a,c,e,d,g,w,k,m,l){a=null!=a?a:this.editor.graph;d=null!=d?d:!1;m=null!=m?m:!0;var f,h=null;null==c||
-c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=e;if(null==b)return"";var q=b;if("mxfile"!=q.nodeName.toLowerCase()){var u=a.zapGremlins(mxUtils.getXml(b)),q=a.compress(u);if(a.decompress(q)!=u)return u;u=b.ownerDocument.createElement("diagram");mxUtils.setTextContent(u,q);q=b.ownerDocument.createElement("mxfile");q.appendChild(u)}l?(q=q.cloneNode(!0),q.removeAttribute("userAgent"),q.removeAttribute("version"),q.removeAttribute("editor"),q.removeAttribute("type")):(q.setAttribute("userAgent",
-navigator.userAgent),q.setAttribute("version",EditorUi.VERSION),q.setAttribute("editor","www.draw.io"),b=null!=c?c.getMode():this.mode,null!=b&&q.setAttribute("type",b));b=mxUtils.getXml(q);if(!g&&!d&&(w||null!=c&&/(\.html)$/i.test(c.getTitle())))b=this.getHtml2(mxUtils.getXml(q),a,null!=c?c.getTitle():null,f,h);else if(g||!d&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(e=null),b=this.getEmbeddedSvg(b,a,e,null,k,m,h);return b};EditorUi.prototype.getXmlFileData=
-function(b,a){b=null!=b?b:!0;a=null!=a?a:!1;var c=this.editor.getGraphXml(b);if(b&&null!=this.fileNode&&null!=this.currentPage){var f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,f);c=this.fileNode.cloneNode(!1);if(a)c.appendChild(this.currentPage.node);else for(var e=0;e<this.pages.length;e++){var d=this.pages[e].mapping;this.currentPage!=this.pages[e]&&null!=d&&d.needsUpdate&&(f=(new mxCodec(mxUtils.createXmlDocument())).encode(d.graphModel),
-d.writeRealtimeToNode(f),f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(f))),mxUtils.setTextContent(this.pages[e].node,f),d.needsUpdate=!1);c.appendChild(this.pages[e].node)}}return c};EditorUi.prototype.getFileData=function(b,a,c,e,d,g,w,k,m){d=null!=d?d:!0;w=null!=w?w:this.getXmlFileData(d,null!=g?g:!1);m=null!=m?m:this.getCurrentFile();g=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(a||!b&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());
-var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(b){return"page"==b?h.getName():"pagenumber"==b?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}b=this.createFileData(w,g,m,window.location.href,b,a,c,e,d,k);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return b};EditorUi.prototype.getHtml=function(b,a,c,e,d,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=a){var f=g?a.getGraphBounds():
-a.getBoundingBox(a.getSelectionCells()),q=a.view.scale;g=Math.floor(f.x/q-a.view.translate.x);q=Math.floor(f.y/q-a.view.translate.y);f=a.background;null==d&&(a=this.getBasenames().join(";"),0<a.length&&(h="https://www.draw.io/embed.js?s="+a));b.setAttribute("x0",g);b.setAttribute("y0",q)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize","0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=e&&b.setAttribute("edit",e));null!=
-d&&(d=d.replace(/&/g,"&amp;"));b=null!=b?this.editor.graph.zapGremlins(mxUtils.getXml(b)):"";e=this.editor.graph.compress(b);this.editor.graph.decompress(e)!=b&&(e=encodeURIComponent(b));return(null==d?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=d?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==d?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=d?
-'<meta http-equiv="refresh" content="0;URL=\''+d+"'\"/>\n":"")+"</head>\n<body"+(null==d&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==d?'<script type="text/javascript" src="'+h+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+d+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
-"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,a,c,e,d){null!=d&&(d=d.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==d?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=d?' xmlns="http://www.w3.org/1999/xhtml">':
-">")+"\n<head>\n"+(null==d?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=d?'<meta http-equiv="refresh" content="0;URL=\''+d+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==d?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-d+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;var a=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a&&"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<b.length||1==b.length&&b[0].hasAttribute("name"))){this.fileNode=
-a;this.pages=[];for(a=0;a<b.length;a++){var c=new DiagramPage(b[a]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[a+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(b){var a=this.getCurrentFile(),a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&
-0<this.currentPage.getName().length&&(a=a+"-"+this.currentPage.getName());return a};EditorUi.prototype.downloadFile=function(b,a,c,d,e,g,w){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),h=f+"."+b;if("xml"==b){var l='<?xml version="1.0" encoding="UTF-8"?>\n'+(a?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(h,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,
-b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?h=f+".png":"jpeg"==b&&(h=f+".jpg"),this.saveRequest(h,b,mxUtils.bind(this,function(a,c){try{var f=this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(a,b,d,c,w);this.editor.graph.pageVisible=f;return h}catch(A){this.handleError(A)}}));else{var q=null,u=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",
-b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==b){var t=this.editor.graph.background;if(w||t==mxConstants.NONE)t=null;var k=this.editor.graph.getSvg(t,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(k);this.convertImages(k,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(b))})))}else h=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();u(b)}),d)}}catch(J){this.handleError(J)}};EditorUi.prototype.createDownloadRequest=function(b,a,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=a);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==a&&(f="1",a="png",null!=this.pages&&null!=this.currentPage))for(var g=
-0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){h="&from="+g;break}g=this.editor.graph.background;"png"==a&&e&&(g=mxConstants.NONE);return new mxXmlRequest(EXPORT_URL,"format="+a+h+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=b?"&filename="+encodeURIComponent(b):""))};EditorUi.prototype.setMode=function(b,a){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,a,c){var f=window.location.hash,h=mxUtils.bind(this,function(c){var h=
-null!=b.data?b.data:"";null!=c&&0<c.length&&(0<h.length&&(h+="\n"),h+=c);c=new LocalFile(this,"csv"!=b.format&&0<h.length?h:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return f};this.fileLoaded(c);"csv"==b.format&&this.importCsv(h,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var d=null!=b.interval?parseInt(b.interval):6E4,l=null,
-e=mxUtils.bind(this,function(){var a=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){a===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),g()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(e,d)});this.editor.addListener("pageSelected",
-mxUtils.bind(this,function(){g();e()}));g();e()}null!=a&&a()});if(null!=b.url){var d=b.url;/^https?:\/\//.test(d)&&!this.isCorsEnabledForUrl(d)&&(d=PROXY_URL+"?url="+encodeURIComponent(b.url));this.loadUrl(d,mxUtils.bind(this,function(b){h(b)}),mxUtils.bind(this,function(b){null!=c&&c(b)}))}else h(b.data)};EditorUi.prototype.updateDiagram=function(b){function a(b){var a=new mxCellOverlay(b.image||d.warningImage,b.tooltip,b.align,b.valign,b.offset);a.addListener(mxEvent.CLICK,function(a,c){editorUi.alert(b.tooltip)});
-return a}var c=null;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var g=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var w=e.getCell(b.getAttribute("id"));if(null!=w){try{var k=b.getAttribute("value");if(null!=k){var m=mxUtils.parseXml(k).documentElement;if(null!=m)if("1"==m.getAttribute("replace-value"))e.setValue(w,m);else for(var l=m.attributes,v=0;v<l.length;v++)d.setAttributeForCell(w,
-l[v].nodeName,0<l[v].nodeValue.length?l[v].nodeValue:null)}}catch(A){null!=window.console&&console.log("Error in value for "+w.id+": "+A)}try{var n=b.getAttribute("style");null!=n&&d.model.setStyle(w,n)}catch(A){null!=window.console&&console.log("Error in style for "+w.id+": "+A)}try{var p=b.getAttribute("icon");if(null!=p){var y=0<p.length?JSON.parse(p):null;null!=y&&y.append||d.removeCellOverlays(w);null!=y&&d.addCellOverlay(w,a(y))}}catch(A){null!=window.console&&console.log("Error in icon for "+
-w.id+": "+A)}try{var J=b.getAttribute("geometry");if(null!=J){var J=JSON.parse(J),z=d.getCellGeometry(w);if(null!=z){z=z.clone();for(key in J){var C=parseFloat(J[key]);"dx"==key?z.x+=C:"dy"==key?z.y+=C:"dw"==key?z.width+=C:"dh"==key?z.height+=C:z[key]=parseFloat(J[key])}d.model.setGeometry(w,z)}}}catch(A){null!=window.console&&console.log("Error in icon for "+w.id+": "+A)}}}else if("model"==b.nodeName){for(var H=b.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=
-H&&(new mxCodec(b.firstChild)).decode(H,e)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(d.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(g=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{e.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};
-EditorUi.prototype.fileLoaded=function(b){var a=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&
-0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=b)try{this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.undoManager.clear();this.descriptorChanged();
-this.updateUi();null==b.realtime&&(b.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();
-this.editor.fireEvent(new mxEventObject("fileLoaded"));a=!0;this.isOffline()||null==b.getMode()||this.logEvent({category:"File",action:"open",label:b.getMode()});if(this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(q){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(q){}}catch(q){null!=window.console&&console.log("error in fileLoaded:",b,q);if(EditorUi.enableLogging&&
-!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=q&&null!=q.message?":err:"+encodeURIComponent(q.message):"")+(null!=q&&null!=q.stack?"&stack="+encodeURIComponent(q.stack):"")}catch(t){}this.handleError(q,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?
-window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return a};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(b){if(EditorUi.enableLogging)try{var a=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=a+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(h){}};EditorUi.prototype.restoreLibraries=
-function(){};EditorUi.prototype.saveLibrary=function(b,a,c,d,e,g,w){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(b){null==b&&(b=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=
-function(b){var a=mxUtils.createXmlDocument(),c=a.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(b));a.appendChild(c);return mxUtils.getXml(a)};EditorUi.prototype.closeLibrary=function(b){null!=b&&(this.removeLibrarySidebar(b.getHash()),b.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(b.getHash()),".scratchpad"==b.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(b){var a=this.sidebar.palettes[b];if(null!=a){for(var c=0;c<a.length;c++)a[c].parentNode.removeChild(a[c]);
-delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var a=this.sidebar.container;if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=null!=b?b:a.firstChild.nextSibling.nextSibling;var c=a.lastChild,d=c.previousSibling;a.insertBefore(c,b);a.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(b){var a=mxUtils.parseXml(b.getData());if("mxlibrary"==a.documentElement.nodeName){var c=
-JSON.parse(mxUtils.getTextContent(a.documentElement));this.libraryLoaded(b,c,a.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,a,c){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:
-null;this.removeLibrarySidebar(b.getHash());var h=null,d=mxUtils.bind(this,function(a,c){if(0==a.length&&b.isEditable())null==h&&(h=document.createElement("div"),mxUtils.setPrefixedStyle(h.style,"borderRadius","6px"),h.style.border="3px dotted lightGray",h.style.textAlign="center",h.style.padding="8px",h.style.color="#B3B3B3",mxUtils.write(h,mxResources.get("dragElementsHere"))),c.appendChild(h);else for(var f=0;f<a.length;f++){var l=a[f],d=l.data;if(null!=d){var d=this.convertDataUri(d),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";
-"fixed"==l.aspect&&(e+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(e+"image="+d,l.w,l.h,"",l.title||"",!1,!1,!0))}else null!=l.xml&&(d=this.stringToCells(this.editor.graph.decompress(l.xml)),0<d.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(d,l.w,l.h,l.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=a)for(var e=0;e<a.length;e++)mxUtils.bind(this,function(b){var a=b.data;null!=a&&null!=b.title?this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){a=
-this.convertDataUri(a);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==b.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+a,b.w,b.h,"",b.title||"",!1,!1,!0)})):null!=b.xml&&null!=b.title&&this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){var a=this.stringToCells(this.editor.graph.decompress(b.xml));return this.sidebar.createVertexTemplateFromCells(a,b.w,b.h,b.title||"",!0,!1,!0)}))})(a[e]);c=null!=c&&0<c.length?c:
-b.getTitle();var g=this.sidebar.addPalette(b.getHash(),c,!0,mxUtils.bind(this,function(b){d(a,b)}));this.repositionLibrary(f);var k=g.parentNode.previousSibling;c=k.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+c);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(l.style.backgroundColor="inherit");k.style.position=
-"relative";var v=document.createElement("img");v.setAttribute("src",Dialog.prototype.closeImage);v.setAttribute("title",mxResources.get("close"));v.setAttribute("valign","absmiddle");v.setAttribute("border","0");v.style.margin="0 3px";var m=null;if(".scratchpad"!=b.title||this.closableScratchpad)l.appendChild(v),mxEvent.addListener(v,"click",mxUtils.bind(this,function(a){if(!mxEvent.isConsumed(a)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=m?this.confirm(mxResources.get("allChangesLost"),
-null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(a)}}));if(b.isEditable()){var n=this.editor.graph,p=null,J=mxUtils.bind(this,function(c){this.showLibraryDialog(b.getTitle(),g,a,b,b.getMode());mxEvent.consume(c)}),z=mxUtils.bind(this,function(c){b.setModified(!0);b.isAutosave()?(null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p),p=v.cloneNode(!1),p.setAttribute("src",Editor.spinImage),p.setAttribute("title",mxResources.get("saving")),p.style.cursor="default",
-p.style.marginRight="2px",p.style.marginTop="-2px",l.insertBefore(p,l.firstChild),k.style.paddingRight=18*l.childNodes.length+"px",this.saveLibrary(b.getTitle(),a,b,b.getMode(),!0,!0,function(){null!=p&&null!=p.parentNode&&(p.parentNode.removeChild(p),k.style.paddingRight=18*l.childNodes.length+"px")})):null==m&&(m=v.cloneNode(!1),m.setAttribute("src",IMAGE_PATH+"/download.png"),m.setAttribute("title",mxResources.get("save")),l.insertBefore(m,l.firstChild),mxEvent.addListener(m,"click",mxUtils.bind(this,
-function(c){this.saveLibrary(b.getTitle(),a,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==m||b.isModified()||(k.style.paddingRight=18*l.childNodes.length+"px",m.parentNode.removeChild(m),m=null)});mxEvent.consume(c)})),k.style.paddingRight=18*l.childNodes.length+"px")}),C=mxUtils.bind(this,function(b,c,f,l){b=n.cloneCells(mxUtils.sortCells(n.model.getTopmostCells(b)));for(var d=0;d<b.length;d++){var e=n.getCellGeometry(b[d]);null!=e&&e.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,
-c.width,c.height,l||"",!0,!1,!1));b={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:c.width,h:c.height};null!=l&&(b.title=l);a.push(b);z(f);null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)}),H=mxUtils.bind(this,function(b){if(n.isSelectionEmpty())n.getRubberband().isActive()?(n.getRubberband().execute(b),n.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var a=
-n.getSelectionCells(),c=n.view.getBounds(a),f=n.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=n.view.translate.x;c.y-=n.view.translate.y;C(a,c)}mxEvent.consume(b)});g.style.border="3px solid transparent";mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="hidden",null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)",
-g.style.cursor="copy",n.panningManager.stop(),n.autoScroll=!1,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!1),null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(b))}),mxUtils.bind(this,function(b){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler&&(g.style.border="3px solid transparent",null!=h&&(h.style.border="3px dotted lightGray"),g.style.cursor="default",this.sidebar.showTooltips=!0,n.panningManager.stop(),n.graphHandler.reset(),
-n.isMouseDown=!1,n.autoScroll=!0,H(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){n.isMouseDown&&null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="visible",g.style.border="3px solid transparent",g.style.cursor="",n.autoScroll=!0,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!0),null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="visible"),null!=h&&(h.style.border="3px dotted lightGray"))}));Graph.fileSupport&&
-(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)";b.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.border="3px solid transparent";g.style.cursor="";null!=h&&(h.style.border="3px dotted lightGray");0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,
-0,0,this.maxImageSize,mxUtils.bind(this,function(c,f,l,e,v,q,u,w,t){if(null!=c&&"image/"==f.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,v,q),c)],c[0].vertex=!0,C(c,new mxRectangle(0,0,v,q),b,mxEvent.isAltDown(b)?null:u.substring(0,u.lastIndexOf(".")).replace(/_/g," ")),null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null);else{var k=!1,m=mxUtils.bind(this,function(c,
-f){if(null!=c&&"text/xml"==f){var l=mxUtils.parseXml(c);if("mxlibrary"==l.documentElement.nodeName)try{var e=JSON.parse(mxUtils.getTextContent(l.documentElement));d(e,g);a=a.concat(e);z(b);this.spinner.stop();k=!0}catch(U){}else if("mxfile"==l.documentElement.nodeName)try{for(var v=l.documentElement.getElementsByTagName("diagram"),l=0;l<v.length;l++){var e=mxUtils.getTextContent(v[l]),q=this.stringToCells(this.editor.graph.decompress(e)),u=this.editor.graph.getBoundingBoxFromGeometry(q);C(q,new mxRectangle(0,
-0,u.width,u.height),b)}k=!0}catch(U){null!=window.console&&console.log("error in drop handler:",U)}}k||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)});null!=t&&null!=u&&(/(\.vsdx?)($|\?)/i.test(u)||/(\.vssx)($|\?)/i.test(u))?this.importVisio(t,function(b){m(b,"text/xml")},null,u):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,u)&&null!=t?this.parseFile(t,
-mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?m(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):m(c,f)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){null!=h?h.style.border="3px dotted lightGray":(g.style.border="3px solid transparent",g.style.cursor="");b.stopPropagation();b.preventDefault()}));
-v=v.cloneNode(!1);v.setAttribute("src",Editor.editImage);v.setAttribute("title",mxResources.get("edit"));l.insertBefore(v,l.firstChild);mxEvent.addListener(v,"click",J);mxEvent.addListener(g,"dblclick",function(b){mxEvent.getSource(b)==g&&J(b)});c=v.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));l.insertBefore(c,l.firstChild);mxEvent.addListener(c,"click",H);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),
-c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),l.insertBefore(c,l.firstChild))}k.appendChild(l);k.style.paddingRight=18*l.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=
-64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var b=document.getElementById("geFooter");if(null!=b){b.style.visibility="visible";var a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",Dialog.prototype.closeImage);a.setAttribute("title",mxResources.get("hide"));b.appendChild(a);mxClient.IS_QUIRKS&&(a.style.position="relative",a.style.styleFloat="right",a.style.top=
-"-30px",a.style.left="164px",a.style.cursor="pointer");mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return b});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=
-3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=
-null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage=
-"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};
-EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var b=document.getElementById("geFooter");null!=b&&(this.footerHeight=0,b.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(b){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=b,a.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(b,a,c,d,e){b=new ImageDialog(this,b,a,c,d,e);this.showDialog(b.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
-!0);b.init()};EditorUi.prototype.showBackgroundImageDialog=function(b){b=null!=b?b:mxUtils.bind(this,function(b){b=new ChangePageSetup(this,null,b);b.ignoreColor=!0;this.editor.graph.model.execute(b)});var a=new BackgroundImageDialog(this,mxUtils.bind(this,function(a){b(a)}));this.showDialog(a.container,360,200,!0,!0);a.init()};EditorUi.prototype.showLibraryDialog=function(b,a,c,d,e){b=new LibraryDialog(this,b,a,c,d,e);this.showDialog(b.container,620,440,!0,!1,mxUtils.bind(this,function(b){b&&null==
-this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));b.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer");b.style.position="absolute";b.style.overflow="hidden";b.style.borderWidth="3px";var a=document.createElement("a");a.setAttribute("href","javascript:void(0);");a.className="geTitle";a.style.height="100%";a.style.paddingTop="9px";mxUtils.write(a,mxResources.get("moreShapes")+"...");mxEvent.addListener(a,"click",mxUtils.bind(this,
-function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(a);return b};EditorUi.prototype.handleError=function(b,a,c){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},h=null!=b&&null!=b.error?b.error:b;if(null!=h||null!=a){b=mxUtils.htmlEntities(mxResources.get("unknownError"));var d=mxResources.get("ok"),e=null;a=null!=a?a:mxResources.get("error");if(null!=h)if(null!=h.retry&&(d=mxResources.get("cancel"),e=function(){f();h.retry()}),"undefined"!=
-typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.FORBIDDEN)b=mxUtils.htmlEntities(mxResources.get("forbidden"));else if(404==h.code||404==h.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.NOT_FOUND){b=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var g=window.location.hash;null!=g&&"#G"==g.substring(0,2)&&(g=g.substring(2),
-b+=' <a href="https://drive.google.com/open?id='+g+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else h.code==App.ERROR_TIMEOUT?b=mxUtils.htmlEntities(mxResources.get("timeout")):h.code==App.ERROR_BUSY?b=mxUtils.htmlEntities(mxResources.get("busy")):null!=h.message?b=mxUtils.htmlEntities(h.message):null!=h.response&&null!=h.response.error&&(b=mxUtils.htmlEntities(h.response.error));this.showError(a,b,d,c,e)}else null!=c&&c()};EditorUi.prototype.showError=
-function(b,a,c,d,e,g,w,k,m,l,v,n){b=new ErrorDialog(this,b,a,c||mxResources.get("ok"),d,e,g,w,n,k,m);this.showDialog(b.container,l||340,v||150,!0,!1);b.init()};EditorUi.prototype.alert=function(b,a){var c=new ErrorDialog(this,null,b,mxResources.get("ok"),a);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(b,a,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,b,function(){f();null!=
-a&&a()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(b){this.currentFile=b};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(b)))};EditorUi.prototype.createImageDataUri=function(b,
-a,c){var f=b.toDataURL("image/"+c);if(6>=f.length||f==b.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=a&&(f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(a))));return f};EditorUi.prototype.saveCanvas=function(b,a,c){var f="jpeg"==c?"jpg":c,h=this.getBaseFilename()+"."+f;b=this.createImageDataUri(b,a,c);this.saveData(h,f,b.substring(b.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&
-(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(b,a,c,d,e){if(window.Blob&&navigator.msSaveOrOpenBlob)b=d?this.base64ToBlob(b,c):new Blob([b],{type:c}),navigator.msSaveOrOpenBlob(b,a);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(b,!0):(c.document.write(b),
-c.document.close(),c.document.execCommand("SaveAs",!0,a),c.close());else if(mxClient.IS_IOS)a=new TextareaDialog(this,a+":",b,null,null,mxResources.get("close")),a.textarea.style.width="600px",a.textarea.style.height="380px",this.showDialog(a.container,620,460,!0,!0),a.init(),document.execCommand("selectall",!1,null);else{var f=document.createElement("a"),h=!mxClient.IS_SF&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),h=65==(g?parseInt(g[2],
-10):!1)?!1:h;if(h||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(b,c):new Blob([b],{type:c}));h?f.download=a:f.setAttribute("target","_blank");document.body.appendChild(f);try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.click(),f.parentNode.removeChild(f)}catch(B){}}else this.createEchoRequest(b,a,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,a,c,d,e,g){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=
-c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=a?"&filename="+encodeURIComponent(a):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,a){a=a||"";for(var c=atob(b),f=c.length,d=Math.ceil(f/1024),e=Array(d),g=0;g<d;++g){for(var k=1024*g,m=Math.min(k+1024,f),l=Array(m-k),v=0;k<m;++v,++k)l[v]=c[k].charCodeAt(0);e[g]=new Uint8Array(l)}return new Blob(e,{type:a})};EditorUi.prototype.saveLocalFile=function(b,a,c,d,e,g,k){g=null!=g?g:!1;k=null!=k?k:"vsdx"!=e&&
-(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,f){try{if("_blank"==f)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write(mxUtils.htmlEntities(b,!1)),l.document.close())}else this.openInNewWindow(b,c,d);else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,a,c,d):null!=a&&0<a.length&&this.pickFolder(f,
-mxUtils.bind(this,function(l){try{this.exportFile(b,a,c,d,f,l)}catch(G){this.handleError(G)}}))}catch(v){this.handleError(v)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,k,null,1<e,4<e&&(!g||6>e)?3:4,b,c,d);this.showDialog(a.container,420,e==(mxClient.IS_IOS?0:1)?160:4<e?390:270,!0,!0);a.init()};EditorUi.prototype.openInNewWindow=function(b,a,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var f=
-window.open("about:blank");null==f?mxUtils.popup(b,!0):("image/svg+xml"==a?f.document.write("<html>"+b+"</html>"):f.document.write('<html><img src="data:'+a+(c?";base64,"+b:";charset=utf8,"+encodeURIComponent(b))+'"/></html>'),f.document.close())}else f=window.open("data:"+a+(c?";base64,"+b:";charset=utf8,"+encodeURIComponent(b))),null==f&&mxUtils.popup(b,!0)};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(b){if(this.isExportToCanvas()){this.exportDialog=
-null;var a=b(mxUtils.bind(this,function(b){var c=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",c);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)c.apply(this);else{this.exportDialog=document.createElement("div");var f=a.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign=
-"center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=f.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";f=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.exportDialog.style.zIndex=f.zIndex;var d=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});d.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,function(b){d.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var a=this.createImageDataUri(b,null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.maxHeight="140px";
-b.style.cursor="pointer";b.setAttribute("title",mxResources.get("openInNewWindow"));b.setAttribute("border","0");b.setAttribute("src",a);this.exportDialog.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.openInNewWindow(a.substring(a.indexOf(",")+1),"image/png",!0);c.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));mxEvent.addListener(this.editor.graph.container,"click",c);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),
-Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(b,a,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,b,d,e,a):this.saveRequest(b,a,mxUtils.bind(this,function(b,f){return this.createEchoRequest(c,b,d,e,a,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(b,a,c,d,e,g,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,f){if("_blank"==f||null!=
-b&&0<b.length){var l=c("_blank"==f?null:b,f==App.MODE_DEVICE||"download"==f||null==f||"_blank"==f?"0":"1");null!=l&&(f==App.MODE_DEVICE||"download"==f||"_blank"==f?l.simulate(document,"_blank"):this.pickFolder(f,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==a?"application/pdf":"image/"+a;if(null!=d)try{this.exportFile(d,b,g,!0,f,c)}catch(F){this.handleError(F)}else this.spinner.spin(document.body,mxResources.get("saving"))&&l.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=l.getStatus()&&
-299>=l.getStatus())try{this.exportFile(l.getText(),b,g,!0,f,c)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,k,null,1<f,4<f?3:4,d,g,e);this.showDialog(b.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);b.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(b,a,c,d,e,g){};EditorUi.prototype.pickFolder=function(b,a,c){a(null)};EditorUi.prototype.exportSvg=function(b,a,c,d,e,g,k,m,n){if(this.spinner.spin(document.body,mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=a?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==a&&(f="#ffffff");var h=this.editor.graph.getSvg(f,b,k,m,null,c);d&&this.editor.graph.addSvgShadow(h);var q=this.getBaseFilename()+".svg",
-u=mxUtils.bind(this,function(b){this.spinner.stop();e&&b.setAttribute("content",this.getFileData(!0,null,null,null,c,n));if(null!=this.editor.fontCss){var a=b.ownerDocument,a=null!=a.createElementNS?a.createElementNS(mxConstants.NS_SVG,"style"):a.createElement("style");a.setAttribute("type","text/css");mxUtils.setTextContent(a,this.editor.fontCss);b.getElementsByTagName("defs")[0].appendChild(a)}var f='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(b);this.isLocalFileSave()||f.length<=MAX_REQUEST_SIZE?this.saveData(q,"svg",f,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(f)}))});this.convertMath(this.editor.graph,h,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(h,u,this.thumbImageCache)):u(h)}))}};EditorUi.prototype.addCheckbox=function(b,a,c,d,e,g){g=null!=g?g:!0;var f=
-document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type","checkbox");c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled","disabled");g&&(b.appendChild(f),c=document.createElement("span"),mxUtils.write(c,a),b.appendChild(c),e||mxUtils.br(b),mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){"disabled"!=f.getAttribute("disabled")&&(f.checked=!f.checked,mxEvent.consume(b))})));return f};EditorUi.prototype.addEditButton=
-function(b,a){var c=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var f=this.getCurrentFile(),d="";null!=f&&f.getMode()!=App.MODE_DEVICE&&f.getMode()!=App.MODE_BROWSER&&(d=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("makeCopy"));e.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","custom");mxUtils.write(f,mxResources.get("custom")+"...");e.appendChild(f);b.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var b=new FilenameDialog(this,d,mxResources.get("ok"),function(b){null!=b?d=b:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(b.container,300,80,!0,!1);b.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==a||
-a.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":d:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(b,a){function c(){g.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(b,mxResources.get("links")+":");var f=document.createElement("select");f.style.width="100px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";var d=document.createElement("option");d.setAttribute("value","auto");mxUtils.write(d,mxResources.get("automatic"));f.appendChild(d);d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("openInNewWindow"));f.appendChild(d);d=document.createElement("option");
-d.setAttribute("value","self");mxUtils.write(d,mxResources.get("openInThisWindow"));f.appendChild(d);a&&(d=document.createElement("option"),d.setAttribute("value","frame"),mxUtils.write(d,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),f.appendChild(d));b.appendChild(f);mxUtils.write(b,mxResources.get("borderColor")+":");var e="#0000ff",g=null,g=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(e||"none",function(b){e=b;c()});mxEvent.consume(b)}));c();g.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";g.style.marginLeft="4px";g.style.height="22px";g.style.width="22px";g.style.position="relative";g.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";g.className="geColorBtn";b.appendChild(g);mxUtils.br(b);return{getColor:function(){return e},getTarget:function(){return f.value},focus:function(){f.focus()}}};EditorUi.prototype.createLink=function(b,a,c,d,e,g,k,m){var f=this.getCurrentFile(),l=[];d&&(l.push("lightbox=1"),"auto"!=b&&l.push("target="+
-b),null!=a&&a!=mxConstants.NONE&&l.push("highlight="+("#"==a.charAt(0)?a.substring(1):a)),null!=e&&0<e.length&&l.push("edit="+encodeURIComponent(e)),g&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){0<b&&l.push("page="+b);break}b=!0;null!=k?c="#U"+encodeURIComponent(k):(f=this.getCurrentFile(),m||null==f||f.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?
-this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+f.getHash(),b=!1));b&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&l.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<l.length?"?"+l.join("&"):"")+c};EditorUi.prototype.createHtml=function(b,
-a,c,d,e,g,k,m,n,l,v){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d);n||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];k&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));a&&(c.push("zoom"),f.resize=!0);m&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),f.toolbar=c.join(" "));null!=l&&0<l.length&&(f.edit=l);null!=
-b?f.url=b:f.xml=this.getFileData(!0,null,null,null,null,!k);a='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(f))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";v(a,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+
-'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,a,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(e);var h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
-g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");e=g.cloneNode(!0);e.setAttribute("value","copy");h.appendChild(e);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));h.appendChild(k);mxUtils.br(h);h.appendChild(g);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));h.appendChild(k);var l=this.getCurrentFile();null==c&&null!=l&&l.constructor==window.DriveFile&&(k=
-document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),h.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var v=this.addLinkSection(f),u=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,
-":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="12px";m.value="100%";f.appendChild(m);var n=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,p=p=this.addCheckbox(f,mxResources.get("allPages"),h,!h),z=this.addCheckbox(f,mxResources.get("layers"),!0),C=this.addCheckbox(f,mxResources.get("lightbox"),!0),H=this.addEditButton(f,C),A=H.getEditInput();
-A.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?A.removeAttribute("disabled"):A.setAttribute("disabled","disabled");A.checked&&C.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,u.checked,m.value,v.getTarget(),v.getColor(),n.checked,p.checked,z.checked,C.checked,H.getLink())}),null,b,a);this.showDialog(b.container,340,384,!0,!0);e.focus()};
-EditorUi.prototype.showPublishLinkDialog=function(b,a,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=document.createElement("h3");mxUtils.write(h,b||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var k=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";b=0;if(null!=k&&k.constructor==window.DriveFile&&!a){b=80;var h="https://desk.draw.io/support/solutions/articles/16000039384",
-l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var v=document.createElement("div");v.style.whiteSpace="normal";mxUtils.write(v,mxResources.get("linkAccountRequired"));l.appendChild(v);v=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));v.style.marginTop="12px";v.className="geBtn";l.appendChild(v);f.appendChild(l);v=document.createElement("a");
-v.style.paddingLeft="12px";v.style.color="gray";v.style.fontSize="11px";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("check"));l.appendChild(v);mxEvent.addListener(v,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));
-this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,u=null;if(null!=c||null!=d)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),u=document.createElement("input"),u.setAttribute("type","text"),u.style.width="50px",
-u.style.marginLeft="6px",u.style.marginBottom="10px",u.value=d+"px",f.appendChild(u),mxUtils.br(f);var m=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var n=null;if(null==k||k.constructor!=window.DriveFile||a)n=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var t=this.addCheckbox(f,mxResources.get("lightbox"),!0),p=this.addEditButton(f,t),H=p.getEditInput(),A=this.addCheckbox(f,mxResources.get("layers"),!0);A.style.marginLeft=H.style.marginLeft;A.style.marginBottom="16px";
-A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(A.removeAttribute("disabled"),H.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){e(m.getTarget(),m.getColor(),null==n?!0:n.checked,t.checked,p.getLink(),A.checked,null!=q?q.value:null,null!=
-u?u.value:null)}),null,mxResources.get("create"),h);this.showDialog(a.container,340,254+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)):m.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,a,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),!0),e=this.editor.graph,k=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=k&&(k.style.marginBottom="16px");b=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=k?k.checked:!1)}),null,b,a);this.showDialog(b.container,
-300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(b,a,c,d,e,g,k,m){k=null!=k?k:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph,h="jpeg"==m?196:300,q=document.createElement("h3");mxUtils.write(q,b);q.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(q);mxUtils.write(f,mxResources.get("zoom")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width=
-"60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=this.lastExportZoom||"100%";f.appendChild(u);mxUtils.write(f,mxResources.get("borderWidth")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px";n.style.width="60px";n.style.marginLeft="4px";n.value=this.lastExportBorder||"0";f.appendChild(n);mxUtils.br(f);var w=this.addCheckbox(f,mxResources.get("transparentBackground"),l.background==mxConstants.NONE||null==l.background,null,null,"jpeg"!=
-m),t=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),p=document.createElement("input");p.style.marginTop="16px";p.style.marginRight="8px";p.style.marginLeft="24px";p.setAttribute("disabled","disabled");p.setAttribute("type","checkbox");g&&(f.appendChild(p),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),h+=26,mxEvent.addListener(t,"change",function(){t.checked?p.removeAttribute("disabled"):p.setAttribute("disabled","disabled")}));l.isSelectionEmpty()||(p.setAttribute("checked",
-"checked"),p.defaultChecked=!0);var x=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible),A=document.createElement("input");A.style.marginTop="16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||A.setAttribute("disabled","disabled");a&&(f.appendChild(A),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),h+=26);var L=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=m),D=null!=this.pages&&1<this.pages.length,
-E=this.addCheckbox(f,D?mxResources.get("allPages"):"",D,!D,null,"jpeg"!=m);E.style.marginLeft="24px";E.style.marginBottom="16px";D||(E.style.visibility="hidden");mxEvent.addListener(L,"change",function(){L.checked&&D?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")});k&&D||E.setAttribute("disabled","disabled");b=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=n.value;this.lastExportZoom=u.value;e(u.value,w.checked,!t.checked,x.checked,L.checked,A.checked,
-n.value,p.checked,!E.checked)}),null,c,d);this.showDialog(b.container,340,h,!0,!0);u.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,a,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=this.editor.graph;if(null!=a){var g=document.createElement("h3");mxUtils.write(g,a);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),l=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),v=this.addCheckbox(f,c),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),u=this.addEditButton(f,q),m=u.getEditInput(),n=1<h.model.getChildCount(h.model.getRoot()),p=this.addCheckbox(f,mxResources.get("layers"),n,!n);p.style.marginLeft=m.style.marginLeft;p.style.marginBottom="12px";p.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?
-(n&&p.removeAttribute("disabled"),m.removeAttribute("disabled")):(p.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"));m.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,l.checked,v.checked,q.checked,u.getLink(),p.checked)}),null,mxResources.get("embed"),e);this.showDialog(a.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
-function(b,a,c,d,e,g,k,m){function f(a){var f=" ",h="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",h+="cursor:pointer;");
-b&&(h+="max-width:100%;");var v="";c&&(v=' width="'+Math.round(l.width)+'" height="'+Math.round(l.height)+'"');k('<img src="'+a+'"'+v+(""!=h?' style="'+h+'"':"")+f+"/>")}var l=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(b){var a=d?this.getFileData(!0):null;b=this.createImageDataUri(b,a,"png");f(b)}),null,null,null,mxUtils.bind(this,function(b){m({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,a);else if(a=this.getFileData(!0),
-l.width*l.height<=MAX_AREA&&a.length<=MAX_REQUEST_SIZE){var h="";c&&(h="&w="+Math.round(2*l.width)+"&h="+Math.round(2*l.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+h+"&xml="+encodeURIComponent(a));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&299>=q.getStatus()?f("data:image/png;base64,"+q.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,
-a,c,d,e,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var l=0;l<h.length;l++){var v=h[l].getAttribute("href");null!=v&&"#"==v.charAt(0)&&"_blank"==h[l].getAttribute("target")&&h[l].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));a&&this.editor.graph.addSvgShadow(f);if(c){var q=" ",u="";d&&(q="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var h=b.indexOf("&lt;mxfile ");if(0<=h){var e=b.lastIndexOf("&lt;/mxfile&gt;");e>h&&(c=b.substring(h,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var d=mxUtils.parseXml(b),g=this.editor.extractGraphModel(d.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=
+g?mxUtils.getXml(g):""}catch(w){}return c};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var a=b.indexOf('<meta charset="utf-8">');0<=a&&(b=b.slice(0,a)+'<meta charset="utf-8"/>'+b.slice(a+23-1,b.length))}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b){a=this.editor.graph;a.model.beginUpdate();
+try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var d=e.length-1;0<=d;d--){var g=this.updatePageRoot(new DiagramPage(e[d]));null==g.getName()&&g.setName(mxResources.get("pageWithNumber",[d+1]));a.model.execute(new ChangePage(this,g,0==d?g:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),
+this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),a.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(d=0;d<c.length;d++)a.model.execute(new ChangePage(this,c[d],null))}finally{a.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,a,c,e,d,g,w,k,m,l){a=null!=
+a?a:this.editor.graph;d=null!=d?d:!1;m=null!=m?m:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=e;if(null==b)return"";var q=b;if("mxfile"!=q.nodeName.toLowerCase()){var u=a.zapGremlins(mxUtils.getXml(b)),q=a.compress(u);if(a.decompress(q)!=u)return u;u=b.ownerDocument.createElement("diagram");mxUtils.setTextContent(u,q);q=b.ownerDocument.createElement("mxfile");q.appendChild(u)}l?(q=q.cloneNode(!0),q.removeAttribute("userAgent"),q.removeAttribute("version"),
+q.removeAttribute("editor"),q.removeAttribute("type")):(q.setAttribute("userAgent",navigator.userAgent),q.setAttribute("version",EditorUi.VERSION),q.setAttribute("editor","www.draw.io"),b=null!=c?c.getMode():this.mode,null!=b&&q.setAttribute("type",b));b=mxUtils.getXml(q);if(!g&&!d&&(w||null!=c&&/(\.html)$/i.test(c.getTitle())))b=this.getHtml2(mxUtils.getXml(q),a,null!=c?c.getTitle():null,f,h);else if(g||!d&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
+App.MODE_BROWSER||(e=null),b=this.getEmbeddedSvg(b,a,e,null,k,m,h);return b};EditorUi.prototype.getXmlFileData=function(b,a){b=null!=b?b:!0;a=null!=a?a:!1;var c=this.editor.getGraphXml(b);if(b&&null!=this.fileNode&&null!=this.currentPage){var f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,f);c=this.fileNode.cloneNode(!1);if(a)c.appendChild(this.currentPage.node);else for(var e=0;e<this.pages.length;e++){var d=this.pages[e].mapping;
+this.currentPage!=this.pages[e]&&null!=d&&d.needsUpdate&&(f=(new mxCodec(mxUtils.createXmlDocument())).encode(d.graphModel),d.writeRealtimeToNode(f),f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(f))),mxUtils.setTextContent(this.pages[e].node,f),d.needsUpdate=!1);c.appendChild(this.pages[e].node)}}return c};EditorUi.prototype.getFileData=function(b,a,c,e,d,g,w,k,m){d=null!=d?d:!0;w=null!=w?w:this.getXmlFileData(d,null!=g?g:!1);m=null!=m?m:this.getCurrentFile();g=this.editor.graph;
+if(null!=this.pages&&this.currentPage!=this.pages[0]&&(a||!b&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(b){return"page"==b?h.getName():"pagenumber"==b?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}b=this.createFileData(w,g,m,window.location.href,b,a,c,e,d,k);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return b};
+EditorUi.prototype.getHtml=function(b,a,c,e,d,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=a){var f=g?a.getGraphBounds():a.getBoundingBox(a.getSelectionCells()),q=a.view.scale;g=Math.floor(f.x/q-a.view.translate.x);q=Math.floor(f.y/q-a.view.translate.y);f=a.background;null==d&&(a=this.getBasenames().join(";"),0<a.length&&(h="https://www.draw.io/embed.js?s="+a));b.setAttribute("x0",g);b.setAttribute("y0",q)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom",
+"1"),b.setAttribute("resize","0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=e&&b.setAttribute("edit",e));null!=d&&(d=d.replace(/&/g,"&amp;"));b=null!=b?this.editor.graph.zapGremlins(mxUtils.getXml(b)):"";e=this.editor.graph.compress(b);this.editor.graph.decompress(e)!=b&&(e=encodeURIComponent(b));return(null==d?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=d?' xmlns="http://www.w3.org/1999/xhtml">':
+">")+"\n<head>\n"+(null==d?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=d?'<meta http-equiv="refresh" content="0;URL=\''+d+"'\"/>\n":"")+"</head>\n<body"+(null==d&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==d?'<script type="text/javascript" src="'+h+'">\x3c/script>':
+'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+d+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,a,c,e,d){null!=d&&(d=d.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,
+this.currentPage));return(null==d?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=d?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==d?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=d?'<meta http-equiv="refresh" content="0;URL=\''+d+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==d?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+d+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;var a=null!=b&&0<b.length?
+mxUtils.parseXml(b).documentElement:null;b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a&&"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<b.length||1==b.length&&b[0].hasAttribute("name"))){this.fileNode=a;this.pages=[];for(a=0;a<b.length;a++){var c=new DiagramPage(b[a]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[a+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(b){var a=this.getCurrentFile(),a=null!=a&&null!=
+a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(a=a+"-"+this.currentPage.getName());return a};EditorUi.prototype.downloadFile=function(b,a,c,d,e,g,w){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),
+h=f+"."+b;if("xml"==b){var l='<?xml version="1.0" encoding="UTF-8"?>\n'+(a?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(h,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?h=f+".png":"jpeg"==b&&(h=f+".jpg"),this.saveRequest(h,b,mxUtils.bind(this,function(a,c){try{var f=
+this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(a,b,d,c,w);this.editor.graph.pageVisible=f;return h}catch(A){this.handleError(A)}}));else{var q=null,u=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==b){var t=this.editor.graph.background;if(w||t==
+mxConstants.NONE)t=null;var k=this.editor.graph.getSvg(t,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(k);this.convertImages(k,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(b))})))}else h=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();u(b)}),d)}}catch(J){this.handleError(J)}};
+EditorUi.prototype.createDownloadRequest=function(b,a,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=a);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==a&&(f="1",a="png",null!=this.pages&&null!=this.currentPage))for(var g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){h="&from="+g;break}g=this.editor.graph.background;"png"==a&&e&&(g=mxConstants.NONE);
+return new mxXmlRequest(EXPORT_URL,"format="+a+h+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=b?"&filename="+encodeURIComponent(b):""))};EditorUi.prototype.setMode=function(b,a){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,a,c){var f=window.location.hash,h=mxUtils.bind(this,function(c){var h=null!=b.data?b.data:"";null!=c&&0<c.length&&(0<h.length&&(h+="\n"),h+=c);c=new LocalFile(this,"csv"!=b.format&&0<h.length?h:this.emptyDiagramXml,
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return f};this.fileLoaded(c);"csv"==b.format&&this.importCsv(h,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var d=null!=b.interval?parseInt(b.interval):6E4,l=null,e=mxUtils.bind(this,function(){var a=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(b){a===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),g()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(e,d)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();e()}));g();e()}null!=a&&a()});if(null!=b.url){var d=b.url;/^https?:\/\//.test(d)&&!this.isCorsEnabledForUrl(d)&&
+(d=PROXY_URL+"?url="+encodeURIComponent(b.url));this.loadUrl(d,mxUtils.bind(this,function(b){h(b)}),mxUtils.bind(this,function(b){null!=c&&c(b)}))}else h(b.data)};EditorUi.prototype.updateDiagram=function(b){function a(b){var a=new mxCellOverlay(b.image||d.warningImage,b.tooltip,b.align,b.valign,b.offset);a.addListener(mxEvent.CLICK,function(a,c){editorUi.alert(b.tooltip)});return a}var c=null;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var d=
+this.editor.graph,e=d.getModel();e.beginUpdate();var g=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var w=e.getCell(b.getAttribute("id"));if(null!=w){try{var k=b.getAttribute("value");if(null!=k){var m=mxUtils.parseXml(k).documentElement;if(null!=m)if("1"==m.getAttribute("replace-value"))e.setValue(w,m);else for(var l=m.attributes,v=0;v<l.length;v++)d.setAttributeForCell(w,l[v].nodeName,0<l[v].nodeValue.length?l[v].nodeValue:null)}}catch(A){null!=window.console&&console.log("Error in value for "+
+w.id+": "+A)}try{var n=b.getAttribute("style");null!=n&&d.model.setStyle(w,n)}catch(A){null!=window.console&&console.log("Error in style for "+w.id+": "+A)}try{var p=b.getAttribute("icon");if(null!=p){var y=0<p.length?JSON.parse(p):null;null!=y&&y.append||d.removeCellOverlays(w);null!=y&&d.addCellOverlay(w,a(y))}}catch(A){null!=window.console&&console.log("Error in icon for "+w.id+": "+A)}try{var J=b.getAttribute("geometry");if(null!=J){var J=JSON.parse(J),z=d.getCellGeometry(w);if(null!=z){z=z.clone();
+for(key in J){var C=parseFloat(J[key]);"dx"==key?z.x+=C:"dy"==key?z.y+=C:"dw"==key?z.width+=C:"dh"==key?z.height+=C:z[key]=parseFloat(J[key])}d.model.setGeometry(w,z)}}}catch(A){null!=window.console&&console.log("Error in icon for "+w.id+": "+A)}}}else if("model"==b.nodeName){for(var H=b.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(b.firstChild)).decode(H,e)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(d.view.scale=parseFloat(b.getAttribute("scale"))),
+b.hasAttribute("dx")||b.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(g=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{e.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};EditorUi.prototype.fileLoaded=function(b){var a=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),
+c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));
+this.updateUi();this.showSplash()});if(null!=b)try{this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==b.realtime&&(b.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));a=!0;this.isOffline()||null==b.getMode()||this.logEvent({category:"File",action:"open",label:b.getMode()});if(this.mode==b.getMode()&&b.getMode()!=
+App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(q){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(q){}}catch(q){null!=window.console&&console.log("error in fileLoaded:",b,q);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+
+(null!=q&&null!=q.message?":err:"+encodeURIComponent(q.message):"")+(null!=q&&null!=q.stack?"&stack="+encodeURIComponent(q.stack):"")}catch(t){}this.handleError(q,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return a};EditorUi.prototype.descriptorChanged=
+function(){};EditorUi.prototype.logEvent=function(b){if(EditorUi.enableLogging)try{var a=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=a+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(h){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(b,a,c,d,e,g,w){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=
+function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(b){null==b&&(b=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(b){var a=mxUtils.createXmlDocument(),c=a.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(b));a.appendChild(c);return mxUtils.getXml(a)};EditorUi.prototype.closeLibrary=function(b){null!=
+b&&(this.removeLibrarySidebar(b.getHash()),b.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(b.getHash()),".scratchpad"==b.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(b){var a=this.sidebar.palettes[b];if(null!=a){for(var c=0;c<a.length;c++)a[c].parentNode.removeChild(a[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var a=this.sidebar.container;if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=
+this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=null!=b?b:a.firstChild.nextSibling.nextSibling;var c=a.lastChild,d=c.previousSibling;a.insertBefore(c,b);a.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(b){var a=mxUtils.parseXml(b.getData());if("mxlibrary"==a.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(a.documentElement));this.libraryLoaded(b,c,a.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};
+EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,a,c){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var h=null,d=mxUtils.bind(this,function(a,c){if(0==a.length&&b.isEditable())null==h&&(h=document.createElement("div"),mxUtils.setPrefixedStyle(h.style,
+"borderRadius","6px"),h.style.border="3px dotted lightGray",h.style.textAlign="center",h.style.padding="8px",h.style.color="#B3B3B3",mxUtils.write(h,mxResources.get("dragElementsHere"))),c.appendChild(h);else for(var f=0;f<a.length;f++){var l=a[f],d=l.data;if(null!=d){var d=this.convertDataUri(d),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==l.aspect&&(e+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(e+"image="+d,l.w,l.h,"",l.title||"",!1,
+!1,!0))}else null!=l.xml&&(d=this.stringToCells(this.editor.graph.decompress(l.xml)),0<d.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(d,l.w,l.h,l.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=a)for(var e=0;e<a.length;e++)mxUtils.bind(this,function(b){var a=b.data;null!=a&&null!=b.title?this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){a=this.convertDataUri(a);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==b.aspect&&(c+=
+"aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+a,b.w,b.h,"",b.title||"",!1,!1,!0)})):null!=b.xml&&null!=b.title&&this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){var a=this.stringToCells(this.editor.graph.decompress(b.xml));return this.sidebar.createVertexTemplateFromCells(a,b.w,b.h,b.title||"",!0,!1,!0)}))})(a[e]);c=null!=c&&0<c.length?c:b.getTitle();var g=this.sidebar.addPalette(b.getHash(),c,!0,mxUtils.bind(this,function(b){d(a,b)}));this.repositionLibrary(f);var k=
+g.parentNode.previousSibling;c=k.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+c);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(l.style.backgroundColor="inherit");k.style.position="relative";var v=document.createElement("img");v.setAttribute("src",Dialog.prototype.closeImage);v.setAttribute("title",
+mxResources.get("close"));v.setAttribute("valign","absmiddle");v.setAttribute("border","0");v.style.margin="0 3px";var m=null;if(".scratchpad"!=b.title||this.closableScratchpad)l.appendChild(v),mxEvent.addListener(v,"click",mxUtils.bind(this,function(a){if(!mxEvent.isConsumed(a)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=m?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(a)}}));if(b.isEditable()){var n=
+this.editor.graph,p=null,J=mxUtils.bind(this,function(c){this.showLibraryDialog(b.getTitle(),g,a,b,b.getMode());mxEvent.consume(c)}),z=mxUtils.bind(this,function(c){b.setModified(!0);b.isAutosave()?(null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p),p=v.cloneNode(!1),p.setAttribute("src",Editor.spinImage),p.setAttribute("title",mxResources.get("saving")),p.style.cursor="default",p.style.marginRight="2px",p.style.marginTop="-2px",l.insertBefore(p,l.firstChild),k.style.paddingRight=18*l.childNodes.length+
+"px",this.saveLibrary(b.getTitle(),a,b,b.getMode(),!0,!0,function(){null!=p&&null!=p.parentNode&&(p.parentNode.removeChild(p),k.style.paddingRight=18*l.childNodes.length+"px")})):null==m&&(m=v.cloneNode(!1),m.setAttribute("src",IMAGE_PATH+"/download.png"),m.setAttribute("title",mxResources.get("save")),l.insertBefore(m,l.firstChild),mxEvent.addListener(m,"click",mxUtils.bind(this,function(c){this.saveLibrary(b.getTitle(),a,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==m||b.isModified()||
+(k.style.paddingRight=18*l.childNodes.length+"px",m.parentNode.removeChild(m),m=null)});mxEvent.consume(c)})),k.style.paddingRight=18*l.childNodes.length+"px")}),C=mxUtils.bind(this,function(b,c,f,l){b=n.cloneCells(mxUtils.sortCells(n.model.getTopmostCells(b)));for(var d=0;d<b.length;d++){var e=n.getCellGeometry(b[d]);null!=e&&e.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,c.width,c.height,l||"",!0,!1,!1));b={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
+w:c.width,h:c.height};null!=l&&(b.title=l);a.push(b);z(f);null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)}),H=mxUtils.bind(this,function(b){if(n.isSelectionEmpty())n.getRubberband().isActive()?(n.getRubberband().execute(b),n.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var a=n.getSelectionCells(),c=n.view.getBounds(a),f=n.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=n.view.translate.x;
+c.y-=n.view.translate.y;C(a,c)}mxEvent.consume(b)});g.style.border="3px solid transparent";mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="hidden",null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)",g.style.cursor="copy",n.panningManager.stop(),n.autoScroll=!1,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!1),
+null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(b))}),mxUtils.bind(this,function(b){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler&&(g.style.border="3px solid transparent",null!=h&&(h.style.border="3px dotted lightGray"),g.style.cursor="default",this.sidebar.showTooltips=!0,n.panningManager.stop(),n.graphHandler.reset(),n.isMouseDown=!1,n.autoScroll=!0,H(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){n.isMouseDown&&
+null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="visible",g.style.border="3px solid transparent",g.style.cursor="",n.autoScroll=!0,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!0),null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="visible"),null!=h&&(h.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)";
+b.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.border="3px solid transparent";g.style.cursor="";null!=h&&(h.style.border="3px dotted lightGray");0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,f,l,e,v,q,u,w,t){if(null!=c&&"image/"==f.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+
+this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,v,q),c)],c[0].vertex=!0,C(c,new mxRectangle(0,0,v,q),b,mxEvent.isAltDown(b)?null:u.substring(0,u.lastIndexOf(".")).replace(/_/g," ")),null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null);else{var k=!1,m=mxUtils.bind(this,function(c,f){if(null!=c&&"text/xml"==f){var l=mxUtils.parseXml(c);if("mxlibrary"==l.documentElement.nodeName)try{var e=JSON.parse(mxUtils.getTextContent(l.documentElement));d(e,g);a=a.concat(e);z(b);
+this.spinner.stop();k=!0}catch(U){}else if("mxfile"==l.documentElement.nodeName)try{for(var v=l.documentElement.getElementsByTagName("diagram"),l=0;l<v.length;l++){var e=mxUtils.getTextContent(v[l]),q=this.stringToCells(this.editor.graph.decompress(e)),u=this.editor.graph.getBoundingBoxFromGeometry(q);C(q,new mxRectangle(0,0,u.width,u.height),b)}k=!0}catch(U){null!=window.console&&console.log("error in drop handler:",U)}}k||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)});null!=t&&null!=u&&(/(\.vsdx?)($|\?)/i.test(u)||/(\.vssx)($|\?)/i.test(u))?this.importVisio(t,function(b){m(b,"text/xml")},null,u):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,u)&&null!=t?this.parseFile(t,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?m(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":
+"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):m(c,f)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){null!=h?h.style.border="3px dotted lightGray":(g.style.border="3px solid transparent",g.style.cursor="");b.stopPropagation();b.preventDefault()}));v=v.cloneNode(!1);v.setAttribute("src",Editor.editImage);v.setAttribute("title",mxResources.get("edit"));l.insertBefore(v,l.firstChild);mxEvent.addListener(v,"click",J);mxEvent.addListener(g,
+"dblclick",function(b){mxEvent.getSource(b)==g&&J(b)});c=v.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));l.insertBefore(c,l.firstChild);mxEvent.addListener(c,"click",H);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
+mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),l.insertBefore(c,l.firstChild))}k.appendChild(l);k.style.paddingRight=18*l.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var b=document.getElementById("geFooter");
+if(null!=b){b.style.visibility="visible";var a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",Dialog.prototype.closeImage);a.setAttribute("title",mxResources.get("hide"));b.appendChild(a);mxClient.IS_QUIRKS&&(a.style.position="relative",a.style.styleFloat="right",a.style.top="-30px",a.style.left="164px",a.style.cursor="pointer");mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return b});EditorUi.initTheme=function(){"atlas"==uiTheme?
+(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=
+5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",
+Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",
+Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var b=document.getElementById("geFooter");null!=b&&(this.footerHeight=0,b.style.display=
+"none",this.refresh())};EditorUi.prototype.showFooter=function(b){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=b,a.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(b,a,c,d,e){b=new ImageDialog(this,b,a,c,d,e);this.showDialog(b.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);b.init()};EditorUi.prototype.showBackgroundImageDialog=function(b){b=null!=b?b:mxUtils.bind(this,function(b){b=new ChangePageSetup(this,null,b);b.ignoreColor=
+!0;this.editor.graph.model.execute(b)});var a=new BackgroundImageDialog(this,mxUtils.bind(this,function(a){b(a)}));this.showDialog(a.container,360,200,!0,!0);a.init()};EditorUi.prototype.showLibraryDialog=function(b,a,c,d,e){b=new LibraryDialog(this,b,a,c,d,e);this.showDialog(b.container,620,440,!0,!1,mxUtils.bind(this,function(b){b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));b.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer");
+b.style.position="absolute";b.style.overflow="hidden";b.style.borderWidth="3px";var a=document.createElement("a");a.setAttribute("href","javascript:void(0);");a.className="geTitle";a.style.height="100%";a.style.paddingTop="9px";mxUtils.write(a,mxResources.get("moreShapes")+"...");mxEvent.addListener(a,"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(a);return b};EditorUi.prototype.handleError=function(b,a,c){var f=null!=this.spinner&&null!=
+this.spinner.pause?this.spinner.pause():function(){},h=null!=b&&null!=b.error?b.error:b;if(null!=h||null!=a){b=mxUtils.htmlEntities(mxResources.get("unknownError"));var d=mxResources.get("ok"),e=null;a=null!=a?a:mxResources.get("error");if(null!=h)if(null!=h.retry&&(d=mxResources.get("cancel"),e=function(){f();h.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.FORBIDDEN)b=mxUtils.htmlEntities(mxResources.get("forbidden"));
+else if(404==h.code||404==h.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.NOT_FOUND){b=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var g=window.location.hash;null!=g&&"#G"==g.substring(0,2)&&(g=g.substring(2),b+=' <a href="https://drive.google.com/open?id='+g+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else h.code==App.ERROR_TIMEOUT?b=
+mxUtils.htmlEntities(mxResources.get("timeout")):h.code==App.ERROR_BUSY?b=mxUtils.htmlEntities(mxResources.get("busy")):null!=h.message?b=mxUtils.htmlEntities(h.message):null!=h.response&&null!=h.response.error&&(b=mxUtils.htmlEntities(h.response.error));this.showError(a,b,d,c,e)}else null!=c&&c()};EditorUi.prototype.showError=function(b,a,c,d,e,g,w,k,m,l,v,n){b=new ErrorDialog(this,b,a,c||mxResources.get("ok"),d,e,g,w,n,k,m);this.showDialog(b.container,l||340,v||150,!0,!1);b.init()};EditorUi.prototype.alert=
+function(b,a){var c=new ErrorDialog(this,null,b,mxResources.get("ok"),a);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(b,a,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,b,function(){f();null!=a&&a()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(b){this.currentFile=b};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};
+EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(b)))};EditorUi.prototype.createImageDataUri=function(b,a,c){var f=b.toDataURL("image/"+c);if(6>=f.length||f==b.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=a&&(f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(a))));
+return f};EditorUi.prototype.saveCanvas=function(b,a,c){var f="jpeg"==c?"jpg":c,h=this.getBaseFilename()+"."+f;b=this.createImageDataUri(b,a,c);this.saveData(h,f,b.substring(b.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};
+EditorUi.prototype.doSaveLocalFile=function(b,a,c,d,e){if(window.Blob&&navigator.msSaveOrOpenBlob)b=d?this.base64ToBlob(b,c):new Blob([b],{type:c}),navigator.msSaveOrOpenBlob(b,a);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(b,!0):(c.document.write(b),c.document.close(),c.document.execCommand("SaveAs",!0,a),c.close());else if(mxClient.IS_IOS)a=new TextareaDialog(this,a+":",b,null,null,mxResources.get("close")),a.textarea.style.width="600px",a.textarea.style.height=
+"380px",this.showDialog(a.container,620,460,!0,!0),a.init(),document.execCommand("selectall",!1,null);else{var f=document.createElement("a"),h=!mxClient.IS_SF&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),h=65==(g?parseInt(g[2],10):!1)?!1:h;if(h||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(b,c):new Blob([b],{type:c}));h?f.download=a:f.setAttribute("target","_blank");document.body.appendChild(f);try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},
+0),f.click(),f.parentNode.removeChild(f)}catch(B){}}else this.createEchoRequest(b,a,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,a,c,d,e,g){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=a?"&filename="+encodeURIComponent(a):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,a){a=a||"";for(var c=atob(b),f=c.length,d=Math.ceil(f/1024),e=Array(d),
+g=0;g<d;++g){for(var k=1024*g,m=Math.min(k+1024,f),l=Array(m-k),v=0;k<m;++v,++k)l[v]=c[k].charCodeAt(0);e[g]=new Uint8Array(l)}return new Blob(e,{type:a})};EditorUi.prototype.saveLocalFile=function(b,a,c,d,e,g,k){g=null!=g?g:!1;k=null!=k?k:"vsdx"!=e&&(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,f){try{if("_blank"==f)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var l=window.open("about:blank");
+null==l?mxUtils.popup(b,!0):(l.document.write(mxUtils.htmlEntities(b,!1)),l.document.close())}else this.openInNewWindow(b,c,d);else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,a,c,d):null!=a&&0<a.length&&this.pickFolder(f,mxUtils.bind(this,function(l){try{this.exportFile(b,a,c,d,f,l)}catch(G){this.handleError(G)}}))}catch(v){this.handleError(v)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,k,null,1<e,4<e&&(!g||6>e)?3:4,
+b,c,d);this.showDialog(a.container,420,e==(mxClient.IS_IOS?0:1)?160:4<e?390:270,!0,!0);a.init()};EditorUi.prototype.openInNewWindow=function(b,a,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var f=window.open("about:blank");null==f?mxUtils.popup(b,!0):("image/svg+xml"==a?f.document.write("<html>"+b+"</html>"):f.document.write('<html><img src="data:'+a+(c?";base64,"+b:";charset=utf8,"+encodeURIComponent(b))+'"/></html>'),f.document.close())}else f=window.open("data:"+
+a+(c?";base64,"+b:";charset=utf8,"+encodeURIComponent(b))),null==f&&mxUtils.popup(b,!0)};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(b){if(this.isExportToCanvas()){this.exportDialog=null;var a=b(mxUtils.bind(this,function(b){var c=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",c);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=
+this.exportDialog)c.apply(this);else{this.exportDialog=document.createElement("div");var f=a.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color=
+"#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=f.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";f=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=f.zIndex;var d=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});d.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,
+function(b){d.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var a=this.createImageDataUri(b,null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.maxHeight="140px";b.style.cursor="pointer";b.setAttribute("title",mxResources.get("openInNewWindow"));b.setAttribute("border","0");b.setAttribute("src",a);this.exportDialog.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.openInNewWindow(a.substring(a.indexOf(",")+
+1),"image/png",!0);c.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));mxEvent.addListener(this.editor.graph.container,"click",c);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(b,a,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,b,d,e,a):this.saveRequest(b,a,mxUtils.bind(this,function(b,
+f){return this.createEchoRequest(c,b,d,e,a,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(b,a,c,d,e,g,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,f){if("_blank"==f||null!=b&&0<b.length){var l=c("_blank"==f?null:b,f==App.MODE_DEVICE||"download"==f||null==f||"_blank"==f?"0":"1");null!=l&&(f==App.MODE_DEVICE||"download"==f||"_blank"==f?l.simulate(document,"_blank"):this.pickFolder(f,mxUtils.bind(this,
+function(c){g=null!=g?g:"pdf"==a?"application/pdf":"image/"+a;if(null!=d)try{this.exportFile(d,b,g,!0,f,c)}catch(F){this.handleError(F)}else this.spinner.spin(document.body,mxResources.get("saving"))&&l.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=l.getStatus()&&299>=l.getStatus())try{this.exportFile(l.getText(),b,g,!0,f,c)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(b){this.spinner.stop();this.handleError(b)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,k,null,1<f,4<f?3:4,d,g,e);this.showDialog(b.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);b.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,a,c,d,e,g){};EditorUi.prototype.pickFolder=function(b,a,c){a(null)};EditorUi.prototype.exportSvg=function(b,a,c,d,e,g,k,m,n){if(this.spinner.spin(document.body,
+mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=a?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==a&&(f="#ffffff");var h=this.editor.graph.getSvg(f,b,k,m,null,c);d&&this.editor.graph.addSvgShadow(h);var q=this.getBaseFilename()+".svg",u=mxUtils.bind(this,function(b){this.spinner.stop();e&&b.setAttribute("content",this.getFileData(!0,null,null,null,c,n));if(null!=this.editor.fontCss){var a=b.ownerDocument,a=null!=a.createElementNS?
+a.createElementNS(mxConstants.NS_SVG,"style"):a.createElement("style");a.setAttribute("type","text/css");mxUtils.setTextContent(a,this.editor.fontCss);b.getElementsByTagName("defs")[0].appendChild(a)}var f='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(b);this.isLocalFileSave()||f.length<=MAX_REQUEST_SIZE?this.saveData(q,"svg",f,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
+mxUtils.bind(this,function(){mxUtils.popup(f)}))});this.convertMath(this.editor.graph,h,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(h,u,this.thumbImageCache)):u(h)}))}};EditorUi.prototype.addCheckbox=function(b,a,c,d,e,g){g=null!=g?g:!0;var f=document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type","checkbox");c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled",
+"disabled");g&&(b.appendChild(f),c=document.createElement("span"),mxUtils.write(c,a),b.appendChild(c),e||mxUtils.br(b),mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){"disabled"!=f.getAttribute("disabled")&&(f.checked=!f.checked,mxEvent.consume(b))})));return f};EditorUi.prototype.addEditButton=function(b,a){var c=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var f=this.getCurrentFile(),d="";null!=f&&f.getMode()!=App.MODE_DEVICE&&f.getMode()!=App.MODE_BROWSER&&
+(d=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("makeCopy"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","custom");mxUtils.write(f,mxResources.get("custom")+"...");e.appendChild(f);b.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==
+e.value){var b=new FilenameDialog(this,d,mxResources.get("ok"),function(b){null!=b?d=b:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(b.container,300,80,!0,!1);b.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==a||a.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":d:null},getEditInput:function(){return c},
+getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(b,a){function c(){g.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(b,mxResources.get("links")+":");var f=document.createElement("select");f.style.width="100px";f.style.marginLeft=
+"8px";f.style.marginRight="10px";f.className="geBtn";var d=document.createElement("option");d.setAttribute("value","auto");mxUtils.write(d,mxResources.get("automatic"));f.appendChild(d);d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("openInNewWindow"));f.appendChild(d);d=document.createElement("option");d.setAttribute("value","self");mxUtils.write(d,mxResources.get("openInThisWindow"));f.appendChild(d);a&&(d=document.createElement("option"),d.setAttribute("value",
+"frame"),mxUtils.write(d,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),f.appendChild(d));b.appendChild(f);mxUtils.write(b,mxResources.get("borderColor")+":");var e="#0000ff",g=null,g=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(e||"none",function(b){e=b;c()});mxEvent.consume(b)}));c();g.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";g.style.marginLeft="4px";g.style.height="22px";g.style.width="22px";g.style.position="relative";g.style.top=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";g.className="geColorBtn";b.appendChild(g);mxUtils.br(b);return{getColor:function(){return e},getTarget:function(){return f.value},focus:function(){f.focus()}}};EditorUi.prototype.createLink=function(b,a,c,d,e,g,k,m){var f=this.getCurrentFile(),l=[];d&&(l.push("lightbox=1"),"auto"!=b&&l.push("target="+b),null!=a&&a!=mxConstants.NONE&&l.push("highlight="+("#"==a.charAt(0)?a.substring(1):a)),null!=e&&0<e.length&&l.push("edit="+encodeURIComponent(e)),g&&
+l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){0<b&&l.push("page="+b);break}b=!0;null!=k?c="#U"+encodeURIComponent(k):(f=this.getCurrentFile(),m||null==f||f.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+f.getHash(),b=!1));
+b&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&l.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<l.length?"?"+l.join("&"):"")+c};EditorUi.prototype.createHtml=function(b,a,c,d,e,g,k,m,n,l,v){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d);n||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;
+c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];k&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));a&&(c.push("zoom"),f.resize=!0);m&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),f.toolbar=c.join(" "));null!=l&&0<l.length&&(f.edit=l);null!=b?f.url=b:f.xml=this.getFileData(!0,null,null,null,null,!k);a='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(f))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";v(a,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,a,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");
+mxUtils.write(e,mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(e);var h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");e=g.cloneNode(!0);e.setAttribute("value",
+"copy");h.appendChild(e);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));h.appendChild(k);mxUtils.br(h);h.appendChild(g);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));h.appendChild(k);var l=this.getCurrentFile();null==c&&null!=l&&l.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),
+h.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var v=this.addLinkSection(f),u=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight=
+"12px";m.value="100%";f.appendChild(m);var n=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,p=p=this.addCheckbox(f,mxResources.get("allPages"),h,!h),z=this.addCheckbox(f,mxResources.get("layers"),!0),C=this.addCheckbox(f,mxResources.get("lightbox"),!0),H=this.addEditButton(f,C),A=H.getEditInput();A.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?A.removeAttribute("disabled"):A.setAttribute("disabled","disabled");A.checked&&C.checked?
+H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,u.checked,m.value,v.getTarget(),v.getColor(),n.checked,p.checked,z.checked,C.checked,H.getLink())}),null,b,a);this.showDialog(b.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,a,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=document.createElement("h3");
+mxUtils.write(h,b||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var k=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";b=0;if(null!=k&&k.constructor==window.DriveFile&&!a){b=80;var h="https://desk.draw.io/support/solutions/articles/16000039384",l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var v=document.createElement("div");v.style.whiteSpace="normal";mxUtils.write(v,mxResources.get("linkAccountRequired"));l.appendChild(v);v=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));v.style.marginTop="12px";v.className="geBtn";l.appendChild(v);f.appendChild(l);v=document.createElement("a");v.style.paddingLeft="12px";v.style.color="gray";v.style.fontSize="11px";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("check"));
+l.appendChild(v);mxEvent.addListener(v,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,u=null;if(null!=c||null!=d)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"),
+q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),u=document.createElement("input"),u.setAttribute("type","text"),u.style.width="50px",u.style.marginLeft="6px",u.style.marginBottom="10px",u.value=d+"px",f.appendChild(u),mxUtils.br(f);var m=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var n=null;
+if(null==k||k.constructor!=window.DriveFile||a)n=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var t=this.addCheckbox(f,mxResources.get("lightbox"),!0),p=this.addEditButton(f,t),H=p.getEditInput(),A=this.addCheckbox(f,mxResources.get("layers"),!0);A.style.marginLeft=H.style.marginLeft;A.style.marginBottom="16px";A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(A.removeAttribute("disabled"),H.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),H.setAttribute("disabled",
+"disabled"));H.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){e(m.getTarget(),m.getColor(),null==n?!0:n.checked,t.checked,p.getLink(),A.checked,null!=q?q.value:null,null!=u?u.value:null)}),null,mxResources.get("create"),h);this.showDialog(a.container,340,254+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():
+document.execCommand("selectAll",!1,null)):m.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,a,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),
+!0),e=this.editor.graph,k=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=k&&(k.style.marginBottom="16px");b=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=k?k.checked:!1)}),null,b,a);this.showDialog(b.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(b,a,c,d,e,g,k,m){k=null!=k?k:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=
+this.editor.graph,h="jpeg"==m?196:300,q=document.createElement("h3");mxUtils.write(q,b);q.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(q);mxUtils.write(f,mxResources.get("zoom")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=this.lastExportZoom||"100%";f.appendChild(u);mxUtils.write(f,mxResources.get("borderWidth")+":");
+var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px";n.style.width="60px";n.style.marginLeft="4px";n.value=this.lastExportBorder||"0";f.appendChild(n);mxUtils.br(f);var w=this.addCheckbox(f,mxResources.get("transparentBackground"),l.background==mxConstants.NONE||null==l.background,null,null,"jpeg"!=m),t=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),p=document.createElement("input");p.style.marginTop="16px";p.style.marginRight=
+"8px";p.style.marginLeft="24px";p.setAttribute("disabled","disabled");p.setAttribute("type","checkbox");g&&(f.appendChild(p),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),h+=26,mxEvent.addListener(t,"change",function(){t.checked?p.removeAttribute("disabled"):p.setAttribute("disabled","disabled")}));l.isSelectionEmpty()||(p.setAttribute("checked","checked"),p.defaultChecked=!0);var x=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible),A=document.createElement("input");A.style.marginTop=
+"16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||A.setAttribute("disabled","disabled");a&&(f.appendChild(A),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),h+=26);var L=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=m),D=null!=this.pages&&1<this.pages.length,E=this.addCheckbox(f,D?mxResources.get("allPages"):"",D,!D,null,"jpeg"!=m);E.style.marginLeft="24px";E.style.marginBottom="16px";D||(E.style.visibility=
+"hidden");mxEvent.addListener(L,"change",function(){L.checked&&D?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")});k&&D||E.setAttribute("disabled","disabled");b=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=n.value;this.lastExportZoom=u.value;e(u.value,w.checked,!t.checked,x.checked,L.checked,A.checked,n.value,p.checked,!E.checked)}),null,c,d);this.showDialog(b.container,340,h,!0,!0);u.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
+mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,a,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=this.editor.graph;if(null!=a){var g=document.createElement("h3");mxUtils.write(g,a);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),l=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,
+!d),v=this.addCheckbox(f,c),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),u=this.addEditButton(f,q),m=u.getEditInput(),n=1<h.model.getChildCount(h.model.getRoot()),p=this.addCheckbox(f,mxResources.get("layers"),n,!n);p.style.marginLeft=m.style.marginLeft;p.style.marginBottom="12px";p.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(n&&p.removeAttribute("disabled"),m.removeAttribute("disabled")):(p.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"));
+m.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,l.checked,v.checked,q.checked,u.getLink(),p.checked)}),null,mxResources.get("embed"),e);this.showDialog(a.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,a,c,d,e,g,k,m){function f(a){var f=" ",h="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",h+="cursor:pointer;");b&&(h+="max-width:100%;");var v="";c&&(v=' width="'+Math.round(l.width)+'" height="'+Math.round(l.height)+'"');k('<img src="'+a+'"'+v+(""!=h?' style="'+h+'"':"")+f+"/>")}var l=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(b){var a=d?this.getFileData(!0):null;b=this.createImageDataUri(b,a,"png");f(b)}),null,null,null,mxUtils.bind(this,function(b){m({message:mxResources.get("unknownError")})}),
+null,!0,c?2:1,null,a);else if(a=this.getFileData(!0),l.width*l.height<=MAX_AREA&&a.length<=MAX_REQUEST_SIZE){var h="";c&&(h="&w="+Math.round(2*l.width)+"&h="+Math.round(2*l.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+h+"&xml="+encodeURIComponent(a));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&299>=q.getStatus()?f("data:image/png;base64,"+q.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(b,a,c,d,e,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var l=0;l<h.length;l++){var v=h[l].getAttribute("href");null!=v&&"#"==v.charAt(0)&&"_blank"==h[l].getAttribute("target")&&h[l].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));a&&this.editor.graph.addSvgShadow(f);if(c){var q=" ",u="";d&&(q="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",u+="cursor:pointer;");b&&(u+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(b){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=u?' style="'+u+'"':"")+q+"/>")}))}else u="",d&&(f.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),b&&(b=parseInt(f.getAttribute("width")),a=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+b+" "+a),u+="max-width:100%;max-height:"+a+"px;",f.removeAttribute("height")),""!=u&&f.setAttribute("style",u),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(b){b=Math.floor((new Date-b)/1E3);var a=Math.floor(b/31536E3);if(1<a)return a+" "+mxResources.get("years");a=Math.floor(b/2592E3);if(1<a)return a+
 " "+mxResources.get("months");a=Math.floor(b/86400);if(1<a)return a+" "+mxResources.get("days");a=Math.floor(b/3600);if(1<a)return a+" "+mxResources.get("hours");a=Math.floor(b/60);return 1<a?a+" "+mxResources.get("minutes"):1==a?a+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(b,a,c,d){d()};EditorUi.prototype.decodeNodeIntoGraph=function(b,a){if(null!=b){var c=null;if("diagram"==b.nodeName)c=b;else if("mxfile"==b.nodeName){var f=b.getElementsByTagName("diagram");if(0<
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index d6d337d28..af290be84 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -507,7 +507,8 @@
 		    	{
 		    		// Gets compressed data from mxgraph element in HTML document
 					var doc = mxUtils.parseXml(data);
-					var node = this.editor.extractGraphModel(doc.documentElement, this.pages != null);
+					var node = this.editor.extractGraphModel(doc.documentElement, this.pages != null ||
+						this.diagramContainer.style.visibility == 'hidden');
 					result = (node != null) ? mxUtils.getXml(node) : '';
 		    	}
 			}
@@ -8441,29 +8442,29 @@
 									}
 									else
 									{
-									    	var data = null;
-									    	
-									    	if (mxUtils.indexOf(provider.types, 'text/uri-list') >= 0)
-									    	{
-									    		var data = evt.dataTransfer.getData('text/uri-list');
-									    	}
-									    	else
-									    	{
-									    		data = (mxUtils.indexOf(provider.types, 'text/html') >= 0) ? provider.getData('text/html') : null;
-									    	}
+								    	var data = null;
+								    	
+								    	if (mxUtils.indexOf(provider.types, 'text/uri-list') >= 0)
+								    	{
+								    		var data = evt.dataTransfer.getData('text/uri-list');
+								    	}
+								    	else
+								    	{
+								    		data = (mxUtils.indexOf(provider.types, 'text/html') >= 0) ? provider.getData('text/html') : null;
+								    	}
 										
 										if (data != null && data.length > 0)
 										{
 											var div = document.createElement('div');
-									    		div.innerHTML = data;
-			
-									    		// Extracts single image
-									    		var imgs = div.getElementsByTagName('img');
-									    		
-									    		if (imgs.length > 0)
-									    		{
-									    			data = imgs[0].getAttribute('src');
-									    		}
+								    		div.innerHTML = data;
+		
+								    		// Extracts single image
+								    		var imgs = div.getElementsByTagName('img');
+								    		
+								    		if (imgs.length > 0)
+								    		{
+								    			data = imgs[0].getAttribute('src');
+								    		}
 										}
 										else if (mxUtils.indexOf(provider.types, 'text/plain') >= 0)
 										{
@@ -8485,12 +8486,12 @@
 										}
 										else if (!this.isOffline() && this.isRemoteFileFormat(data))
 										{
-								    			new mxXmlRequest(OPEN_URL, 'format=xml&data=' + encodeURIComponent(data)).send(mxUtils.bind(this, function(req)
+								    		new mxXmlRequest(OPEN_URL, 'format=xml&data=' + encodeURIComponent(data)).send(mxUtils.bind(this, function(req)
 											{
-									    			if (req.getStatus() >= 200 && req.getStatus() <= 299)
-									    			{
-									    				this.openLocalFile(req.getText(), null, true);
-									    			}
+								    			if (req.getStatus() >= 200 && req.getStatus() <= 299)
+								    			{
+								    				this.openLocalFile(req.getText(), null, true);
+								    			}
 											}));
 										}
 										else if (/^https?:\/\//.test(data))
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar.js b/src/main/webapp/js/diagramly/sidebar/Sidebar.js
index 1d7e0b320..66b4237a5 100644
--- a/src/main/webapp/js/diagramly/sidebar/Sidebar.js
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar.js
@@ -1105,7 +1105,7 @@
 				{
 					var pg = page - Math.ceil((len - count / 4) / count);
 	
-					mxUtils.get(ICONSEARCH_PATH + '?v=2&q=' + encodeURIComponent(searchTerms) +
+					mxUtils.get(ICONSEARCH_PATH + '?q=' + encodeURIComponent(searchTerms) +
 						'&p=' + pg + '&c=' + count, mxUtils.bind(this, function(req)
 					{
 						try
diff --git a/src/main/webapp/js/embed-static.min.js b/src/main/webapp/js/embed-static.min.js
index 4434003ce..e478d3146 100644
--- a/src/main/webapp/js/embed-static.min.js
+++ b/src/main/webapp/js/embed-static.min.js
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
 e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
 "function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
 "]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.7.4",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.7.5",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
 0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -453,19 +453,19 @@ function mxStencil(a){this.desc=a;this.parseDescription();this.parseConstraints(
 mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
 mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
 mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
-mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),h=Math.min(g.width,g.height),h="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*h;a.setStrokeWidth(h);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);b.outline&&null!=b.style&&1!=mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||this.drawChildren(a,b,c,d,e,
-f,this.fgNode,g,!0)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,h,k){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,h,k),c=c.nextSibling};
+mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),h=Math.min(g.width,g.height),h="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*h;a.setStrokeWidth(h);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,
+0))};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,h,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,h,k,l),c=c.nextSibling};
 mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var h=(d-e)/2;a+=h;c-=h}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,h=d.y,k=d.width,l=d.height,m=Math.min(k,l);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling;else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*
-l);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*k,h+Number(c.getAttribute("y1"))*l,g+Number(c.getAttribute("x2"))*k,h+Number(c.getAttribute("y2"))*l);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*k,h+Number(c.getAttribute("y1"))*l,g+Number(c.getAttribute("x2"))*k,h+Number(c.getAttribute("y2"))*l,g+Number(c.getAttribute("x3"))*k,h+Number(c.getAttribute("y3"))*l);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*k,Number(c.getAttribute("ry"))*l,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,Number(c.getAttribute("w"))*k,Number(c.getAttribute("h"))*l);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),m=Number(c.getAttribute("w"))*k,d=Number(c.getAttribute("h"))*l,b=Number(b)/100,b=Math.min(m*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,m,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,Number(c.getAttribute("w"))*k,Number(c.getAttribute("h"))*l);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,Number(c.getAttribute("w"))*k,Number(c.getAttribute("h"))*l,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){m=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var n=b.rotation,p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-n:p||b?d+n:d-n}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,0,0,m,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)n=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=n&&(g+=Number(c.getAttribute("x"))*k,h+=Number(c.getAttribute("y"))*l,m=Number(c.getAttribute("w"))*k,d=Number(c.getAttribute("h"))*l,n.drawShape(a,b,g,h,m,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)k="1"==c.getAttribute("fixed")?1:m,a.setStrokeWidth(Number(c.getAttribute("width"))*k);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");k=[];for(l=0;l<c.length;l++)0<c[l].length&&k.push(Number(c[l])*m);c=k.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
-mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
-mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,h=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e,f),c=c.nextSibling;else if("close"==g)a.close();else if("move"==g)a.moveTo(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==g)a.lineTo(h+Number(c.getAttribute("x"))*l,k+
+Number(c.getAttribute("y"))*m);else if("quad"==g)a.quadTo(h+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,h+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==g)a.curveTo(h+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,h+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,h+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*
+m,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==g)a.rect(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*
+m,b=Number(b)/100,b=Math.min(n*b,d*b),a.roundrect(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==g)a.ellipse(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),
+"1"==c.getAttribute("flipV")));else if("text"==g){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){f=b.rotation;var p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-f:p||b?d+f:d-f}d-=c.getAttribute("rotation");a.text(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||
+"top",!1,"",null,!1,d)}}else if("include-shape"==g)f=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=f&&(h+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,f.drawShape(a,b,h,k,n,d));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==
+g)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):
+"alpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
+mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;
+mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
 mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
 mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
 mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
diff --git a/src/main/webapp/js/mxgraph/Graph.js b/src/main/webapp/js/mxgraph/Graph.js
index c2e56fe90..30e9eb791 100644
--- a/src/main/webapp/js/mxgraph/Graph.js
+++ b/src/main/webapp/js/mxgraph/Graph.js
@@ -567,6 +567,9 @@ Graph = function(container, model, renderHint, stylesheet, themes)
 	    };
 
 	    // Activates outline connect after 1500ms with touch event or if alt is pressed inside the shape
+	    // outlineConnect=0 is a custom style that means do not connect to strokes inside the shape,
+	    // or in other words, connect to the shape's perimeter if the highlight is under the mouse
+	    // (the name is because the highlight, including all strokes, is called outline in the code)
 	    var connectionHandleIsOutlineConnectEvent = this.connectionHandler.isOutlineConnectEvent;
 	    
 	    this.connectionHandler.isOutlineConnectEvent = function(me)
diff --git a/src/main/webapp/js/reader.min.js b/src/main/webapp/js/reader.min.js
index 1f96e2bd9..ae292dec9 100644
--- a/src/main/webapp/js/reader.min.js
+++ b/src/main/webapp/js/reader.min.js
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
 e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
 "function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
 "]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.7.4",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.7.5",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
 0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -453,19 +453,19 @@ function mxStencil(a){this.desc=a;this.parseDescription();this.parseConstraints(
 mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
 mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
 mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
-mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),h=Math.min(g.width,g.height),h="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*h;a.setStrokeWidth(h);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);b.outline&&null!=b.style&&1!=mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||this.drawChildren(a,b,c,d,e,
-f,this.fgNode,g,!0)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,h,k){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,h,k),c=c.nextSibling};
+mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),h=Math.min(g.width,g.height),h="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*h;a.setStrokeWidth(h);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,
+0))};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,h,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,h,k,l),c=c.nextSibling};
 mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var h=(d-e)/2;a+=h;c-=h}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,h=d.y,k=d.width,l=d.height,m=Math.min(k,l);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling;else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*
-l);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*k,h+Number(c.getAttribute("y1"))*l,g+Number(c.getAttribute("x2"))*k,h+Number(c.getAttribute("y2"))*l);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*k,h+Number(c.getAttribute("y1"))*l,g+Number(c.getAttribute("x2"))*k,h+Number(c.getAttribute("y2"))*l,g+Number(c.getAttribute("x3"))*k,h+Number(c.getAttribute("y3"))*l);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*k,Number(c.getAttribute("ry"))*l,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,Number(c.getAttribute("w"))*k,Number(c.getAttribute("h"))*l);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),m=Number(c.getAttribute("w"))*k,d=Number(c.getAttribute("h"))*l,b=Number(b)/100,b=Math.min(m*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,m,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,Number(c.getAttribute("w"))*k,Number(c.getAttribute("h"))*l);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,Number(c.getAttribute("w"))*k,Number(c.getAttribute("h"))*l,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){m=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var n=b.rotation,p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-n:p||b?d+n:d-n}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,0,0,m,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)n=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=n&&(g+=Number(c.getAttribute("x"))*k,h+=Number(c.getAttribute("y"))*l,m=Number(c.getAttribute("w"))*k,d=Number(c.getAttribute("h"))*l,n.drawShape(a,b,g,h,m,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)k="1"==c.getAttribute("fixed")?1:m,a.setStrokeWidth(Number(c.getAttribute("width"))*k);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");k=[];for(l=0;l<c.length;l++)0<c[l].length&&k.push(Number(c[l])*m);c=k.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
-mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
-mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,h=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e,f),c=c.nextSibling;else if("close"==g)a.close();else if("move"==g)a.moveTo(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==g)a.lineTo(h+Number(c.getAttribute("x"))*l,k+
+Number(c.getAttribute("y"))*m);else if("quad"==g)a.quadTo(h+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,h+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==g)a.curveTo(h+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,h+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,h+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*
+m,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==g)a.rect(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*
+m,b=Number(b)/100,b=Math.min(n*b,d*b),a.roundrect(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==g)a.ellipse(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),
+"1"==c.getAttribute("flipV")));else if("text"==g){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){f=b.rotation;var p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-f:p||b?d+f:d-f}d-=c.getAttribute("rotation");a.text(h+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||
+"top",!1,"",null,!1,d)}}else if("include-shape"==g)f=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=f&&(h+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,f.drawShape(a,b,h,k,n,d));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==
+g)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):
+"alpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
+mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;
+mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
 mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
 mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
 mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 95fb66f78..d3a669d4c 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -501,19 +501,19 @@ mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.pro
 mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
 mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
 mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
-mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);b.outline&&null!=b.style&&1!=mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||this.drawChildren(a,b,c,d,e,
-f,this.fgNode,g,!0)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l),c=c.nextSibling};
+mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,
+0))};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l,m){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l,m),c=c.nextSibling};
 mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling;else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
-m);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*m,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,b=Number(b)/100,b=Math.min(n*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
-mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
-mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,k=d.x,l=d.y,m=d.width,n=d.height,p=Math.min(m,n);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g)for(a.begin(),c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e,f),c=c.nextSibling;else if("close"==g)a.close();else if("move"==g)a.moveTo(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("line"==g)a.lineTo(k+Number(c.getAttribute("x"))*m,l+
+Number(c.getAttribute("y"))*n);else if("quad"==g)a.quadTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n);else if("curve"==g)a.curveTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n,k+Number(c.getAttribute("x3"))*m,l+Number(c.getAttribute("y3"))*n);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*m,Number(c.getAttribute("ry"))*
+n,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("rect"==g)a.rect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*
+n,b=Number(b)/100,b=Math.min(p*b,d*b),a.roundrect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,p,d,b,b);else if("ellipse"==g)a.ellipse(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),
+"1"==c.getAttribute("flipV")));else if("text"==g){if(!b.outline){p=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){f=b.rotation;var q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-f:q||b?d+f:d-f}d-=c.getAttribute("rotation");a.text(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,0,0,p,c.getAttribute("align")||"left",c.getAttribute("valign")||
+"top",!1,"",null,!1,d)}}else if("include-shape"==g)f=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=f&&(k+=Number(c.getAttribute("x"))*m,l+=Number(c.getAttribute("y"))*n,p=Number(c.getAttribute("w"))*m,d=Number(c.getAttribute("h"))*n,f.drawShape(a,b,k,l,p,d));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)m="1"==c.getAttribute("fixed")?1:p,a.setStrokeWidth(Number(c.getAttribute("width"))*m);else if("dashed"==
+g)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");m=[];for(n=0;n<c.length;n++)0<c[n].length&&m.push(Number(c[n])*p);c=m.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):
+"alpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*p);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
+mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;
+mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
 mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
 mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
 mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -2716,131 +2716,131 @@ length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiT
 "10px",e.style.zIndex=2E9,e.style.left=Math.max(0,a)+"px",e.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(e.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(e.style,"boxShadow","2px 2px 3px 0px #ddd"),e.innerHTML=g+"...",c.appendChild(e),d.status=e,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(e.style.left=Math.round(Math.max(0,a-e.offsetWidth/2))+"px",e.style.top=Math.round(Math.max(0,
 b+70-e.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,g)}));this.stop();return a}),e=!0);return e};var g=d.stop;d.stop=function(){g.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,d){var b=g;g+=d;return a.substring(b,g)}function f(a){a=d(a,4);return a.charCodeAt(3)+
 (a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var g=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=f(a);var e=d(a,4);if(null!=b&&b(g-8,e,c))break;value=d(a,c);d(a,4);if("IEND"==e)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var d=mxUtils.parseXml(a),b=this.editor.extractGraphModel(d.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(m){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(d),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages),b=null!=h?mxUtils.getXml(h):""}catch(n){}return b};EditorUi.prototype.validateFileData=
-function(a){if(null!=a&&0<a.length){var d=a.indexOf('<meta charset="utf-8">');0<=d&&(a=a.slice(0,d)+'<meta charset="utf-8"/>'+a.slice(d+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var d=null!=a?this.editor.extractGraphModel(a,!0):null;null!=d&&(a=d);if(null!=a){d=this.editor.graph;d.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");
-if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=c.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(c[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));d.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
-this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,r,h,n,u,k,t){b=null!=b?b:this.editor.graph;r=null!=r?r:!1;k=null!=k?k:!0;var d,f=null;null==c||
-c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?d="_blank":f=d=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var m=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(m);if(b.decompress(g)!=m)return m;m=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(m,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(m)}t?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",
-navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(n||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!r&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,k,f);return a};EditorUi.prototype.getXmlFileData=
-function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d)));mxUtils.setTextContent(this.currentPage.node,c);d=this.fileNode.cloneNode(!1);if(b)d.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(c=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),
-e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,r,h,n,u,k){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=h?h:!1);k=null!=k?k:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=k&&/(\.svg)$/i.test(k.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());
-var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(n,h,k,window.location.href,a,b,c,e,r,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=function(a,b,c,e,r,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():
-b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=
-r&&(r=r.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?
-'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
-"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,r){null!=r&&(r=r.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
-">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==r?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=
-d;this.pages=[];for(d=0;d<a.length;d++){var b=new DiagramPage(a[d]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];d=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=d&&(this.fileNode=d.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(d.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&
-0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(a,b,c,e,r,h,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!r),f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,
-a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(d,b){try{var c=this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b,n);this.editor.graph.pageVisible=c;return f}catch(z){this.handleError(z)}}));else{var m=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",
-a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var l=this.editor.graph.background;if(n||l==mxConstants.NONE)l=null;var q=this.editor.graph.getSvg(l,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(a))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(B){this.handleError(B)}};EditorUi.prototype.createDownloadRequest=function(a,b,c,e,r){var d=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var f="";if(d.width*d.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};d="0";if("xmlpng"==b&&(d="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=
-0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE);return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+d+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=
-null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,
-h=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){d===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),n()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),n=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",
-mxUtils.bind(this,function(){n();h()}));n();h()}null!=b&&b()});if(null!=a.url){var e=a.url;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f(a.data)};EditorUi.prototype.updateDiagram=function(a){function d(a){var d=new mxCellOverlay(a.image||c.warningImage,a.tooltip,a.align,a.valign,a.offset);d.addListener(mxEvent.CLICK,function(d,b){editorUi.alert(a.tooltip)});
-return d}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var c=this.editor.graph,e=c.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var k=a.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(n,l);else for(var t=l.attributes,x=0;x<t.length;x++)c.setAttributeForCell(n,
-t[x].nodeName,0<t[x].nodeValue.length?t[x].nodeValue:null)}}catch(z){null!=window.console&&console.log("Error in value for "+n.id+": "+z)}try{var q=a.getAttribute("style");null!=q&&c.model.setStyle(n,q)}catch(z){null!=window.console&&console.log("Error in style for "+n.id+": "+z)}try{var p=a.getAttribute("icon");if(null!=p){var v=0<p.length?JSON.parse(p):null;null!=v&&v.append||c.removeCellOverlays(n);null!=v&&c.addCellOverlay(n,d(v))}}catch(z){null!=window.console&&console.log("Error in icon for "+
-n.id+": "+z)}try{var B=a.getAttribute("geometry");if(null!=B){var B=JSON.parse(B),y=c.getCellGeometry(n);if(null!=y){y=y.clone();for(key in B){var C=parseFloat(B[key]);"dx"==key?y.x+=C:"dy"==key?y.y+=C:"dw"==key?y.width+=C:"dh"==key?y.height+=C:y[key]=parseFloat(B[key])}c.model.setGeometry(n,y)}}}catch(z){null!=window.console&&console.log("Error in icon for "+n.id+": "+z)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=
-I&&(new mxCodec(a.firstChild)).decode(I,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(c.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))c.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};
-EditorUi.prototype.fileLoaded=function(a){var d=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&
-0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();
-this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();
-this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&
-!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?
-window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):c()}))}else c();return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=
-function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,r,h,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=
-function(a){var d=mxUtils.createXmlDocument(),b=d.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));d.appendChild(b);return mxUtils.getXml(d)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var d=this.sidebar.palettes[a];if(null!=d){for(var b=0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);
-delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var d=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:d.firstChild.nextSibling.nextSibling;var b=d.lastChild,c=b.previousSibling;d.insertBefore(b,a);d.insertBefore(c,b)};EditorUi.prototype.loadLibrary=function(a){var d=mxUtils.parseXml(a.getData());if("mxlibrary"==d.documentElement.nodeName){var b=
-JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(a,b,d.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:
-null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(d,b){if(0==d.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f);else for(var c=0;c<d.length;c++){var e=d[c],g=e.data;if(null!=g){var g=this.convertDataUri(g),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";
-"fixed"==e.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+"image="+g,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(g=this.stringToCells(this.editor.graph.decompress(e.xml)),0<g.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var d=a.data;null!=d&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){d=
-this.convertDataUri(d);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+d,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var d=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:
-a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var l=k.parentNode.previousSibling;c=l.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");l.style.position=
-"relative";var x=document.createElement("img");x.setAttribute("src",Dialog.prototype.closeImage);x.setAttribute("title",mxResources.get("close"));x.setAttribute("valign","absmiddle");x.setAttribute("border","0");x.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(x),mxEvent.addListener(x,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),
-null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var p=this.editor.graph,v=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),y=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v),v=x.cloneNode(!1),v.setAttribute("src",Editor.spinImage),v.setAttribute("title",mxResources.get("saving")),v.style.cursor="default",
-v.style.marginRight="2px",v.style.marginTop="-2px",t.insertBefore(v,t.firstChild),l.style.paddingRight=18*t.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=v&&null!=v.parentNode&&(v.parentNode.removeChild(v),l.style.paddingRight=18*t.childNodes.length+"px")})):null==q&&(q=x.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),t.insertBefore(q,t.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,
-function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(l.style.paddingRight=18*t.childNodes.length+"px",q.parentNode.removeChild(q),q=null)});mxEvent.consume(d)})),l.style.paddingRight=18*t.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,d,c,e){a=p.cloneCells(mxUtils.sortCells(p.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var h=p.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,
-d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);y(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=mxUtils.bind(this,function(a){if(p.isSelectionEmpty())p.getRubberband().isActive()?(p.getRubberband().execute(a),p.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=
-p.getSelectionCells(),b=p.view.getBounds(d),c=p.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=p.view.translate.x;b.y-=p.view.translate.y;C(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",
-k.style.cursor="copy",p.panningManager.stop(),p.autoScroll=!1,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!1),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,p.panningManager.stop(),p.graphHandler.reset(),
-p.isMouseDown=!1,p.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",p.autoScroll=!0,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!0),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&
-(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,
-0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,n,m,r,t,u){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,m),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,n,m),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var l=!1,q=mxUtils.bind(this,function(d,
-c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);y(a);this.spinner.stop();l=!0}catch(T){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),g=0;g<n.length;g++){var h=mxUtils.getTextContent(n[g]),m=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(m);C(m,new mxRectangle(0,
-0,r.width,r.height),a)}l=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=r&&(/(\.vsdx?)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(u,function(a){q(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,r)&&null!=u?this.parseFile(u,
-mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?q(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):q(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",k.style.cursor="");a.stopPropagation();a.preventDefault()}));
-x=x.cloneNode(!1);x.setAttribute("src",Editor.editImage);x.setAttribute("title",mxResources.get("edit"));t.insertBefore(x,t.firstChild);mxEvent.addListener(x,"click",B);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=x.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),
-c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}l.appendChild(t);l.style.paddingRight=18*t.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=
-64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top=
-"-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=
-3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=
-null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage=
-"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};
-EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,r){a=new ImageDialog(this,a,b,c,e,r);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
-!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,r){a=new LibraryDialog(this,a,b,c,e,r);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==
-this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,
-function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){d();f.retry()}),"undefined"!=
-typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),
-a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=f.message?a=mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error&&(a=mxUtils.htmlEntities(f.response.error));this.showError(b,a,e,c,g)}else null!=c&&c()};EditorUi.prototype.showError=
-function(a,b,c,e,r,h,n,k,l,t,q,p){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),e,r,h,n,p,k,l);this.showDialog(a.container,t||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,r){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=
-b&&b()},function(){d();null!=c&&c()},e,r)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,
-b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,f=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(f,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&
-(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,r){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),
-c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var d=document.createElement("a"),f=!mxClient.IS_SF&&"undefined"!==typeof d.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],
-10):!1)?!1:f;if(f||this.isOffline()){d.href=URL.createObjectURL(e?this.base64ToBlob(a,c):new Blob([a],{type:c}));f?d.download=b:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},0),d.click(),d.parentNode.removeChild(d)}catch(w){}}else this.createEchoRequest(a,b,c,e,r).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,r,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=
-c?"&mime="+c:"")+(null!=r?"&format="+r:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),n=0;n<f;++n){for(var k=1024*n,l=Math.min(k+1024,c),t=Array(l-k),q=0;k<l;++q,++k)t[q]=d[k].charCodeAt(0);e[n]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,k,h,n){h=null!=h?h:!1;n=null!=n?n:"vsdx"!=k&&
-(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,
-mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(F){this.handleError(F)}}))}catch(x){this.handleError(x)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,h,n,null,1<k,4<k&&(!h||6>k)?3:4,a,c,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=
-window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+'"/></html>'),d.document.close())}else d=window.open("data:"+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=
-null;var d=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var c=d.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign=
-"center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=c.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.exportDialog.style.zIndex=c.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var d=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";
-a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",d);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(d.substring(d.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),
-Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,k){this.isLocalFileSave()?this.saveLocalFile(c,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,d){return this.createEchoRequest(c,a,e,k,b,d)}),c,k,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,k,h,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=
-a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(D){this.handleError(D)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&
-299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(D){this.handleError(D)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,4<d?3:4,e,h,k);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,c,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,k,h,n,u,l){if(this.spinner.spin(document.body,mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,n,u,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",
-m=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,l));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(d)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
-mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,m,this.thumbImageCache)):m(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,k,h){h=null!=h?h:!0;var d=
-document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled","disabled");h&&(a.appendChild(d),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),k||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=d.getAttribute("disabled")&&(d.checked=!d.checked,mxEvent.consume(a))})));return d};EditorUi.prototype.addEditButton=
-function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("makeCopy"));e.appendChild(c);c=document.createElement("option");
-c.setAttribute("value","custom");mxUtils.write(c,mxResources.get("custom")+"...");e.appendChild(c);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==b||
-b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return d.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function d(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var c=document.createElement("select");c.style.width="100px";c.style.marginLeft="8px";c.style.marginRight="10px";c.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));c.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));c.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),c.appendChild(f));a.appendChild(c);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;d()});mxEvent.consume(a)}));d();n.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return c.value},focus:function(){c.focus()}}};EditorUi.prototype.createLink=function(a,b,c,e,k,h,n,u){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+
-a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);break}a=!0;null!=n?c="#U"+encodeURIComponent(n):(d=this.getCurrentFile(),u||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?
-this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,
-b,c,e,k,h,n,u,l,t,q){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==e&&(d.target=e);l||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];n&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),d.resize=!0);u&&c.push("layers");0<c.length&&(l&&c.push("lightbox"),d.toolbar=c.join(" "));null!=t&&0<t.length&&(d.edit=t);null!=
-a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+
-'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
-m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");f=m.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));g.appendChild(k);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(k=
-document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));f.setAttribute("checked","checked");null==c&&m.setAttribute("disabled","disabled");d.appendChild(g);var l=this.addLinkSection(d),q=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,
-":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight="12px";p.value="100%";d.appendChild(p);var v=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),y=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),I=this.addEditButton(d,C),z=I.getEditInput();
-z.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?z.removeAttribute("disabled"):z.setAttribute("disabled","disabled");z.checked&&C.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(m.checked?c:null,q.checked,p.value,l.getTarget(),l.getColor(),v.checked,B.checked,y.checked,C.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};
-EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,k,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",
-m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));m.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";m.appendChild(r);d.appendChild(m);r=document.createElement("a");
-r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));m.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));
-this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,q=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",d.appendChild(l),mxUtils.write(d,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",
-q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",d.appendChild(q),mxUtils.br(d);var p=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var B=null;if(null==g||g.constructor!=window.DriveFile||b)B=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var v=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,v),I=C.getEditInput(),z=this.addCheckbox(d,mxResources.get("layers"),!0);z.style.marginLeft=I.style.marginLeft;z.style.marginBottom="16px";
-z.style.marginTop="8px";mxEvent.addListener(v,"change",function(){v.checked?(z.removeAttribute("disabled"),I.removeAttribute("disabled")):(z.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"));I.checked&&v.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==B?!0:B.checked,v.checked,C.getLink(),z.checked,null!=l?l.value:null,null!=
-q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-d.appendChild(f);var g=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),m=e?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,k=e?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,d,mxUtils.bind(this,function(){c(!g.checked,null!=m?m.checked:!1,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,
-300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,e,k,h,n,l){n=null!=n?n:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width=
-"60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";d.appendChild(r);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var q=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=
-l),p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.style.marginLeft="24px";v.setAttribute("disabled","disabled");v.setAttribute("type","checkbox");h&&(d.appendChild(v),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(p,"change",function(){p.checked?v.removeAttribute("disabled"):v.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(v.setAttribute("checked",
-"checked"),v.defaultChecked=!0);var I=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible),z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||z.setAttribute("disabled","disabled");b&&(d.appendChild(z),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var N=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=l),E=null!=this.pages&&1<this.pages.length,
-J=this.addCheckbox(d,E?mxResources.get("allPages"):"",E,!E,null,"jpeg"!=l);J.style.marginLeft="24px";J.style.marginBottom="16px";E||(J.style.visibility="hidden");mxEvent.addListener(N,"change",function(){N.checked&&E?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")});n&&E||J.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=r.value;k(r.value,q.checked,!p.checked,I.checked,N.checked,z.checked,
-u.value,v.checked,!J.checked)}),null,c,e);this.showDialog(a.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-d.appendChild(g)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),r=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(d,c),q=this.addCheckbox(d,mxResources.get("lightbox"),!0),p=this.addEditButton(d,q),v=p.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),y=this.addCheckbox(d,mxResources.get("layers"),B,!B);y.style.marginLeft=v.style.marginLeft;y.style.marginBottom="12px";y.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?
-(B&&y.removeAttribute("disabled"),v.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"));v.checked&&q.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(m.checked,r.checked,l.checked,q.checked,p.getLink(),y.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
-function(a,b,c,e,k,h,n,l){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");
-a&&(g+="max-width:100%;");var m="";c&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+d+'"'+m+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),
-f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?d("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
-b,c,e,k,h,n){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var m=f[g].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var r=" ",l="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(d),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!=
+h?mxUtils.getXml(h):""}catch(n){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var d=a.indexOf('<meta charset="utf-8">');0<=d&&(a=a.slice(0,d)+'<meta charset="utf-8"/>'+a.slice(d+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var d=null!=a?this.editor.extractGraphModel(a,!0):null;null!=d&&(a=d);if(null!=a){d=this.editor.graph;d.model.beginUpdate();
+try{var b=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=c.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(c[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));d.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),
+this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,r,h,n,u,k,t){b=null!=
+b?b:this.editor.graph;r=null!=r?r:!1;k=null!=k?k:!0;var d,f=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?d="_blank":f=d=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var m=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(m);if(b.decompress(g)!=m)return m;m=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(m,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(m)}t?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"),
+g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(n||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!r&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
+App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,k,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d)));mxUtils.setTextContent(this.currentPage.node,c);d=this.fileNode.cloneNode(!1);if(b)d.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;
+this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(c=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,r,h,n,u,k){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=h?h:!1);k=null!=k?k:this.getCurrentFile();h=this.editor.graph;
+if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=k&&/(\.svg)$/i.test(k.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(n,h,k,window.location.href,a,b,c,e,r,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};
+EditorUi.prototype.getHtml=function(a,b,c,e,r,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom",
+"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=r&&(r=r.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
+">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>':
+'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,r){null!=r&&(r=r.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,
+this.currentPage));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==r?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?
+mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=d;this.pages=[];for(d=0;d<a.length;d++){var b=new DiagramPage(a[d]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];d=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=d&&(this.fileNode=d.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(d.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var d=this.getCurrentFile(),d=null!=d&&null!=
+d.getTitle()?d.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(a,b,c,e,r,h,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!r),
+f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(d,b){try{var c=
+this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b,n);this.editor.graph.pageVisible=c;return f}catch(z){this.handleError(z)}}));else{var m=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var l=this.editor.graph.background;if(n||l==
+mxConstants.NONE)l=null;var q=this.editor.graph.getSvg(l,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(B){this.handleError(B)}};
+EditorUi.prototype.createDownloadRequest=function(a,b,c,e,r){var d=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var f="";if(d.width*d.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};d="0";if("xmlpng"==b&&(d="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE);
+return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+d+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,h=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(a){d===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),n()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),n=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){n();h()}));n();h()}null!=b&&b()});if(null!=a.url){var e=a.url;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&
+(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f(a.data)};EditorUi.prototype.updateDiagram=function(a){function d(a){var d=new mxCellOverlay(a.image||c.warningImage,a.tooltip,a.align,a.valign,a.offset);d.addListener(mxEvent.CLICK,function(d,b){editorUi.alert(a.tooltip)});return d}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var c=
+this.editor.graph,e=c.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var k=a.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(n,l);else for(var t=l.attributes,x=0;x<t.length;x++)c.setAttributeForCell(n,t[x].nodeName,0<t[x].nodeValue.length?t[x].nodeValue:null)}}catch(z){null!=window.console&&console.log("Error in value for "+
+n.id+": "+z)}try{var q=a.getAttribute("style");null!=q&&c.model.setStyle(n,q)}catch(z){null!=window.console&&console.log("Error in style for "+n.id+": "+z)}try{var p=a.getAttribute("icon");if(null!=p){var v=0<p.length?JSON.parse(p):null;null!=v&&v.append||c.removeCellOverlays(n);null!=v&&c.addCellOverlay(n,d(v))}}catch(z){null!=window.console&&console.log("Error in icon for "+n.id+": "+z)}try{var B=a.getAttribute("geometry");if(null!=B){var B=JSON.parse(B),y=c.getCellGeometry(n);if(null!=y){y=y.clone();
+for(key in B){var C=parseFloat(B[key]);"dx"==key?y.x+=C:"dy"==key?y.y+=C:"dw"==key?y.width+=C:"dh"==key?y.height+=C:y[key]=parseFloat(B[key])}c.model.setGeometry(n,y)}}}catch(z){null!=window.console&&console.log("Error in icon for "+n.id+": "+z)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(c.view.scale=parseFloat(a.getAttribute("scale"))),
+a.hasAttribute("dx")||a.hasAttribute("dy"))c.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};EditorUi.prototype.fileLoaded=function(a){var d=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),
+b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));
+this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=
+App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+
+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):c()}))}else c();return d};EditorUi.prototype.descriptorChanged=
+function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,r,h,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=
+function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var d=mxUtils.createXmlDocument(),b=d.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));d.appendChild(b);return mxUtils.getXml(d)};EditorUi.prototype.closeLibrary=function(a){null!=
+a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var d=this.sidebar.palettes[a];if(null!=d){for(var b=0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var d=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=
+this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:d.firstChild.nextSibling.nextSibling;var b=d.lastChild,c=b.previousSibling;d.insertBefore(b,a);d.insertBefore(c,b)};EditorUi.prototype.loadLibrary=function(a){var d=mxUtils.parseXml(a.getData());if("mxlibrary"==d.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(a,b,d.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};
+EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(d,b){if(0==d.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,
+"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f);else for(var c=0;c<d.length;c++){var e=d[c],g=e.data;if(null!=g){var g=this.convertDataUri(g),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+"image="+g,e.w,e.h,"",e.title||"",!1,
+!1,!0))}else null!=e.xml&&(g=this.stringToCells(this.editor.graph.decompress(e.xml)),0<g.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var d=a.data;null!=d&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){d=this.convertDataUri(d);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+=
+"aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+d,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var d=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var l=
+k.parentNode.previousSibling;c=l.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");l.style.position="relative";var x=document.createElement("img");x.setAttribute("src",Dialog.prototype.closeImage);x.setAttribute("title",
+mxResources.get("close"));x.setAttribute("valign","absmiddle");x.setAttribute("border","0");x.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(x),mxEvent.addListener(x,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var p=
+this.editor.graph,v=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),y=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v),v=x.cloneNode(!1),v.setAttribute("src",Editor.spinImage),v.setAttribute("title",mxResources.get("saving")),v.style.cursor="default",v.style.marginRight="2px",v.style.marginTop="-2px",t.insertBefore(v,t.firstChild),l.style.paddingRight=18*t.childNodes.length+
+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=v&&null!=v.parentNode&&(v.parentNode.removeChild(v),l.style.paddingRight=18*t.childNodes.length+"px")})):null==q&&(q=x.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),t.insertBefore(q,t.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||
+(l.style.paddingRight=18*t.childNodes.length+"px",q.parentNode.removeChild(q),q=null)});mxEvent.consume(d)})),l.style.paddingRight=18*t.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,d,c,e){a=p.cloneCells(mxUtils.sortCells(p.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var h=p.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
+w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);y(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=mxUtils.bind(this,function(a){if(p.isSelectionEmpty())p.getRubberband().isActive()?(p.getRubberband().execute(a),p.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=p.getSelectionCells(),b=p.view.getBounds(d),c=p.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=p.view.translate.x;
+b.y-=p.view.translate.y;C(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",p.panningManager.stop(),p.autoScroll=!1,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!1),
+null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,p.panningManager.stop(),p.graphHandler.reset(),p.isMouseDown=!1,p.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){p.isMouseDown&&
+null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",p.autoScroll=!0,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!0),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";
+a.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,n,m,r,t,u){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+
+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,m),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,n,m),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var l=!1,q=mxUtils.bind(this,function(d,c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);y(a);
+this.spinner.stop();l=!0}catch(T){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),g=0;g<n.length;g++){var h=mxUtils.getTextContent(n[g]),m=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(m);C(m,new mxRectangle(0,0,r.width,r.height),a)}l=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=r&&(/(\.vsdx?)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(u,function(a){q(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,r)&&null!=u?this.parseFile(u,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?q(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":
+"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):q(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",k.style.cursor="");a.stopPropagation();a.preventDefault()}));x=x.cloneNode(!1);x.setAttribute("src",Editor.editImage);x.setAttribute("title",mxResources.get("edit"));t.insertBefore(x,t.firstChild);mxEvent.addListener(x,"click",B);mxEvent.addListener(k,
+"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=x.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
+mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}l.appendChild(t);l.style.paddingRight=18*t.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");
+if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?
+(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=
+5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",
+Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",
+Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display=
+"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,r){a=new ImageDialog(this,a,b,c,e,r);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=
+!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,r){a=new LibraryDialog(this,a,b,c,e,r);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");
+a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=
+this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){d();f.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));
+else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else f.code==App.ERROR_TIMEOUT?a=
+mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=f.message?a=mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error&&(a=mxUtils.htmlEntities(f.response.error));this.showError(b,a,e,c,g)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,e,r,h,n,k,l,t,q,p){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),e,r,h,n,p,k,l);this.showDialog(a.container,t||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=
+function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,r){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},function(){d();null!=c&&c()},e,r)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};
+EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));
+return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,f=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(f,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};
+EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,r){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height=
+"380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var d=document.createElement("a"),f=!mxClient.IS_SF&&"undefined"!==typeof d.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],10):!1)?!1:f;if(f||this.isOffline()){d.href=URL.createObjectURL(e?this.base64ToBlob(a,c):new Blob([a],{type:c}));f?d.download=b:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},
+0),d.click(),d.parentNode.removeChild(d)}catch(w){}}else this.createEchoRequest(a,b,c,e,r).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,r,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=r?"&format="+r:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),
+n=0;n<f;++n){for(var k=1024*n,l=Math.min(k+1024,c),t=Array(l-k),q=0;k<l;++q,++k)t[q]=d[k].charCodeAt(0);e[n]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,k,h,n){h=null!=h?h:!1;n=null!=n?n:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");
+null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(F){this.handleError(F)}}))}catch(x){this.handleError(x)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,h,n,null,1<k,4<k&&(!h||6>k)?3:4,
+a,c,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+'"/></html>'),d.document.close())}else d=window.open("data:"+
+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var d=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=
+this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var c=d.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color=
+"#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=c.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=c.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);this.exportToCanvas(mxUtils.bind(this,
+function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var d=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",d);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(d.substring(d.indexOf(",")+
+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,k){this.isLocalFileSave()?this.saveLocalFile(c,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,
+d){return this.createEchoRequest(c,a,e,k,b,d)}),c,k,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,k,h,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,
+function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(D){this.handleError(D)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(D){this.handleError(D)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,4<d?3:4,e,h,k);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,k,h,n,u,l){if(this.spinner.spin(document.body,
+mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,n,u,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",m=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,l));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?
+d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(d)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
+mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,m,this.thumbImageCache)):m(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,k,h){h=null!=h?h:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled",
+"disabled");h&&(a.appendChild(d),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),k||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=d.getAttribute("disabled")&&(d.checked=!d.checked,mxEvent.consume(a))})));return d};EditorUi.prototype.addEditButton=function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&
+(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("makeCopy"));e.appendChild(c);c=document.createElement("option");c.setAttribute("value","custom");mxUtils.write(c,mxResources.get("custom")+"...");e.appendChild(c);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==
+e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return d.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return d},
+getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function d(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var c=document.createElement("select");c.style.width="100px";c.style.marginLeft=
+"8px";c.style.marginRight="10px";c.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));c.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value",
+"frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),c.appendChild(f));a.appendChild(c);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;d()});mxEvent.consume(a)}));d();n.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return c.value},focus:function(){c.focus()}}};EditorUi.prototype.createLink=function(a,b,c,e,k,h,n,u){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&
+f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);break}a=!0;null!=n?c="#U"+encodeURIComponent(n):(d=this.getCurrentFile(),u||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));
+a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,e,k,h,n,u,l,t,q){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==e&&(d.target=e);l||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;
+c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];n&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),d.resize=!0);u&&c.push("layers");0<c.length&&(l&&c.push("lightbox"),d.toolbar=c.join(" "));null!=t&&0<t.length&&(d.edit=t);null!=a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");
+mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");f=m.cloneNode(!0);f.setAttribute("value",
+"copy");g.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));g.appendChild(k);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),
+g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));f.setAttribute("checked","checked");null==c&&m.setAttribute("disabled","disabled");d.appendChild(g);var l=this.addLinkSection(d),q=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight=
+"12px";p.value="100%";d.appendChild(p);var v=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),y=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),I=this.addEditButton(d,C),z=I.getEditInput();z.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?z.removeAttribute("disabled"):z.setAttribute("disabled","disabled");z.checked&&C.checked?
+I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(m.checked?c:null,q.checked,p.value,l.getTarget(),l.getColor(),v.checked,B.checked,y.checked,C.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,k,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");
+mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));m.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";m.appendChild(r);d.appendChild(m);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));
+m.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,q=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),l=document.createElement("input"),
+l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",d.appendChild(l),mxUtils.write(d,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",d.appendChild(q),mxUtils.br(d);var p=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var B=null;
+if(null==g||g.constructor!=window.DriveFile||b)B=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var v=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,v),I=C.getEditInput(),z=this.addCheckbox(d,mxResources.get("layers"),!0);z.style.marginLeft=I.style.marginLeft;z.style.marginBottom="16px";z.style.marginTop="8px";mxEvent.addListener(v,"change",function(){v.checked?(z.removeAttribute("disabled"),I.removeAttribute("disabled")):(z.setAttribute("disabled","disabled"),I.setAttribute("disabled",
+"disabled"));I.checked&&v.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==B?!0:B.checked,v.checked,C.getLink(),z.checked,null!=l?l.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():
+document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(f);var g=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),m=e?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),
+!0),f=this.editor.graph,k=e?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,d,mxUtils.bind(this,function(){c(!g.checked,null!=m?m.checked:!1,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,e,k,h,n,l){n=null!=n?n:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=
+this.editor.graph,g="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";d.appendChild(r);mxUtils.write(d,mxResources.get("borderWidth")+":");
+var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var q=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight=
+"8px";v.style.marginLeft="24px";v.setAttribute("disabled","disabled");v.setAttribute("type","checkbox");h&&(d.appendChild(v),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(p,"change",function(){p.checked?v.removeAttribute("disabled"):v.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(v.setAttribute("checked","checked"),v.defaultChecked=!0);var I=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible),z=document.createElement("input");z.style.marginTop=
+"16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||z.setAttribute("disabled","disabled");b&&(d.appendChild(z),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var N=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=l),E=null!=this.pages&&1<this.pages.length,J=this.addCheckbox(d,E?mxResources.get("allPages"):"",E,!E,null,"jpeg"!=l);J.style.marginLeft="24px";J.style.marginBottom="16px";E||(J.style.visibility=
+"hidden");mxEvent.addListener(N,"change",function(){N.checked&&E?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")});n&&E||J.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=r.value;k(r.value,q.checked,!p.checked,I.checked,N.checked,z.checked,u.value,v.checked,!J.checked)}),null,c,e);this.showDialog(a.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
+mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(g)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),r=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,
+!e),l=this.addCheckbox(d,c),q=this.addCheckbox(d,mxResources.get("lightbox"),!0),p=this.addEditButton(d,q),v=p.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),y=this.addCheckbox(d,mxResources.get("layers"),B,!B);y.style.marginLeft=v.style.marginLeft;y.style.marginBottom="12px";y.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(B&&y.removeAttribute("disabled"),v.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"));
+v.checked&&q.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(m.checked,r.checked,l.checked,q.checked,p.getLink(),y.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,e,k,h,n,l){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");a&&(g+="max-width:100%;");var m="";c&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+d+'"'+m+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),
+null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?d("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,c,e,k,h,n){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var m=f[g].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var r=" ",l="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");a&&(l+="max-width:100%;");this.convertImages(d,mxUtils.bind(this,function(a){n('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+r+"/>")}))}else l="",e&&(d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
 (k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(d.getAttribute("width")),b=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",d.removeAttribute("height")),""!=l&&d.setAttribute("style",l),n(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var d=Math.floor(a/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(a/2592E3);if(1<d)return d+
 " "+mxResources.get("months");d=Math.floor(a/86400);if(1<d)return d+" "+mxResources.get("days");d=Math.floor(a/3600);if(1<d)return d+" "+mxResources.get("hours");d=Math.floor(a/60);return 1<d?d+" "+mxResources.get("minutes"):1==d?d+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,e){e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var d=null;if("diagram"==a.nodeName)d=a;else if("mxfile"==a.nodeName){var c=a.getElementsByTagName("diagram");if(0<
-- 
GitLab