Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaudenz Alder <gaudenz@jgraph.com>2020-01-25 11:44:09 +0300
committerGaudenz Alder <gaudenz@jgraph.com>2020-01-25 11:44:09 +0300
commit172846aba36f3b9546067d47bf9b5080d1431d15 (patch)
tree68f62c9565b378b5788c4b189289bf3c5bec6d38
parent1087d46b8843a86569f6c8f56f6bf1ad2098ba8e (diff)
12.5.7 releasev12.5.7
-rw-r--r--ChangeLog28
-rw-r--r--VERSION2
-rw-r--r--etc/mxgraph/mxClient.js227
-rw-r--r--src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java10
-rw-r--r--src/main/webapp/cache.manifest2
-rw-r--r--src/main/webapp/js/app.min.js3356
-rw-r--r--src/main/webapp/js/croppie/croppie.min.css1
-rw-r--r--src/main/webapp/js/diagramly/App.js91
-rw-r--r--src/main/webapp/js/diagramly/Devel.js4
-rw-r--r--src/main/webapp/js/diagramly/DriveClient.js20
-rw-r--r--src/main/webapp/js/diagramly/Editor.js6
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js95
-rw-r--r--src/main/webapp/js/diagramly/Init.js2
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js23
-rw-r--r--src/main/webapp/js/diagramly/OneDriveClient.js5
-rw-r--r--src/main/webapp/js/diagramly/Pages.js10
-rw-r--r--src/main/webapp/js/diagramly/vsdx/importer.js183
-rw-r--r--src/main/webapp/js/extensions.min.js1005
-rw-r--r--src/main/webapp/js/mxgraph/Editor.js43
-rw-r--r--src/main/webapp/js/mxgraph/EditorUi.js66
-rw-r--r--src/main/webapp/js/mxgraph/Graph.js120
-rw-r--r--src/main/webapp/js/stencils.min.js4
-rw-r--r--src/main/webapp/js/viewer.min.js1127
-rw-r--r--src/main/webapp/plugins/number.js5
-rw-r--r--src/main/webapp/resources/dia_am.txt2
-rw-r--r--src/main/webapp/resources/dia_ar.txt2
-rw-r--r--src/main/webapp/resources/dia_ca.txt16
-rw-r--r--src/main/webapp/resources/dia_et.txt44
-rw-r--r--src/main/webapp/resources/dia_ru.txt4
-rw-r--r--src/main/webapp/resources/dia_zh.txt336
-rw-r--r--src/main/webapp/service-worker.js8
-rw-r--r--src/main/webapp/stencils/cisco/misc.xml2
-rw-r--r--src/main/webapp/stencils/electrical/transistors.xml2
-rw-r--r--src/main/webapp/styles/grapheditor.css6
34 files changed, 3514 insertions, 3343 deletions
diff --git a/ChangeLog b/ChangeLog
index e73dfaa8..449c4ace 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,36 +1,50 @@
-16-JAN-2019: 12.5.5
+25-JAN-2020: 12.5.7
+
+- Fixes access to OneDrive Sharepoint folders
+- Creates fewer revisions in Google Drive
+- Uses mxGraph 4.1.1 beta 1
+- Uses PlantUML 2019.7
+
+22-JAN-2020: 12.5.6
+
+- Fixes offline download for mobile Safari
+- Fixes newlines in custom shape editor
+- Uses mxGraph 4.1.0 pre 6
+- Adds movableLabel style
+
+16-JAN-2020: 12.5.5
- Fixes inconsistent label wrapping
- Uses mxGraph 4.1.0 pre 5
-15-JAN-2019: 12.5.4
+15-JAN-2020: 12.5.4
- Adds PWA install prompt handler
-14-JAN-2019: 12.5.3
+14-JAN-2020: 12.5.3
- Fixes line height in labels
- Uses mxGraph 4.1.0 pre 4
-14-JAN-2019: 12.5.2
+14-JAN-2020: 12.5.2
- Adds option to include XML in PDF
- Replaces app cache with PWA
- Uses mxGraph 4.1.0 pre 3
-09-JAN-2019: 12.5.1
+09-JAN-2020: 12.5.1
- Fixes label offsets in viewer
- Uses mxGraph 4.1.0 pre 2
-07-JAN-2019: 12.5.0
+07-JAN-2020: 12.5.0
- Enables reflow in HTML output
- Fixes text rendering issues
- Uses mxGraph 4.1.0 pre 1
- Adds Galician language
-06-JAN-2019: 12.4.9
+06-JAN-2020: 12.4.9
- Adds support for multiple redirect URLs in token-based-auth
diff --git a/VERSION b/VERSION
index 7e69842a..e6811145 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-12.5.5 \ No newline at end of file
+12.5.7 \ No newline at end of file
diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js
index 08911e8f..95518337 100644
--- a/etc/mxgraph/mxClient.js
+++ b/etc/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"4.1.0",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")&&
+var mxClient={VERSION:"4.1.1",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_ANDROID:0<=navigator.userAgent.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IOS_VERSION:function(){if(/iP(hone|od|ad)/.test(navigator.platform)){var a=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);if(null!=a&&0<a.length)return parseInt(a[1])}return 0}(),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."),
@@ -42,72 +42,72 @@ if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.ap
new ActiveXObject("Microsoft.XMLDOM");a.async=!1;a.validateOnParse=!1;a.resolveExternals=!1;return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createMsXmlDocument();b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&
window.getSelection().removeAllRanges()}:function(){}}(),removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");a=a.replace(/&/g,"&amp;");a=a.replace(/"/g,"&quot;");a=a.replace(/\'/g,"&#39;");a=a.replace(/</g,"&lt;");a=a.replace(/>/g,"&gt;");if(null==b||b)a=a.replace(/\n/g,
"&#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";mxClient.IS_IE||mxClient.IS_IE11?c=mxUtils.getPrettyXml(a,"","",""):null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n"));return c=c.replace(/\n/g,b||"&#xa;")},getPrettyXml:function(a,b,c,d,e){var f=[];if(null!=a)if(b=null!=b?b:" ",c=null!=c?c:"",d=null!=d?d:"\n",
-null!=a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_TEXT)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+mxUtils.htmlEntities(a)+d);else{f.push(c+"<"+a.nodeName);var g=a.attributes;if(null!=g)for(var k=0;k<g.length;k++){var l=mxUtils.htmlEntities(g[k].value);f.push(" "+g[k].nodeName+'="'+l+'"')}g=a.firstChild;if(null!=g){for(f.push(">"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,b,c+b,d,e)),
-g=g.nextSibling;f.push(c+"</"+a.nodeName+">"+d)}else f.push("/>"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(a){if(1!=a.length||"BR"!=a[0].nodeName&&"\n"!=a[0].innerHTML)for(var e=0;e<a.length;e++){var g=a[e];"BR"==g.nodeName||"\n"==g.innerHTML||(1==a.length||0==e)&&"DIV"==g.nodeName&&"<br>"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0<g.nodeValue.length&&d.push(g.nodeValue):8!==g.nodeType&&0<g.childNodes.length&&b(g.childNodes),e<a.length-1&&
-0<=mxUtils.indexOf(c,a[e+1].nodeName)&&d.push("\n"))}}var c="BLOCKQUOTE DIV H1 H2 H3 H4 H5 H6 OL P PRE TABLE UL".split(" "),d=[];b(a);return d.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return mxClient.IS_IE&&void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===
-a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("<"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('="'),b.push(e),b.push('"'))}0==
-a.innerHTML.length?b.push("/>"):(b.push(">"),b.push(a.innerHTML),b.push("</"+a.nodeName+">"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),
-a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,
-b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},getDocumentSize:function(){var a=document.body,b=document.documentElement;try{return new mxRectangle(0,0,a.clientWidth||b.clientWidth,
-Math.max(a.clientHeight||0,b.clientHeight))}catch(c){return new mxRectangle}},fit:function(a){var b=mxUtils.getDocumentSize(),c=parseInt(a.offsetLeft),d=parseInt(a.offsetWidth),e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),f=e.x,e=e.y,g=f+b.width;c+d>g&&(a.style.left=Math.max(f,g-d)+"px");c=parseInt(a.offsetTop);d=parseInt(a.offsetHeight);b=e+b.height;c+d>b&&(a.style.top=Math.max(e,b-d)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=
-new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=
-function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,
-e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(null!=a[c]&&null==b[c]||null==a[c]&&null!=b[c]||null!=a[c]&&null!=b[c]&&(a[c].x!=b[c].x||a[c].y!=b[c].y))return!1;return!0},equalEntries:function(a,b){var c=0;if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){for(var d in b)c++;
-for(d in a)if(c--,!(mxUtils.isNaN(a[d])&&mxUtils.isNaN(b[d])||a[d]==b[d]))return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" = [null]\n";else if("function"==typeof a[c])b+=
-c+" => [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" => ["+d+"]\n");else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,r=m*m,t=c*c,u=d*d,x=n/
-t+r/u;1<x?(c*=Math.sqrt(x),d*=Math.sqrt(x),f=0):(x=1,f===g&&(x=-1),f=x*Math.sqrt((t*u-t*r-u*n)/(t*r+u*n)));n=f*c*m/d;r=-1*f*d*e/c;k=p*n-q*r+k/2;l=q*n+p*r+l/2;t=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=t?t:2*Math.PI+t;t=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=t?t:2*Math.PI+t;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var y=Math.cos(f),A=Math.sin(f),
-r=-m*(n*A+d*y),t=-m*(c*A-p*y),q=[],z=0;z<g;++z){f+=e;var y=Math.cos(f),A=Math.sin(f),u=n*y-d*A+k,x=c*y+p*A+l,v=-m*(n*A+d*y),y=-m*(c*A-p*y),A=6*z;q[A]=Number(r+a);q[A+1]=Number(t+b);q[A+2]=Number(u-v+a);q[A+3]=Number(x-y+b);q[A+4]=Number(u+a);q[A+5]=Number(x+b);r=u+v;t=x+y}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+
-a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,
-b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(b.style,c?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=
-mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;
-break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},reversePortConstraints:function(a){var b;b=(a&mxConstants.DIRECTION_MASK_WEST)<<3;b|=(a&mxConstants.DIRECTION_MASK_NORTH)<<
-1;b|=(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|=(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},getDirectedBounds:function(a,b,c,d,e){var f=mxUtils.getValue(c,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);d=null!=d?d:mxUtils.getValue(c,mxConstants.STYLE_FLIPH,
-!1);e=null!=e?e:mxUtils.getValue(c,mxConstants.STYLE_FLIPV,!1);b.x=Math.round(Math.max(0,Math.min(a.width,b.x)));b.y=Math.round(Math.max(0,Math.min(a.height,b.y)));b.width=Math.round(Math.max(0,Math.min(a.width,b.width)));b.height=Math.round(Math.max(0,Math.min(a.height,b.height)));if(e&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||d&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.x,b.x=b.width,b.width=c;if(d&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||
-e&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.y,b.y=b.height,b.height=c;d=mxRectangle.fromRectangle(b);f==mxConstants.DIRECTION_SOUTH?(d.y=b.x,d.x=b.height,d.width=b.y,d.height=b.width):f==mxConstants.DIRECTION_WEST?(d.y=b.height,d.x=b.width,d.width=b.x,d.height=b.y):f==mxConstants.DIRECTION_NORTH&&(d.y=b.width,d.x=b.y,d.width=b.height,d.height=b.x);return new mxRectangle(a.x+d.x,a.y+d.y,a.width-d.width-d.x,a.height-d.height-d.y)},getPerimeterPoint:function(a,b,c){for(var d=
-null,e=0;e<a.length-1;e++){var f=mxUtils.intersection(a[e].x,a[e].y,a[e+1].x,a[e+1].y,b.x,b.y,c.x,c.y);if(null!=f){var g=c.x-f.x,k=c.y-f.y,f={p:f,distSq:k*k+g*g};null!=f&&(null==d||d.distSq>f.distSq)&&(d=f)}}return null!=d?d.p:null},rectangleIntersectsSegment:function(a,b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);
-g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,
-mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},
-getOffset:function(a,b){for(var c=0,d=0,e=!1,f=a,g=document.body,k=document.documentElement;null!=f&&f!=g&&f!=k&&!e;){var l=mxUtils.getCurrentStyle(f);null!=l&&(e=e||"fixed"==l.position);f=f.parentNode}b||e||(e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c+=e.x,d+=e.y);e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,a.body.scrollTop);a=a.defaultView||a.parentWindow;
-return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!0;for(var d=null!=a?a.ownerDocument:document,e=d.body,f=d.documentElement,g=new mxPoint,k=!1;null!=a&&a!=e&&a!=f;){isNaN(a.scrollLeft)||isNaN(a.scrollTop)||
-(g.x+=a.scrollLeft,g.y+=a.scrollTop);var l=mxUtils.getCurrentStyle(a);null!=l&&(k=k||"fixed"==l.position);a=b?a.parentNode:null}!k&&c&&(a=mxUtils.getDocumentScrollOrigin(d),g.x+=a.x,g.y+=a.y);return g},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a,!1);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return null!=a?a.replace(new RegExp("^["+(b||"\\s")+"]+","g"),""):null},rtrim:function(a,b){return null!=a?a.replace(new RegExp("["+(b||"\\s")+
-"]+$","g"),""):null},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)&&("string"!=typeof a||0>a.toLowerCase().indexOf("0x"))},isInteger:function(a){return String(parseInt(a))===String(a)},mod:function(a,b){return(a%b+b)%b},intersection:function(a,b,c,d,e,f,g,k){var l=(k-f)*(c-a)-(g-e)*(d-b);g=((g-e)*(b-f)-(k-f)*(a-e))/l;e=((c-a)*(b-f)-(d-b)*(a-e))/l;return 0<=g&&1>=g&&0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,
-b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;0>=e*c+f*d?c=0:(e=c-e,f=d-f,a=e*c+f*d,c=0>=a?0:a*a/(c*c+d*d));e=e*e+f*f-c;0>e&&(e=0);return e},ptLineDist:function(a,b,c,d,e,f){return Math.abs((d-b)*e-(c-a)*f+c*b-d*a)/Math.sqrt((d-b)*(d-b)+(c-a)*(c-a))},relativeCcw:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;a=e*d-f*c;0==a&&(a=e*c+f*d,0<a&&(a=(e-c)*c+(f-d)*d,0>a&&(a=0)));return 0>a?-1:0<a?1:0},animateChanges:function(a,b){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,
-arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity="+b/5+")":mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createImage:function(a){var b;mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(b=document.createElement(mxClient.VML_PREFIX+":image"),b.setAttribute("src",a),b.style.borderStyle=
-"none"):(b=document.createElement("img"),b.setAttribute("src",a),b.setAttribute("border","0"));return b},sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(a,e){var d=c.get(a);null==d&&(d=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),c.put(a,d));var g=c.get(e);null==g&&(g=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,g));d=mxCellPath.compare(d,g);return 0==d?0:0<d==b?1:-1});return a},getStylename:function(a){return null!=a&&(a=a.split(";")[0],0>a.indexOf("="))?
-a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0>a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b)for(var c=a.split(";"),d=0,e=0;e<c.length;e++){if(c[e]==b)return d;d+=c[e].length+1}return-1},addStylename:function(a,b){0>mxUtils.indexOfStylename(a,b)&&(null==a?a="":0<a.length&&";"!=a.charAt(a.length-1)&&(a+=";"),a+=b);return a},removeStylename:function(a,b){var c=[];if(null!=a)for(var d=a.split(";"),e=0;e<
-d.length;e++)d[e]!=b&&c.push(d[e]);return c.join(";")},removeAllStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0<=a[c].indexOf("=")&&b.push(a[c])}return b.join(";")},setCellStyles:function(a,b,c,d){if(null!=b&&0<b.length){a.beginUpdate();try{for(var e=0;e<b.length;e++)if(null!=b[e]){var f=mxUtils.setStyle(a.getStyle(b[e]),c,d);a.setStyle(b[e],f)}}finally{a.endUpdate()}}},setStyle:function(a,b,c){var d=null!=c&&("undefined"==typeof c.length||0<c.length);if(null==
-a||0==a.length)d&&(a=b+"="+c+";");else if(a.substring(0,b.length+1)==b+"="){var e=a.indexOf(";");a=d?b+"="+c+(0>e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0<b.length){a.beginUpdate();try{for(var f=0;f<b.length;f++)if(null!=
-b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"="+c:b+"=0";else{var e=a.indexOf(b+"=");if(0>e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g;g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,
-b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+"px";null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
-(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0<b.length&&(f.style.textDecoration=b.join(" ")));f.style.position="absolute";f.style.visibility="hidden";f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";f.style.zoom="1";null!=d?(f.style.width=d+"px",f.style.whiteSpace=
-"normal"):f.style.whiteSpace="nowrap";f.innerHTML=a;document.body.appendChild(f);a=new mxRectangle(0,0,f.offsetWidth,f.offsetHeight);document.body.removeChild(f);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,m=f.overlayPane;a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),
-f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var n=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate=n,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}return g},
-getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){var g=Math.floor(c)/c,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?
-g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return e*c/b*.99999},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||
-11==document.documentMode){d="<html><head>";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="<style>";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'</style></head><body style="margin:0px;">'+('<div style="position:absolute;overflow:hidden;width:'+e+"px;height:"+f+'px;"><div style="position:relative;left:'+k+"px;top:"+l+'px;">')+a.container.innerHTML;b.writeln(d+"</div></div></body><html>");b.close()}else{b.writeln("<html><head>");
-g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));b.writeln('</head><body style="margin:0px;"></body></html>');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");
-e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();
-mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;");c.appendChild(d);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/
-2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("<pre>"+mxUtils.htmlEntities(a)+"</pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");
-e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,
-e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=
-new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+
-"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,
-SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,
-CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,
-VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",
-LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",
-STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",
-STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",
-STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",
-STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",
-STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",
-STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",
-STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",
-STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",
-SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",
-ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",
-EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
+null!=a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_TEXT)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+mxUtils.htmlEntities(mxUtils.trim(a),!1));else{f.push(c+"<"+a.nodeName);var g=a.attributes;if(null!=g)for(var k=0;k<g.length;k++){var l=mxUtils.htmlEntities(g[k].value);f.push(" "+g[k].nodeName+'="'+l+'"')}g=a.firstChild;if(null!=g){for(f.push(">"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,
+b,c+b,d,e)),g=g.nextSibling;f.push(c+"</"+a.nodeName+">"+d)}else f.push("/>"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(a){if(1!=a.length||"BR"!=a[0].nodeName&&"\n"!=a[0].innerHTML)for(var e=0;e<a.length;e++){var g=a[e];"BR"==g.nodeName||"\n"==g.innerHTML||(1==a.length||0==e)&&"DIV"==g.nodeName&&"<br>"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0<g.nodeValue.length&&d.push(g.nodeValue):8!==g.nodeType&&0<g.childNodes.length&&b(g.childNodes),
+e<a.length-1&&0<=mxUtils.indexOf(c,a[e+1].nodeName)&&d.push("\n"))}}var c="BLOCKQUOTE DIV H1 H2 H3 H4 H5 H6 OL P PRE TABLE UL".split(" "),d=[];b(a);return d.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return mxClient.IS_IE&&void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=
+b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("<"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('="'),
+b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/>"):(b.push(">"),b.push(a.innerHTML),b.push("</"+a.nodeName+">"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,
+d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},
+linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},getDocumentSize:function(){var a=document.body,b=document.documentElement;
+try{return new mxRectangle(0,0,a.clientWidth||b.clientWidth,Math.max(a.clientHeight||0,b.clientHeight))}catch(c){return new mxRectangle}},fit:function(a){var b=mxUtils.getDocumentSize(),c=parseInt(a.offsetLeft),d=parseInt(a.offsetWidth),e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),f=e.x,e=e.y,g=f+b.width;c+d>g&&(a.style.left=Math.max(f,g-d)+"px");c=parseInt(a.offsetTop);d=parseInt(a.offsetHeight);b=e+b.height;c+d>b&&(a.style.top=Math.max(e,b-d)+"px")},load:function(a){a=new mxXmlRequest(a,null,
+"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,
+d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,
+e;for(e in a)e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(null!=a[c]&&null==b[c]||null==a[c]&&null!=b[c]||null!=a[c]&&null!=b[c]&&(a[c].x!=b[c].x||a[c].y!=b[c].y))return!1;return!0},equalEntries:function(a,b){var c=0;if(null==a&&null!=b||null!=a&&null==
+b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){for(var d in b)c++;for(d in a)if(c--,!(mxUtils.isNaN(a[d])&&mxUtils.isNaN(b[d])||a[d]==b[d]))return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b=
+"",c;for(c in a)try{if(null==a[c])b+=c+" = [null]\n";else if("function"==typeof a[c])b+=c+" => [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" => ["+d+"]\n");else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/
+180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,r=m*m,t=c*c,u=d*d,x=n/t+r/u;1<x?(c*=Math.sqrt(x),d*=Math.sqrt(x),f=0):(x=1,f===g&&(x=-1),f=x*Math.sqrt((t*u-t*r-u*n)/(t*r+u*n)));n=f*c*m/d;r=-1*f*d*e/c;k=p*n-q*r+k/2;l=q*n+p*r+l/2;t=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=t?t:2*Math.PI+t;t=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=t?t:2*Math.PI+t;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/
+4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var y=Math.cos(f),A=Math.sin(f),r=-m*(n*A+d*y),t=-m*(c*A-p*y),q=[],z=0;z<g;++z){f+=e;var y=Math.cos(f),A=Math.sin(f),u=n*y-d*A+k,x=c*y+p*A+l,v=-m*(n*A+d*y),y=-m*(c*A-p*y),A=6*z;q[A]=Number(r+a);q[A+1]=Number(t+b);q[A+2]=Number(u-v+a);q[A+3]=Number(x-y+b);q[A+4]=Number(u+a);q[A+5]=Number(x+b);r=u+v;t=x+y}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=
+c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;
+var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(b.style,c?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<c?(a=
+1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=
+d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},reversePortConstraints:function(a){var b;
+b=(a&mxConstants.DIRECTION_MASK_WEST)<<3;b|=(a&mxConstants.DIRECTION_MASK_NORTH)<<1;b|=(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|=(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},getDirectedBounds:function(a,b,c,d,e){var f=mxUtils.getValue(c,mxConstants.STYLE_DIRECTION,
+mxConstants.DIRECTION_EAST);d=null!=d?d:mxUtils.getValue(c,mxConstants.STYLE_FLIPH,!1);e=null!=e?e:mxUtils.getValue(c,mxConstants.STYLE_FLIPV,!1);b.x=Math.round(Math.max(0,Math.min(a.width,b.x)));b.y=Math.round(Math.max(0,Math.min(a.height,b.y)));b.width=Math.round(Math.max(0,Math.min(a.width,b.width)));b.height=Math.round(Math.max(0,Math.min(a.height,b.height)));if(e&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||d&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=
+b.x,b.x=b.width,b.width=c;if(d&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||e&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.y,b.y=b.height,b.height=c;d=mxRectangle.fromRectangle(b);f==mxConstants.DIRECTION_SOUTH?(d.y=b.x,d.x=b.height,d.width=b.y,d.height=b.width):f==mxConstants.DIRECTION_WEST?(d.y=b.height,d.x=b.width,d.width=b.x,d.height=b.y):f==mxConstants.DIRECTION_NORTH&&(d.y=b.width,d.x=b.y,d.width=b.height,d.height=b.x);return new mxRectangle(a.x+
+d.x,a.y+d.y,a.width-d.width-d.x,a.height-d.height-d.y)},getPerimeterPoint:function(a,b,c){for(var d=null,e=0;e<a.length-1;e++){var f=mxUtils.intersection(a[e].x,a[e].y,a[e+1].x,a[e+1].y,b.x,b.y,c.x,c.y);if(null!=f){var g=c.x-f.x,k=c.y-f.y,f={p:f,distSq:k*k+g*g};null!=f&&(null==d||d.distSq>f.distSq)&&(d=f)}}return null!=d?d.p:null},rectangleIntersectsSegment:function(a,b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,
+g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=
+f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),
+a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},getOffset:function(a,b){for(var c=0,d=0,e=!1,f=a,g=document.body,k=document.documentElement;null!=f&&f!=g&&f!=k&&!e;){var l=mxUtils.getCurrentStyle(f);null!=l&&(e=e||"fixed"==l.position);f=f.parentNode}b||e||(e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c+=e.x,d+=e.y);e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,
+a.body.scrollTop);a=a.defaultView||a.parentWindow;return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!0;for(var d=null!=a?a.ownerDocument:document,e=d.body,f=d.documentElement,g=new mxPoint,k=!1;null!=a&&
+a!=e&&a!=f;){isNaN(a.scrollLeft)||isNaN(a.scrollTop)||(g.x+=a.scrollLeft,g.y+=a.scrollTop);var l=mxUtils.getCurrentStyle(a);null!=l&&(k=k||"fixed"==l.position);a=b?a.parentNode:null}!k&&c&&(a=mxUtils.getDocumentScrollOrigin(d),g.x+=a.x,g.y+=a.y);return g},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a,!1);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return null!=a?a.replace(new RegExp("^["+(b||"\\s")+"]+","g"),""):null},rtrim:function(a,
+b){return null!=a?a.replace(new RegExp("["+(b||"\\s")+"]+$","g"),""):null},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)&&("string"!=typeof a||0>a.toLowerCase().indexOf("0x"))},isInteger:function(a){return String(parseInt(a))===String(a)},mod:function(a,b){return(a%b+b)%b},intersection:function(a,b,c,d,e,f,g,k){var l=(k-f)*(c-a)-(g-e)*(d-b);g=((g-e)*(b-f)-(k-f)*(a-e))/l;e=((c-a)*(b-f)-(d-b)*(a-e))/l;return 0<=g&&1>=g&&
+0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;0>=e*c+f*d?c=0:(e=c-e,f=d-f,a=e*c+f*d,c=0>=a?0:a*a/(c*c+d*d));e=e*e+f*f-c;0>e&&(e=0);return e},ptLineDist:function(a,b,c,d,e,f){return Math.abs((d-b)*e-(c-a)*f+c*b-d*a)/Math.sqrt((d-b)*(d-b)+(c-a)*(c-a))},relativeCcw:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;a=e*d-f*c;0==a&&(a=e*c+f*d,0<a&&(a=(e-c)*c+(f-d)*d,0>a&&(a=0)));return 0>a?-1:0<a?1:0},animateChanges:function(a,b){mxEffects.animateChanges.apply(this,
+arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity="+b/5+")":mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createImage:function(a){var b;mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(b=document.createElement(mxClient.VML_PREFIX+
+":image"),b.setAttribute("src",a),b.style.borderStyle="none"):(b=document.createElement("img"),b.setAttribute("src",a),b.setAttribute("border","0"));return b},sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(a,e){var d=c.get(a);null==d&&(d=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),c.put(a,d));var g=c.get(e);null==g&&(g=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,g));d=mxCellPath.compare(d,g);return 0==d?0:0<d==b?1:-1});return a},getStylename:function(a){return null!=
+a&&(a=a.split(";")[0],0>a.indexOf("="))?a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0>a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b)for(var c=a.split(";"),d=0,e=0;e<c.length;e++){if(c[e]==b)return d;d+=c[e].length+1}return-1},addStylename:function(a,b){0>mxUtils.indexOfStylename(a,b)&&(null==a?a="":0<a.length&&";"!=a.charAt(a.length-1)&&(a+=";"),a+=b);return a},removeStylename:function(a,b){var c=[];
+if(null!=a)for(var d=a.split(";"),e=0;e<d.length;e++)d[e]!=b&&c.push(d[e]);return c.join(";")},removeAllStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0<=a[c].indexOf("=")&&b.push(a[c])}return b.join(";")},setCellStyles:function(a,b,c,d){if(null!=b&&0<b.length){a.beginUpdate();try{for(var e=0;e<b.length;e++)if(null!=b[e]){var f=mxUtils.setStyle(a.getStyle(b[e]),c,d);a.setStyle(b[e],f)}}finally{a.endUpdate()}}},setStyle:function(a,b,c){var d=null!=c&&("undefined"==
+typeof c.length||0<c.length);if(null==a||0==a.length)d&&(a=b+"="+c+";");else if(a.substring(0,b.length+1)==b+"="){var e=a.indexOf(";");a=d?b+"="+c+(0>e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0<b.length){a.beginUpdate();
+try{for(var f=0;f<b.length;f++)if(null!=b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"="+c:b+"=0";else{var e=a.indexOf(b+"=");if(0>e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g;g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+
+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+
+"px";null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0<b.length&&(f.style.textDecoration=b.join(" ")));f.style.position="absolute";f.style.visibility="hidden";f.style.display=mxClient.IS_QUIRKS?"inline":
+"inline-block";f.style.zoom="1";null!=d?(f.style.width=d+"px",f.style.whiteSpace="normal"):f.style.whiteSpace="nowrap";f.innerHTML=a;document.body.appendChild(f);a=new mxRectangle(0,0,f.offsetWidth,f.offsetHeight);document.body.removeChild(f);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,m=f.overlayPane;a.dialect==mxConstants.DIALECT_SVG?
+(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var n=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate=n,f.canvas.removeChild(f.drawPane),
+f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){var g=
+Math.floor(c)/c,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return e*c/b*.99999},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-
+g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="<html><head>";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="<style>";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'</style></head><body style="margin:0px;">'+('<div style="position:absolute;overflow:hidden;width:'+e+"px;height:"+f+'px;"><div style="position:relative;left:'+k+"px;top:"+l+'px;">')+
+a.container.innerHTML;b.writeln(d+"</div></div></body><html>");b.close()}else{b.writeln("<html><head>");g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));b.writeln('</head><body style="margin:0px;"></body></html>');b.close();c=b.createElement("div");
+c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+
+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;");c.appendChild(d);c=new mxWindow("Popup Window",
+c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("<pre>"+mxUtils.htmlEntities(a)+"</pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,
+null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||
+document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));
+g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=
+parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",
+NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",
+OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",
+VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",
+DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),
+PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",
+STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",
+STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",
+STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",
+STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",
+STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",
+STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",
+STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",
+SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",
+ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",
+ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};
mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};
mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};
@@ -436,8 +436,8 @@ 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),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);null!=b.style&&"1"==mxUtils.getValue(b.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(a.setStrokeColor(mxConstants.NONE),a.rect(c,d,e,f),a.stroke(),a.setStrokeColor(b.stroke));
-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.drawShape=function(a,b,c,d,e,f){var g=a.states.slice(),k=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),k=this.computeAspect(b.style,c,d,e,f,k),l=Math.min(k.width,k.height),l="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*l;a.setStrokeWidth(l);null!=b.style&&"1"==mxUtils.getValue(b.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(a.setStrokeColor(mxConstants.NONE),a.rect(c,d,e,f),a.stroke(),a.setStrokeColor(b.stroke));
+this.drawChildren(a,b,c,d,e,f,this.bgNode,k,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,k,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0));a.states.length!=g.length&&(a.states=g)};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,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){a.begin();p=!0;if("1"==c.getAttribute("rounded")){for(var p=!1,q=Number(c.getAttribute("arcSize")),r=0,t=[],u=c.firstChild;null!=u;){if(u.nodeType==mxConstants.NODETYPE_ELEMENT){var x=u.nodeName;if("move"==x||"line"==x)"move"!=x&&0!=t.length||t.push([]),t[t.length-1].push(new mxPoint(k+Number(u.getAttribute("x"))*
m,l+Number(u.getAttribute("y"))*n)),r++;else{p=!0;break}}u=u.nextSibling}if(!p&&0<r)for(m=0;m<t.length;m++)n=!1,l=t[m][0],k=t[m][t[m].length-1],l.x==k.x&&l.y==k.y&&(t[m].pop(),n=!0),this.addPoints(a,t[m],!0,q,n);else p=!0}if(p)for(u=c.firstChild;null!=u;)u.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,u,d,e,f),u=u.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"))*
@@ -1245,19 +1245,20 @@ mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels};mxGraph.protot
mxGraph.prototype.getTooltip=function(a,b,c,d){var e=null;null!=a&&(null==a.control||b!=a.control.node&&b.parentNode!=a.control.node||(e=this.collapseExpandResource,e=mxUtils.htmlEntities(mxResources.get(e)||e).replace(/\\n/g,"<br>")),null==e&&null!=a.overlays&&a.overlays.visit(function(a,c){null!=e||b!=c.node&&b.parentNode!=c.node||(e=c.overlay.toString())}),null==e&&(c=this.selectionCellsHandler.getHandler(a.cell),null!=c&&"function"==typeof c.getTooltipForNode&&(e=c.getTooltipForNode(b))),null==
e&&(e=this.getTooltipForCell(a.cell)));return e};mxGraph.prototype.getTooltipForCell=function(a){return null!=a&&null!=a.getTooltip?a.getTooltip():this.convertValueToString(a)};mxGraph.prototype.getLinkForCell=function(a){return null};mxGraph.prototype.getCursorForMouseEvent=function(a){return this.getCursorForCell(a.getCell())};mxGraph.prototype.getCursorForCell=function(a){return null};
mxGraph.prototype.getStartSize=function(a){var b=new mxRectangle,c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a);null!=a&&(c=parseInt(mxUtils.getValue(a,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)?b.height=c:b.width=c);return b};mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};
-mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
-mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
-mxGraph.prototype.isSwimlane=function(a){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);if(null!=b&&!this.model.isEdge(a))return b[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
-mxGraph.prototype.setEnabled=function(a){this.enabled=a};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
-mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
-mxGraph.prototype.isCellCloneable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};
-mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};
-mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};
-mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};mxGraph.prototype.isLabelMovable=function(a){return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&this.vertexLabelsMovable)};mxGraph.prototype.isCellRotatable=function(a){var b=this.view.getState(a);return 0!=(null!=b?b.style:this.getCellStyle(a))[mxConstants.STYLE_ROTATABLE]};mxGraph.prototype.getMovableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellMovable(a)}))};
-mxGraph.prototype.isCellMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsMovable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_MOVABLE]};mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable};mxGraph.prototype.setCellsMovable=function(a){this.cellsMovable=a};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled};mxGraph.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled};
-mxGraph.prototype.setPortsEnabled=function(a){this.portsEnabled=a};mxGraph.prototype.getGridSize=function(){return this.gridSize};mxGraph.prototype.setGridSize=function(a){this.gridSize=a};mxGraph.prototype.getTolerance=function(){return this.tolerance};mxGraph.prototype.setTolerance=function(a){this.tolerance=a};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable};mxGraph.prototype.setVertexLabelsMovable=function(a){this.vertexLabelsMovable=a};
-mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable};mxGraph.prototype.setEdgeLabelsMovable=function(a){this.edgeLabelsMovable=a};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting};mxGraph.prototype.setSwimlaneNesting=function(a){this.swimlaneNesting=a};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled};mxGraph.prototype.setSwimlaneSelectionEnabled=function(a){this.swimlaneSelectionEnabled=a};
-mxGraph.prototype.isMultigraph=function(){return this.multigraph};mxGraph.prototype.setMultigraph=function(a){this.multigraph=a};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops};mxGraph.prototype.setAllowDanglingEdges=function(a){this.allowDanglingEdges=a};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges};mxGraph.prototype.setConnectableEdges=function(a){this.connectableEdges=a};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges};
+mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};
+mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};
+mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};mxGraph.prototype.isSwimlane=function(a){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);if(null!=b&&!this.model.isEdge(a))return b[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1};
+mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};mxGraph.prototype.setEnabled=function(a){this.enabled=a};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};
+mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};
+mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};mxGraph.prototype.isCellCloneable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};
+mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};
+mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};
+mxGraph.prototype.isCellDeletable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};mxGraph.prototype.isLabelMovable=function(a){return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&this.vertexLabelsMovable)};
+mxGraph.prototype.isCellRotatable=function(a){var b=this.view.getState(a);return 0!=(null!=b?b.style:this.getCellStyle(a))[mxConstants.STYLE_ROTATABLE]};mxGraph.prototype.getMovableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellMovable(a)}))};mxGraph.prototype.isCellMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsMovable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_MOVABLE]};
+mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable};mxGraph.prototype.setCellsMovable=function(a){this.cellsMovable=a};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled};mxGraph.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled};mxGraph.prototype.setPortsEnabled=function(a){this.portsEnabled=a};mxGraph.prototype.getGridSize=function(){return this.gridSize};
+mxGraph.prototype.setGridSize=function(a){this.gridSize=a};mxGraph.prototype.getTolerance=function(){return this.tolerance};mxGraph.prototype.setTolerance=function(a){this.tolerance=a};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable};mxGraph.prototype.setVertexLabelsMovable=function(a){this.vertexLabelsMovable=a};mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable};
+mxGraph.prototype.setEdgeLabelsMovable=function(a){this.edgeLabelsMovable=a};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting};mxGraph.prototype.setSwimlaneNesting=function(a){this.swimlaneNesting=a};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled};mxGraph.prototype.setSwimlaneSelectionEnabled=function(a){this.swimlaneSelectionEnabled=a};mxGraph.prototype.isMultigraph=function(){return this.multigraph};
+mxGraph.prototype.setMultigraph=function(a){this.multigraph=a};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops};mxGraph.prototype.setAllowDanglingEdges=function(a){this.allowDanglingEdges=a};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges};mxGraph.prototype.setConnectableEdges=function(a){this.connectableEdges=a};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges};
mxGraph.prototype.setCloneInvalidEdges=function(a){this.cloneInvalidEdges=a};mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges};mxGraph.prototype.setAllowLoops=function(a){this.allowLoops=a};mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove};mxGraph.prototype.setDisconnectOnMove=function(a){this.disconnectOnMove=a};mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled};
mxGraph.prototype.setDropEnabled=function(a){this.dropEnabled=a};mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled};mxGraph.prototype.setSplitEnabled=function(a){this.splitEnabled=a};mxGraph.prototype.isCellResizable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsResizable()&&!this.isCellLocked(a)&&"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")};mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable};
mxGraph.prototype.setCellsResizable=function(a){this.cellsResizable=a};mxGraph.prototype.isTerminalPointMovable=function(a,b){return!0};mxGraph.prototype.isCellBendable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsBendable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_BENDABLE]};mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable};mxGraph.prototype.setCellsBendable=function(a){this.cellsBendable=a};
@@ -1370,12 +1371,13 @@ mxCellStatePreview.prototype.translateState=function(a,b,c){if(null!=a){var d=th
mxCellStatePreview.prototype.revalidateState=function(a,b,c,d){if(null!=a){var e=this.graph.getModel();e.isEdge(a.cell)&&a.view.updateCellState(a);var f=this.graph.getCellGeometry(a.cell),g=a.view.getState(e.getParent(a.cell));0==b&&0==c||null==f||!f.relative||!e.isVertex(a.cell)||null!=g&&!e.isVertex(g.cell)&&null==this.deltas.get(a.cell)||(a.x+=b,a.y+=c);this.graph.cellRenderer.redraw(a);null!=d&&d(a);f=e.getChildCount(a.cell);for(g=0;g<f;g++)this.revalidateState(this.graph.view.getState(e.getChildAt(a.cell,
g)),b,c,d)}};mxCellStatePreview.prototype.addEdges=function(a){for(var b=this.graph.getModel(),c=b.getEdgeCount(a.cell),d=0;d<c;d++){var e=a.view.getState(b.getEdgeAt(a.cell,d));null!=e&&this.moveState(e,0,0)}};function mxConnectionConstraint(a,b,c,d,e){this.point=a;this.perimeter=null!=b?b:!0;this.name=c;this.dx=d?d:0;this.dy=e?e:0}mxConnectionConstraint.prototype.point=null;mxConnectionConstraint.prototype.perimeter=null;mxConnectionConstraint.prototype.name=null;
mxConnectionConstraint.prototype.dx=null;mxConnectionConstraint.prototype.dy=null;
-function mxGraphHandler(a){this.graph=a;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.suspended||(this.updatePreview(),this.updateHint())});this.graph.addListener(mxEvent.PAN,this.panHandler);this.escapeHandler=mxUtils.bind(this,function(a,c){this.reset()});this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler);this.refreshHandler=mxUtils.bind(this,function(a,c){if(null!=this.first&&!this.suspended)try{this.bounds=this.graph.getView().getBounds(this.cells),
-this.pBounds=this.getPreviewBounds(this.cells),this.updatePreview(!0),window.setTimeout(mxUtils.bind(this,function(){this.livePreviewUsed&&(this.setHandlesVisibleForCells(this.cells,!1),this.updatePreview())}),0)}catch(d){this.reset()}});this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler)}mxGraphHandler.prototype.graph=null;mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50;mxGraphHandler.prototype.enabled=!0;mxGraphHandler.prototype.highlightEnabled=!0;
-mxGraphHandler.prototype.cloneEnabled=!0;mxGraphHandler.prototype.moveEnabled=!0;mxGraphHandler.prototype.guidesEnabled=!1;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=!0;mxGraphHandler.prototype.selectEnabled=!0;mxGraphHandler.prototype.removeCellsFromParent=!0;mxGraphHandler.prototype.removeEmptyParents=!1;mxGraphHandler.prototype.connectOnDrop=!1;mxGraphHandler.prototype.scrollOnMove=!0;
-mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor="black";mxGraphHandler.prototype.htmlPreview=!1;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=!1;mxGraphHandler.prototype.rotationEnabled=!0;mxGraphHandler.prototype.maxLivePreview=0;mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG;mxGraphHandler.prototype.isEnabled=function(){return this.enabled};mxGraphHandler.prototype.setEnabled=function(a){this.enabled=a};
-mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled};mxGraphHandler.prototype.setCloneEnabled=function(a){this.cloneEnabled=a};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled};mxGraphHandler.prototype.setMoveEnabled=function(a){this.moveEnabled=a};mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled};mxGraphHandler.prototype.setSelectEnabled=function(a){this.selectEnabled=a};
-mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent};mxGraphHandler.prototype.setRemoveCellsFromParent=function(a){this.removeCellsFromParent=a};mxGraphHandler.prototype.getInitialCellForEvent=function(a){return a.getCell()};mxGraphHandler.prototype.isDelayedSelection=function(a,b){return this.graph.isCellSelected(a)};mxGraphHandler.prototype.consumeMouseEvent=function(a,b){b.consume()};
+function mxGraphHandler(a){this.graph=a;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.suspended||(this.updatePreview(),this.updateHint())});this.graph.addListener(mxEvent.PAN,this.panHandler);this.escapeHandler=mxUtils.bind(this,function(a,c){this.reset()});this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler);this.refreshHandler=mxUtils.bind(this,function(a,c){window.setTimeout(mxUtils.bind(this,function(){if(null!=this.first&&!this.suspended){var a=this.currentDx,
+b=this.currentDy;this.currentDy=this.currentDx=0;this.updatePreview();this.bounds=this.graph.getView().getBounds(this.cells);this.pBounds=this.getPreviewBounds(this.cells);null==this.pBounds?this.reset():(this.currentDx=a,this.currentDy=b,this.updatePreview(),this.updateHint(),this.livePreviewUsed&&this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!1))}}),0)});this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler)}mxGraphHandler.prototype.graph=null;
+mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50;mxGraphHandler.prototype.enabled=!0;mxGraphHandler.prototype.highlightEnabled=!0;mxGraphHandler.prototype.cloneEnabled=!0;mxGraphHandler.prototype.moveEnabled=!0;mxGraphHandler.prototype.guidesEnabled=!1;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=!0;mxGraphHandler.prototype.selectEnabled=!0;
+mxGraphHandler.prototype.removeCellsFromParent=!0;mxGraphHandler.prototype.removeEmptyParents=!1;mxGraphHandler.prototype.connectOnDrop=!1;mxGraphHandler.prototype.scrollOnMove=!0;mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor="black";mxGraphHandler.prototype.htmlPreview=!1;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=!1;mxGraphHandler.prototype.rotationEnabled=!0;mxGraphHandler.prototype.maxLivePreview=0;
+mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG;mxGraphHandler.prototype.isEnabled=function(){return this.enabled};mxGraphHandler.prototype.setEnabled=function(a){this.enabled=a};mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled};mxGraphHandler.prototype.setCloneEnabled=function(a){this.cloneEnabled=a};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled};mxGraphHandler.prototype.setMoveEnabled=function(a){this.moveEnabled=a};
+mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled};mxGraphHandler.prototype.setSelectEnabled=function(a){this.selectEnabled=a};mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent};mxGraphHandler.prototype.setRemoveCellsFromParent=function(a){this.removeCellsFromParent=a};mxGraphHandler.prototype.getInitialCellForEvent=function(a){return a.getCell()};mxGraphHandler.prototype.isDelayedSelection=function(a,b){return this.graph.isCellSelected(a)};
+mxGraphHandler.prototype.consumeMouseEvent=function(a,b){b.consume()};
mxGraphHandler.prototype.mouseDown=function(a,b){if(!b.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&null!=b.getState()&&!mxEvent.isMultiTouchEvent(b.getEvent())){var c=this.getInitialCellForEvent(b);this.delayedSelection=this.isDelayedSelection(c,b);this.cell=null;this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(c,b.getEvent());if(this.isMoveEnabled()){var d=this.graph.model,e=d.getGeometry(c);this.graph.isCellMovable(c)&&(!d.isEdge(c)||1<this.graph.getSelectionCount()||
null!=e.points&&0<e.points.length||null==d.getTerminal(c,!0)||null==d.getTerminal(c,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(b.getEvent())&&this.graph.isCellsCloneable())?this.start(c,b.getX(),b.getY()):this.delayedSelection&&(this.cell=c);this.cellWasClicked=!0;this.consumeMouseEvent(mxEvent.MOUSE_DOWN,b)}}};
mxGraphHandler.prototype.getGuideStates=function(){var a=this.graph.getDefaultParent(),b=this.graph.getModel(),c=mxUtils.bind(this,function(a){return null!=this.graph.view.getState(a)&&b.isVertex(a)&&null!=b.getGeometry(a)&&!b.getGeometry(a).relative});return this.graph.view.getCellStates(b.filterDescendants(c,a))};mxGraphHandler.prototype.getCells=function(a){return!this.delayedSelection&&this.graph.isCellMovable(a)?[a]:this.graph.getMovableCells(this.graph.getSelectionCells())};
@@ -1390,24 +1392,24 @@ mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};
mxGraphHandler.prototype.mouseMove=function(a,b){var c=this.graph;if(b.isConsumed()||!c.isMouseDown||null==this.cell||null==this.first||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||c.isMouseDown||(d=c.getCursorForMouseEvent(b),null==d&&c.isEnabled()&&c.isCellMovable(b.getCell())&&(d=c.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=
d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{var d=this.getDelta(b),e=c.tolerance;if(null!=this.shape||this.livePreviewActive||Math.abs(d.x)>e||Math.abs(d.y)>e){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));var e=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),f=c.isGridEnabledEvent(b.getEvent()),g=b.getCell(),k=!0,l=null;this.cloning=e;c.isDropEnabled()&&
this.highlightEnabled&&(l=c.getDropTarget(this.cells,b.getEvent(),g,e));var m=c.getView().getState(l),n=!1;null==m||c.model.getParent(this.cell)==l&&!e?(this.target=null,this.connectOnDrop&&null!=g&&1==this.cells.length&&c.getModel().isVertex(g)&&c.isCellConnectable(g)&&(m=c.getView().getState(g),null!=m&&(g=null==c.getEdgeValidationError(null,this.cell,g)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(g),n=!0))):(this.target!=l&&(this.target=l,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),
-n=!0);null!=m&&n?this.highlight.highlight(m):this.highlight.hide();this.livePreviewActive&&e?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?e&&this.livePreviewActive||(this.setHandlesVisibleForCells(this.cells,!1),this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds));null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,
-d,f,e),k=!1):d=this.graph.snapDelta(d,this.bounds,!f,!1,!1);null!=this.guide&&k&&this.guide.hide();c.isConstrainedEvent(b.getEvent())&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};
+n=!0);null!=m&&n?this.highlight.highlight(m):this.highlight.hide();this.livePreviewActive&&e?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?e&&this.livePreviewActive||(this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!1),this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds));null!=this.guide&&this.useGuidesForEvent(b)?
+(d=this.guide.move(this.bounds,d,f,e),k=!1):d=this.graph.snapDelta(d,this.bounds,!f,!1,!1);null!=this.guide&&k&&this.guide.hide();c.isConstrainedEvent(b.getEvent())&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};
mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&this.updateLivePreview(this.currentDx,this.currentDy):this.updatePreviewShape()};mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())};
-mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(d,e){var f=e.clone();c.push([e,f]);null!=e.shape&&(null==e.shape.originalPointerEvents&&(e.shape.originalPointerEvents=e.shape.pointerEvents),e.shape.pointerEvents=!1,null!=e.text&&(null==e.text.originalPointerEvents&&(e.text.originalPointerEvents=e.text.pointerEvents),e.text.pointerEvents=!1));this.graph.model.isVertex(e.cell)&&(e.x+=a,e.y+=b,this.cloning||
-(e.view.graph.cellRenderer.redraw(e,!0),e.view.invalidate(e.cell),e.invalid=!1,null!=e.control&&null!=e.control.node&&(e.control.node.style.visibility="hidden")))}));for(var d=this.graph.view.scale,e=0;e<c.length;e++){var f=c[e][0];if(this.graph.model.isEdge(f.cell)){var g=this.graph.getCellGeometry(f.cell),k=[];if(null!=g&&null!=g.points)for(var l=0;l<g.points.length;l++)null!=g.points[l]&&k.push(new mxPoint(g.points[l].x+a/d,g.points[l].y+b/d));var g=f.visibleSourceState,l=f.visibleTargetState,
-m=c[e][1].absolutePoints;null!=g&&this.isCellMoving(g.cell)?f.view.updateFixedTerminalPoint(f,g,!0,this.graph.getConnectionConstraint(f,g,!0)):(g=m[0],f.setAbsoluteTerminalPoint(new mxPoint(g.x+a,g.y+b),!0),g=null);null!=l&&this.isCellMoving(l.cell)?f.view.updateFixedTerminalPoint(f,l,!1,this.graph.getConnectionConstraint(f,l,!1)):(l=m[m.length-1],f.setAbsoluteTerminalPoint(new mxPoint(l.x+a,l.y+b),!1),l=null);f.view.updatePoints(f,k,g,l);f.view.updateFloatingTerminalPoints(f,g,l);f.view.updateEdgeLabelOffset(f);
-f.invalid=!1;this.cloning||f.view.graph.cellRenderer.redraw(f,!0)}}this.graph.view.validate();this.redrawHandles(c);this.resetPreviewStates(c)}};mxGraphHandler.prototype.redrawHandles=function(a){for(var b=0;b<a.length;b++){var c=this.graph.selectionCellsHandler.getHandler(a[b][0].cell);null!=c&&c.redraw(!0)}};mxGraphHandler.prototype.resetPreviewStates=function(a){for(var b=0;b<a.length;b++)a[b][0].setState(a[b][1])};
+mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(d,e){if(null==this.graph.view.getState(e.cell))e.destroy();else{var f=e.clone();c.push([e,f]);null!=e.shape&&(null==e.shape.originalPointerEvents&&(e.shape.originalPointerEvents=e.shape.pointerEvents),e.shape.pointerEvents=!1,null!=e.text&&(null==e.text.originalPointerEvents&&(e.text.originalPointerEvents=e.text.pointerEvents),e.text.pointerEvents=
+!1));this.graph.model.isVertex(e.cell)&&(e.x+=a,e.y+=b,this.cloning||(e.view.graph.cellRenderer.redraw(e,!0),e.view.invalidate(e.cell),e.invalid=!1,null!=e.control&&null!=e.control.node&&(e.control.node.style.visibility="hidden")))}}));if(0==c.length)this.reset();else{for(var d=this.graph.view.scale,e=0;e<c.length;e++){var f=c[e][0];if(this.graph.model.isEdge(f.cell)){var g=this.graph.getCellGeometry(f.cell),k=[];if(null!=g&&null!=g.points)for(var l=0;l<g.points.length;l++)null!=g.points[l]&&k.push(new mxPoint(g.points[l].x+
+a/d,g.points[l].y+b/d));var g=f.visibleSourceState,l=f.visibleTargetState,m=c[e][1].absolutePoints;null!=g&&this.isCellMoving(g.cell)?f.view.updateFixedTerminalPoint(f,g,!0,this.graph.getConnectionConstraint(f,g,!0)):(g=m[0],f.setAbsoluteTerminalPoint(new mxPoint(g.x+a,g.y+b),!0),g=null);null!=l&&this.isCellMoving(l.cell)?f.view.updateFixedTerminalPoint(f,l,!1,this.graph.getConnectionConstraint(f,l,!1)):(l=m[m.length-1],f.setAbsoluteTerminalPoint(new mxPoint(l.x+a,l.y+b),!1),l=null);f.view.updatePoints(f,
+k,g,l);f.view.updateFloatingTerminalPoints(f,g,l);f.view.updateEdgeLabelOffset(f);f.invalid=!1;this.cloning||f.view.graph.cellRenderer.redraw(f,!0)}}this.graph.view.validate();this.redrawHandles(c);this.resetPreviewStates(c)}}};mxGraphHandler.prototype.redrawHandles=function(a){for(var b=0;b<a.length;b++){var c=this.graph.selectionCellsHandler.getHandler(a[b][0].cell);null!=c&&c.redraw(!0)}};mxGraphHandler.prototype.resetPreviewStates=function(a){for(var b=0;b<a.length;b++)a[b][0].setState(a[b][1])};
mxGraphHandler.prototype.suspend=function(){this.suspended||(this.livePreviewUsed&&this.updateLivePreview(0,0),null!=this.shape&&(this.shape.node.style.visibility="hidden"),null!=this.guide&&this.guide.setVisible(!1),this.suspended=!0)};mxGraphHandler.prototype.resume=function(){this.suspended&&(this.suspended=null,this.livePreviewUsed&&(this.livePreviewActive=!0),null!=this.shape&&(this.shape.node.style.visibility="visible"),null!=this.guide&&this.guide.setVisible(!0))};
mxGraphHandler.prototype.resetLivePreview=function(){null!=this.allCells&&(this.allCells.visit(mxUtils.bind(this,function(a,b){null!=b.shape&&null!=b.shape.originalPointerEvents&&(b.shape.pointerEvents=b.shape.originalPointerEvents,b.shape.originalPointerEvents=null,null!=b.text&&(b.text.pointerEvents=b.text.originalPointerEvents,b.text.originalPointerEvents=null));null!=b.control&&null!=b.control.node&&"hidden"==b.control.node.style.visibility&&(b.control.node.style.visibility="");b.view.invalidate(b.cell)})),
this.graph.view.validate())};mxGraphHandler.prototype.setHandlesVisibleForCells=function(a,b){for(var c=0;c<a.length;c++){var d=this.graph.selectionCellsHandler.getHandler(a[c]);null!=d&&(d.setHandlesVisible(b),b&&d.redraw())}};mxGraphHandler.prototype.setHighlightColor=function(a){null!=this.highlight&&this.highlight.setHighlightColor(a)};
mxGraphHandler.prototype.mouseUp=function(a,b){if(!b.isConsumed())if(this.livePreviewUsed&&this.resetLivePreview(),null==this.cell||null==this.first||null==this.shape&&!this.livePreviewUsed||null==this.currentDx||null==this.currentDy)this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(b);else{var c=this.graph,d=b.getCell();if(this.connectOnDrop&&null==this.target&&null!=d&&c.getModel().isVertex(d)&&c.isCellConnectable(d)&&c.isEdgeValid(null,this.cell,d))c.connectionHandler.connect(this.cell,
d,b.getEvent());else{var d=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),e=c.getView().scale,f=this.roundLength(this.currentDx/e),e=this.roundLength(this.currentDy/e),g=this.target;c.isSplitEnabled()&&c.isSplitTarget(g,this.cells,b.getEvent())?c.splitEdge(g,this.cells,null,f,e):this.moveCells(this.cells,f,e,d,this.target,b.getEvent())}}this.cellWasClicked&&this.consumeMouseEvent(mxEvent.MOUSE_UP,b);this.reset()};
mxGraphHandler.prototype.selectDelayed=function(a){this.graph.isCellSelected(this.cell)&&this.graph.popupMenuHandler.isPopupTrigger(a)||this.graph.selectCellForEvent(this.cell,a.getEvent())};
-mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.cells,!0));this.destroyShapes();this.removeHint();this.delayedSelection=!1;this.livePreviewUsed=this.livePreviewActive=null;this.cellWasClicked=!1;this.cellCount=this.currentDy=this.currentDx=this.suspended=null;this.cloning=!1;this.cell=this.cells=this.first=this.target=this.guides=this.pBounds=this.allCells=null};
+mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!0));this.destroyShapes();this.removeHint();this.delayedSelection=!1;this.livePreviewUsed=this.livePreviewActive=null;this.cellWasClicked=!1;this.cellCount=this.currentDy=this.currentDx=this.suspended=null;this.cloning=!1;this.cell=this.cells=this.first=this.target=this.guides=this.pBounds=this.allCells=null};
mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){if(this.graph.getModel().isVertex(a)&&(a=this.graph.getView().getState(a),null!=a)){c=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(c),mxEvent.getClientY(c));var d=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);if(0!=d){b=Math.cos(-d);var d=Math.sin(-d),e=new mxPoint(a.getCenterX(),a.getCenterY());c=mxUtils.getRotatedPoint(c,b,d,e)}return!mxUtils.contains(a,c.x,c.y)}return!1};
mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){d&&(a=this.graph.getCloneableCells(a));var g=this.graph.getModel().getParent(this.cell);null==e&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(g,a,f)&&(e=this.graph.getDefaultParent());d=d&&!this.graph.isCellLocked(e||this.graph.getDefaultParent());this.graph.getModel().beginUpdate();try{g=[];if(!d&&null!=e&&this.removeEmptyParents){for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(l=0;l<a.length;l++){var m=
this.graph.model.getParent(a[l]);null==m||k.get(m)||(k.put(m,!0),g.push(m))}}a=this.graph.moveCells(a,b,c,d,e,f);b=[];for(l=0;l<g.length;l++)this.shouldRemoveParent(g[l])&&b.push(g[l]);this.graph.removeCells(b,!1)}finally{this.graph.getModel().endUpdate()}d&&this.graph.setSelectionCells(a);this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(a[0])};
-mxGraphHandler.prototype.shouldRemoveParent=function(a){var b=this.graph.view.getState(a);return null!=b&&(this.graph.model.isEdge(b.cell)||this.graph.model.isVertex(b.cell))&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)?(a=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),a==mxConstants.NONE&&b==mxConstants.NONE):!1};
+mxGraphHandler.prototype.shouldRemoveParent=function(a){a=this.graph.view.getState(a);return null!=a&&(this.graph.model.isEdge(a.cell)||this.graph.model.isVertex(a.cell))&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)};
mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.guide&&(this.guide.destroy(),this.guide=null);null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)};
mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.refreshHandler=null);this.destroyShapes();this.removeHint()};
function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
@@ -1464,10 +1466,10 @@ mxConnectionHandler.prototype.isImmediateConnectSource=function(a){return!this.g
mxConnectionHandler.prototype.isOutlineConnectEvent=function(a){var b=mxUtils.getOffset(this.graph.container),c=a.getEvent(),d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),e=document.documentElement,f=this.currentPoint.x-this.graph.container.scrollLeft+b.x-((window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)),b=this.currentPoint.y-this.graph.container.scrollTop+b.y-((window.pageYOffset||e.scrollTop)-(e.clientTop||0));return this.outlineConnect&&!mxEvent.isShiftDown(a.getEvent())&&(a.isSource(this.marker.highlight.shape)||
mxEvent.isAltDown(a.getEvent())&&null!=a.getState()||this.marker.highlight.isHighlightAt(d,c)||(f!=d||b!=c)&&null==a.getState()&&this.marker.highlight.isHighlightAt(f,b))};
mxConnectionHandler.prototype.updateCurrentState=function(a,b){this.constraintHandler.update(a,null==this.first,!1,null==this.first||a.isSource(this.marker.highlight.shape)?null:b);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
-this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error?this.currentState=this.constraintHandler.currentFocus:this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(a.getEvent())?(this.marker.reset(),this.currentState=null):(this.marker.process(a),this.currentState=this.marker.getValidState(),null==
-this.currentState||this.isCellEnabled(this.currentState.cell)||(this.currentState=null));var c=this.isOutlineConnectEvent(a);null!=this.currentState&&c&&(a.isSource(this.marker.highlight.shape)&&(b=new mxPoint(a.getGraphX(),a.getGraphY())),c=this.graph.getOutlineConstraint(b,this.currentState,a),this.constraintHandler.setFocus(a,this.currentState,!1),this.constraintHandler.currentConstraint=c,this.constraintHandler.currentPoint=b);this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&
-(c=this.graph.view.scale,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.marker.getValidState()!=a.getState()?(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,
-this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()))}};mxConnectionHandler.prototype.isCellEnabled=function(a){return!0};mxConnectionHandler.prototype.convertWaypoint=function(a){var b=this.graph.getView().getScale(),c=this.graph.getView().getTranslate();a.x=a.x/b-c.x;a.y=a.y/b-c.y};
+this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error&&(this.currentState=this.constraintHandler.currentFocus),(null!=this.error||null!=this.currentState&&!this.isCellEnabled(this.currentState.cell))&&this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(a.getEvent())?(this.marker.reset(),this.currentState=
+null):(this.marker.process(a),this.currentState=this.marker.getValidState());null==this.currentState||this.isCellEnabled(this.currentState.cell)||(this.constraintHandler.reset(),this.marker.reset(),this.currentState=null);var c=this.isOutlineConnectEvent(a);null!=this.currentState&&c&&(a.isSource(this.marker.highlight.shape)&&(b=new mxPoint(a.getGraphX(),a.getGraphY())),c=this.graph.getOutlineConstraint(b,this.currentState,a),this.constraintHandler.setFocus(a,this.currentState,!1),this.constraintHandler.currentConstraint=
+c,this.constraintHandler.currentPoint=b);this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&(c=this.graph.view.scale,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.marker.getValidState()!=a.getState()?
+(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()))}};mxConnectionHandler.prototype.isCellEnabled=function(a){return!0};mxConnectionHandler.prototype.convertWaypoint=function(a){var b=this.graph.getView().getScale(),c=this.graph.getView().getTranslate();a.x=a.x/b-c.x;a.y=a.y/b-c.y};
mxConnectionHandler.prototype.snapToPreview=function(a,b){if(!mxEvent.isAltDown(a.getEvent())&&null!=this.previous){var c=this.graph.gridSize*this.graph.view.scale/2,d=null!=this.sourceConstraint?this.first:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());Math.abs(d.x-a.getGraphX())<c&&(b.x=d.x);Math.abs(d.y-a.getGraphY())<c&&(b.y=d.y)}};
mxConnectionHandler.prototype.mouseMove=function(a,b){if(b.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{this.isEnabled()||null==this.currentState||(this.destroyIcons(),this.currentState=null);var c=this.graph.getView(),d=c.scale,e=c.translate,c=new mxPoint(b.getGraphX(),b.getGraphY());this.error=null;this.graph.isGridEnabledEvent(b.getEvent())&&(c=new mxPoint((this.graph.snap(c.x/d-e.x)+e.x)*d,(this.graph.snap(c.y/d-e.y)+e.y)*d));
this.snapToPreview(b,c);this.currentPoint=c;(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&(null!=this.shape||null==this.first||Math.abs(b.getGraphX()-this.first.x)>this.graph.tolerance||Math.abs(b.getGraphY()-this.first.y)>this.graph.tolerance)&&this.updateCurrentState(b,c);if(null!=this.first){var f=null,d=c;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(f=this.constraintHandler.currentConstraint,
@@ -1584,8 +1586,8 @@ if(d.isVertex(a)&&!e.relative||d.isEdge(a))for(c=d.getChildCount(a),e=0;e<c;e++)
mxVertexHandler.prototype.reset=function(){null!=this.sizers&&null!=this.index&&null!=this.sizers[this.index]&&"none"==this.sizers[this.index].node.style.display&&(this.sizers[this.index].node.style.display="");this.index=this.inTolerance=this.currentAlpha=null;null!=this.preview&&(this.preview.destroy(),this.preview=null);if(this.livePreviewActive&&null!=this.sizers){for(var a=0;a<this.sizers.length;a++)null!=this.sizers[a]&&(this.sizers[a].node.style.display="");null!=this.state.control&&null!=
this.state.control.node&&(this.state.control.node.style.visibility="")}if(null!=this.customHandles)for(a=0;a<this.customHandles.length;a++)this.customHandles[a].active?(this.customHandles[a].active=!1,this.customHandles[a].reset()):this.customHandles[a].setVisible(!0);null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,
this.selectionBounds.height),this.drawPreview());this.removeHint();this.redrawHandles();this.livePreviewActive=this.unscaledBounds=this.edgeHandlers=null};
-mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){e=this.graph.model.getGeometry(a);null!=e&&(d==mxEvent.LABEL_HANDLE?(c=this.graph.view.scale,b=Math.round((this.labelShape.bounds.getCenterX()-this.startX)/c),c=Math.round((this.labelShape.bounds.getCenterY()-this.startY)/c),e=e.clone(),null==e.offset?e.offset=new mxPoint(b,c):(e.offset.x+=b,e.offset.y+=c),this.graph.model.setGeometry(a,e)):null!=this.unscaledBounds&&(c=this.graph.view.scale,0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(a,
-Math.round(this.childOffsetX/c),Math.round(this.childOffsetY/c)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
+mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){b=this.graph.model.getGeometry(a);null!=b&&(d==mxEvent.LABEL_HANDLE?(d=-mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(d),c=Math.sin(d),d=this.graph.view.scale,g=mxUtils.getRotatedPoint(new mxPoint(Math.round((this.labelShape.bounds.getCenterX()-this.startX)/d),Math.round((this.labelShape.bounds.getCenterY()-this.startY)/d)),g,c),b=b.clone(),null==b.offset?b.offset=g:(b.offset.x+=g.x,b.offset.y+=g.y),this.graph.model.setGeometry(a,
+b)):null!=this.unscaledBounds&&(d=this.graph.view.scale,0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(a,Math.round(this.childOffsetX/d),Math.round(this.childOffsetY/d)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){e=null!=e?e&&this.graph.gridEnabled:this.graph.gridEnabled;if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var m=a.width,n=a.height,p=a.x-g.x*f,q=p+m;a=a.y-g.y*f;var r=a+n,t=p+m/2,u=a+n/2;4<d?(r+=c,r=e?this.graph.snap(r/f)*f:Math.round(r/f)*f):3>d&&(a+=c,a=e?this.graph.snap(a/f)*f:Math.round(a/f)*f);if(0==d||
3==d||5==d)p+=b,p=e?this.graph.snap(p/f)*f:Math.round(p/f)*f;else if(2==d||4==d||7==d)q+=b,q=e?this.graph.snap(q/f)*f:Math.round(q/f)*f;e=q-p;c=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=q-e,a=r-c)));l&&(e+=e-m,c+=c-n,p+=t-(p+e/2),a+=u-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*
f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));return d};mxVertexHandler.prototype.redraw=function(a){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.drawPreview();a||this.redrawHandles()};
@@ -1594,10 +1596,10 @@ mxVertexHandler.prototype.redrawHandles=function(){var a=this.tolerance;this.ver
this.verticalOffset/2,b.height+=this.verticalOffset;8<=this.sizers.length&&(b.width<2*this.sizers[0].bounds.width+2*a||b.height<2*this.sizers[0].bounds.height+2*a?(this.sizers[0].node.style.display="none",this.sizers[2].node.style.display="none",this.sizers[5].node.style.display="none",this.sizers[7].node.style.display="none"):(this.sizers[0].node.style.display="",this.sizers[2].node.style.display="",this.sizers[5].node.style.display="",this.sizers[7].node.style.display=""))}a=b.x+b.width;c=b.y+b.height;
if(this.singleSizer)this.moveSizerTo(this.sizers[0],a,c);else{var d=b.x+b.width/2,e=b.y+b.height/2;if(8<=this.sizers.length){var f="nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),m=new mxPoint(b.getCenterX(),b.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),k,l,m);this.moveSizerTo(this.sizers[0],n.x,n.y);this.sizers[0].setCursor(f[mxUtils.mod(0+
g,f.length)]);n.x=d;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[1],n.x,n.y);this.sizers[1].setCursor(f[mxUtils.mod(1+g,f.length)]);n.x=a;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[2],n.x,n.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);n.x=b.x;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[3],n.x,n.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);n.x=a;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[4],
-n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);this.moveSizerTo(this.sizers[8],
-d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),
-k,l,m),null!=this.rotationShape.node&&(this.moveSizerTo(this.rotationShape,n.x,n.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()?"hidden":""));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)a=this.customHandles[b].shape.node.style.display,
-this.customHandles[b].redraw(),this.customHandles[b].shape.node.style.display=a,this.customHandles[b].shape.node.style.visibility=this.graph.isEditing()?"hidden":"";this.updateParentHighlight()};mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)};
+n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);n.x=d+
+this.state.absoluteOffset.x;n.y=e+this.state.absoluteOffset.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[8],n.x,n.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),
+m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),k,l,m),null!=this.rotationShape.node&&(this.moveSizerTo(this.rotationShape,n.x,n.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()?"hidden":""));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();
+if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)a=this.customHandles[b].shape.node.style.display,this.customHandles[b].redraw(),this.customHandles[b].shape.node.style.display=a,this.customHandles[b].shape.node.style.visibility=this.graph.isEditing()?"hidden":"";this.updateParentHighlight()};mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)};
mxVertexHandler.prototype.updateParentHighlight=function(){if(null!=this.selectionBorder)if(null!=this.parentHighlight){var a=this.graph.model.getParent(this.state.cell);if(this.graph.model.isVertex(a)){var a=this.graph.view.getState(a),b=this.parentHighlight.bounds;null==a||b.x==a.x&&b.y==a.y&&b.width==a.width&&b.height==a.height||(this.parentHighlight.bounds=a,this.parentHighlight.redraw())}else this.parentHighlight.destroy(),this.parentHighlight=null}else this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))))};
mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw());this.selectionBorder.bounds=this.bounds;this.selectionBorder.redraw();null!=this.parentHighlight&&this.parentHighlight.redraw()};
@@ -1609,9 +1611,10 @@ mxEdgeHandler.prototype.init=function(){this.graph=this.state.view.graph;this.ma
mxEvent.redirectMouseEvents(this.shape.node,this.graph,this.state);this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container;if(!this.preferHtml){var a=this.state.getVisibleTerminalState(!0);null!=a&&(this.preferHtml=null!=a.text&&a.text.node.parentNode==this.graph.container);this.preferHtml||(a=this.state.getVisibleTerminalState(!1),null!=a&&(this.preferHtml=null!=a.text&&a.text.node.parentNode==this.graph.container))}this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))));if(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||
0>=mxGraphHandler.prototype.maxCells)this.bends=this.createBends(),this.isVirtualBendsEnabled()&&(this.virtualBends=this.createVirtualBends());this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y);this.labelShape=this.createLabelHandleShape();this.initBend(this.labelShape);this.labelShape.setCursor(mxConstants.CURSOR_LABEL_HANDLE);this.customHandles=this.createCustomHandles();this.redraw()};mxEdgeHandler.prototype.createCustomHandles=function(){return null};
-mxEdgeHandler.prototype.isVirtualBendsEnabled=function(a){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)};mxEdgeHandler.prototype.isAddPointEvent=function(a){return mxEvent.isShiftDown(a)};mxEdgeHandler.prototype.isRemovePointEvent=function(a){return mxEvent.isShiftDown(a)};
-mxEdgeHandler.prototype.getSelectionPoints=function(a){return a.absolutePoints};mxEdgeHandler.prototype.createParentHighlightShape=function(a){a=new mxRectangleShape(a,null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};mxEdgeHandler.prototype.createSelectionShape=function(a){a=new this.state.shape.constructor;a.outline=!0;a.apply(this.state);a.isDashed=this.isSelectionDashed();a.stroke=this.getSelectionColor();a.isShadow=!1;return a};
-mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH};mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED};mxEdgeHandler.prototype.isConnectableCell=function(a){return!0};mxEdgeHandler.prototype.getCellAt=function(a,b){return this.outlineConnect?null:this.graph.getCellAt(a,b)};
+mxEdgeHandler.prototype.isVirtualBendsEnabled=function(a){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)};mxEdgeHandler.prototype.isCellEnabled=function(a){return!0};mxEdgeHandler.prototype.isAddPointEvent=function(a){return mxEvent.isShiftDown(a)};
+mxEdgeHandler.prototype.isRemovePointEvent=function(a){return mxEvent.isShiftDown(a)};mxEdgeHandler.prototype.getSelectionPoints=function(a){return a.absolutePoints};mxEdgeHandler.prototype.createParentHighlightShape=function(a){a=new mxRectangleShape(a,null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};
+mxEdgeHandler.prototype.createSelectionShape=function(a){a=new this.state.shape.constructor;a.outline=!0;a.apply(this.state);a.isDashed=this.isSelectionDashed();a.stroke=this.getSelectionColor();a.isShadow=!1;return a};mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH};mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED};
+mxEdgeHandler.prototype.isConnectableCell=function(a){return!0};mxEdgeHandler.prototype.getCellAt=function(a,b){return this.outlineConnect?null:this.graph.getCellAt(a,b)};
mxEdgeHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph),b=this;a.getCell=function(a){var c=mxCellMarker.prototype.getCell.apply(this,arguments);c!=b.state.cell&&null!=c||null==b.currentPoint||(c=b.graph.getCellAt(b.currentPoint.x,b.currentPoint.y));if(null!=c&&!this.graph.isCellConnectable(c)){var e=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(e)&&this.graph.isCellConnectable(e)&&(c=e)}e=b.graph.getModel();if(this.graph.isSwimlane(c)&&null!=b.currentPoint&&
this.graph.hitsSwimlaneContent(c,b.currentPoint.x,b.currentPoint.y)||!b.isConnectableCell(c)||c==b.state.cell||null!=c&&!b.graph.connectableEdges&&e.isEdge(c)||e.isAncestor(b.state.cell,c))c=null;this.graph.isCellConnectable(c)||(c=null);return c};a.isValidState=function(a){var c=b.graph.getModel(),c=b.graph.view.getTerminalPort(a,b.graph.view.getState(c.getTerminal(b.state.cell,!b.isSource)),!b.isSource),c=null!=c?c.cell:null;b.error=b.validateConnection(b.isSource?a.cell:c,b.isSource?c:a.cell);
return null==b.error};return a};mxEdgeHandler.prototype.validateConnection=function(a,b){return this.graph.getEdgeValidationError(this.state.cell,a,b)};
@@ -1633,8 +1636,8 @@ mxEdgeHandler.prototype.isSnapToTerminalsEvent=function(a){return this.snapToTer
mxEdgeHandler.prototype.getPointForEvent=function(a){var b=this.graph.getView(),c=b.scale,d=new mxPoint(this.roundLength(a.getGraphX()/c)*c,this.roundLength(a.getGraphY()/c)*c),e=this.getSnapToTerminalTolerance(),f=!1,g=!1;if(0<e&&this.isSnapToTerminalsEvent(a)){var k=function(a){null!=a&&l.call(this,new mxPoint(b.getRoutingCenterX(a),b.getRoutingCenterY(a)))},l=function(a){if(null!=a){var b=a.x;Math.abs(d.x-b)<e&&(d.x=b,f=!0);a=a.y;Math.abs(d.y-a)<e&&(d.y=a,g=!0)}};k.call(this,this.state.getVisibleTerminalState(!0));
k.call(this,this.state.getVisibleTerminalState(!1));if(null!=this.state.absolutePoints)for(k=0;k<this.state.absolutePoints.length;k++)l.call(this,this.state.absolutePoints[k])}this.graph.isGridEnabledEvent(a.getEvent())&&(a=b.translate,f||(d.x=(this.graph.snap(d.x/c-a.x)+a.x)*c),g||(d.y=(this.graph.snap(d.y/c-a.y)+a.y)*c));return d};
mxEdgeHandler.prototype.getPreviewTerminalState=function(a){this.constraintHandler.update(a,this.isSource,!0,a.isSource(this.marker.highlight.shape)?null:this.currentPoint);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)return null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
-this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),a=this.graph.getModel(),a=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(a.getTerminal(this.state.cell,!this.isSource)),!this.isSource),a=null!=a?a.cell:null,this.error=this.validateConnection(this.isSource?this.constraintHandler.currentFocus.cell:a,this.isSource?a:this.constraintHandler.currentFocus.cell),a=null,null==this.error?a=this.constraintHandler.currentFocus:
-this.constraintHandler.reset(),a;if(this.graph.isIgnoreTerminalEvent(a.getEvent()))return this.marker.reset(),null;this.marker.process(a);a=this.marker.getValidState();null!=a&&this.graph.isCellLocked(a.cell)&&this.marker.reset();return this.marker.getValidState()};
+this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),a=this.graph.getModel(),a=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(a.getTerminal(this.state.cell,!this.isSource)),!this.isSource),a=null!=a?a.cell:null,this.error=this.validateConnection(this.isSource?this.constraintHandler.currentFocus.cell:a,this.isSource?a:this.constraintHandler.currentFocus.cell),a=null,null==this.error&&(a=this.constraintHandler.currentFocus),
+(null!=this.error||null!=a&&!this.isCellEnabled(a.cell))&&this.constraintHandler.reset(),a;if(this.graph.isIgnoreTerminalEvent(a.getEvent()))return this.marker.reset(),null;this.marker.process(a);a=this.marker.getValidState();null==a||this.isCellEnabled(a.cell)||(this.constraintHandler.reset(),this.marker.reset());return this.marker.getValidState()};
mxEdgeHandler.prototype.getPreviewPoints=function(a,b){var c=this.graph.getCellGeometry(this.state.cell),c=null!=c.points?c.points.slice():null,d=new mxPoint(a.x,a.y),e=null;if(this.isSource||this.isTarget)this.graph.resetEdgesOnConnect&&(c=null);else if(this.convertPoint(d,!1),null==c)c=[d];else{this.index<=mxEvent.VIRTUAL_HANDLE&&c.splice(mxEvent.VIRTUAL_HANDLE-this.index,0,d);if(!this.isSource&&!this.isTarget){for(var f=0;f<this.bends.length;f++)if(f!=this.index){var g=this.bends[f];null!=g&&mxUtils.contains(g.bounds,
a.x,a.y)&&(this.index<=mxEvent.VIRTUAL_HANDLE?c.splice(mxEvent.VIRTUAL_HANDLE-this.index,1):c.splice(this.index-1,1),e=c)}if(null==e&&this.straightRemoveEnabled&&(null==b||!mxEvent.isAltDown(b.getEvent()))){f=this.graph.tolerance*this.graph.tolerance;g=this.state.absolutePoints.slice();g[this.index]=a;var k=this.state.getVisibleTerminalState(!0);if(null!=k){var l=this.graph.getConnectionConstraint(this.state,k,!0);if(null==l||null==this.graph.getConnectionPoint(k,l))g[0]=new mxPoint(k.view.getRoutingCenterX(k),
k.view.getRoutingCenterY(k))}k=this.state.getVisibleTerminalState(!1);null!=k&&(l=this.graph.getConnectionConstraint(this.state,k,!1),null==l||null==this.graph.getConnectionPoint(k,l))&&(g[g.length-1]=new mxPoint(k.view.getRoutingCenterX(k),k.view.getRoutingCenterY(k)));l=this.index;0<l&&l<g.length-1&&mxUtils.ptSegDistSq(g[l-1].x,g[l-1].y,g[l+1].x,g[l+1].y,a.x,a.y)<f&&(c.splice(l-1,1),e=c)}}null==e&&this.index>mxEvent.VIRTUAL_HANDLE&&(c[this.index-1]=d)}return null!=e?e:c};
@@ -1647,7 +1650,7 @@ m.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.ST
this.graph.allowDanglingEdges?null:""));a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)};
mxEdgeHandler.prototype.mouseMove=function(a,b){if(null!=this.index&&null!=this.marker){this.currentPoint=this.getPointForEvent(b);this.error=null;!this.graph.isIgnoreTerminalEvent(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())&&null!=this.snapPoint&&(Math.abs(this.snapPoint.x-this.currentPoint.x)<Math.abs(this.snapPoint.y-this.currentPoint.y)?this.currentPoint.x=this.snapPoint.x:this.currentPoint.y=this.snapPoint.y);if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE)null!=
this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(b);else if(this.isLabel)this.label.x=this.currentPoint.x,this.label.y=this.currentPoint.y;else{this.points=this.getPreviewPoints(this.currentPoint,b);var c=this.isSource||this.isTarget?this.getPreviewTerminalState(b):null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint)this.currentPoint=this.constraintHandler.currentPoint.clone();
-else if(this.outlineConnect){var d=this.isSource||this.isTarget?this.isOutlineConnectEvent(b):!1;d?c=this.marker.highlight.state:null!=c&&c!=b.getState()&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint(),c=null)}null!=c&&this.graph.isCellLocked(c.cell)&&(c=null,this.marker.reset());var e=this.clonePreviewState(this.currentPoint,null!=c?c.cell:null);this.updatePreviewState(e,this.currentPoint,c,b,d);this.setPreviewColor(null==this.error?
+else if(this.outlineConnect){var d=this.isSource||this.isTarget?this.isOutlineConnectEvent(b):!1;d?c=this.marker.highlight.state:null!=c&&c!=b.getState()&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint(),c=null)}null==c||this.isCellEnabled(c.cell)||(c=null,this.marker.reset());var e=this.clonePreviewState(this.currentPoint,null!=c?c.cell:null);this.updatePreviewState(e,this.currentPoint,c,b,d);this.setPreviewColor(null==this.error?
this.marker.validColor:this.marker.invalidColor);this.abspoints=e.absolutePoints;this.active=!0}this.updateHint(b,this.currentPoint);this.drawPreview();mxEvent.consume(b.getEvent());b.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(b)&&b.consume(!1)};
mxEdgeHandler.prototype.mouseUp=function(a,b){if(null!=this.index&&null!=this.marker){var c=this.state.cell,d=this.index;this.index=null;if(b.getX()!=this.startX||b.getY()!=this.startY){var e=!this.graph.isIgnoreTerminalEvent(b.getEvent())&&this.graph.isCloneEvent(b.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable();if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(d<=mxEvent.CUSTOM_HANDLE&&d>mxEvent.VIRTUAL_HANDLE){if(null!=this.customHandles){var f=
this.graph.getModel();f.beginUpdate();try{this.customHandles[mxEvent.CUSTOM_HANDLE-d].execute()}finally{f.endUpdate()}}}else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget)if(d=null,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(d=this.constraintHandler.currentFocus.cell),null==d&&this.marker.hasValidState()&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&"transparent"!=this.marker.highlight.shape.stroke&&
diff --git a/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java b/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
index 1a7f3469..cc8f0dbd 100644
--- a/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
+++ b/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
@@ -712,7 +712,6 @@ public class GliffyDiagramConverter
cell.setValue(fragmentText);
gliffyObject.children.remove(0);
}
- setFontSizeBasedOnGlobal(style);
}
else if (gliffyObject.isLine())
{
@@ -1033,15 +1032,6 @@ public class GliffyDiagramConverter
return cell;
}
- private void setFontSizeBasedOnGlobal(StringBuilder style)
- {
- if (gliffyDiagram.stage.getTextStyles() != null && gliffyDiagram.stage.getTextStyles().getGlobal() != null
- && gliffyDiagram.stage.getTextStyles().getGlobal().getSize() != null)
- {
- style.append("fontSize=" + gliffyDiagram.stage.getTextStyles().getGlobal().getSize() + ";");
- }
- }
-
/**
* Rotate objects inside Group
*
diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest
index fca82adf..d99b672d 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!
-# 01/16/2020 02:13 PM
+# 01/25/2020 09:34 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 7727f8e7..6a54877e 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -131,7 +131,7 @@ d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports&&"string"!=typeof exports.nodeName?module.exports=t():e.Croppie=t()}("undefined"!=typeof self?self:this,function(){"function"!=typeof Promise&&function(e){function n(e,t){return function(){e.apply(t,arguments)}}function r(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],u(e,n(i,this),n(o,this))}function a(n){var i=this;return null===this._state?void this._deferreds.push(n):void c(function(){var e=i._state?n.onFulfilled:n.onRejected;if(null!==e){var t;try{t=e(i._value)}catch(e){return void n.reject(e)}n.resolve(t)}else(i._state?n.resolve:n.reject)(i._value)})}function i(e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void u(n(t,e),n(i,this),n(o,this))}this._state=!0,this._value=e,s.call(this)}catch(e){o.call(this,e)}}function o(e){this._state=!1,this._value=e,s.call(this)}function s(){for(var e=0,t=this._deferreds.length;e<t;e++)a.call(this,this._deferreds[e]);this._deferreds=null}function l(e,t,n,i){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=i}function u(e,t,n){var i=!1;try{e(function(e){i||(i=!0,t(e))},function(e){i||(i=!0,n(e))})}catch(e){if(i)return;i=!0,n(e)}}var t=setTimeout,c="function"==typeof setImmediate&&setImmediate||function(e){t(e,1)},h=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};r.prototype.catch=function(e){return this.then(null,e)},r.prototype.then=function(n,i){var o=this;return new r(function(e,t){a.call(o,new l(n,i,e,t))})},r.all=function(){var s=Array.prototype.slice.call(1===arguments.length&&h(arguments[0])?arguments[0]:arguments);return new r(function(i,o){function r(t,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void n.call(e,function(e){r(t,e)},o)}s[t]=e,0==--a&&i(s)}catch(e){o(e)}}if(0===s.length)return i([]);for(var a=s.length,e=0;e<s.length;e++)r(e,s[e])})},r.resolve=function(t){return t&&"object"==typeof t&&t.constructor===r?t:new r(function(e){e(t)})},r.reject=function(n){return new r(function(e,t){t(n)})},r.race=function(o){return new r(function(e,t){for(var n=0,i=o.length;n<i;n++)o[n].then(e,t)})},r._setImmediateFn=function(e){c=e},"undefined"!=typeof module&&module.exports?module.exports=r:e.Promise||(e.Promise=r)}(this),"function"!=typeof window.CustomEvent&&function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}(),HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,n){for(var i=atob(this.toDataURL(t,n).split(",")[1]),o=i.length,r=new Uint8Array(o),a=0;a<o;a++)r[a]=i.charCodeAt(a);e(new Blob([r],{type:t||"image/png"}))}});var v,g,w,i=["Webkit","Moz","ms"],o=document.createElement("div").style,l=[1,8,3,6],u=[2,7,4,5];function e(e){if(e in o)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=i.length;n--;)if((e=i[n]+t)in o)return e}function p(e,t){for(var n in e=e||{},t)t[n]&&t[n].constructor&&t[n].constructor===Object?(e[n]=e[n]||{},p(e[n],t[n])):e[n]=t[n];return e}function d(e){return p({},e)}function y(e){if("createEvent"in document){var t=document.createEvent("HTMLEvents");t.initEvent("change",!1,!0),e.dispatchEvent(t)}else e.fireEvent("onchange")}function b(e,t,n){if("string"==typeof t){var i=t;(t={})[i]=n}for(var o in t)e.style[o]=t[o]}function x(e,t){e.classList?e.classList.add(t):e.className+=" "+t}function c(e,t){for(var n in t)e.setAttribute(n,t[n])}function C(e){return parseInt(e,10)}function m(e,t){var n=e.naturalWidth,i=e.naturalHeight,o=t||f(e);if(o&&5<=o){var r=n;n=i,i=r}return{width:n,height:i}}g=e("transform"),v=e("transformOrigin"),w=e("userSelect");var t={translate3d:{suffix:", 0px"},translate:{suffix:""}},E=function(e,t,n){this.x=parseFloat(e),this.y=parseFloat(t),this.scale=parseFloat(n)};E.parse=function(e){return e.style?E.parse(e.style[g]):-1<e.indexOf("matrix")||-1<e.indexOf("none")?E.fromMatrix(e):E.fromString(e)},E.fromMatrix=function(e){var t=e.substring(7).split(",");return t.length&&"none"!==e||(t=[1,0,0,1,0,0]),new E(C(t[4]),C(t[5]),parseFloat(t[0]))},E.fromString=function(e){var t=e.split(") "),n=t[0].substring(T.globals.translate.length+1).split(","),i=1<t.length?t[1].substring(6):1,o=1<n.length?n[0]:0,r=1<n.length?n[1]:0;return new E(o,r,i)},E.prototype.toString=function(){var e=t[T.globals.translate].suffix||"";return T.globals.translate+"("+this.x+"px, "+this.y+"px"+e+") scale("+this.scale+")"};var L=function(e){if(!e||!e.style[v])return this.x=0,void(this.y=0);var t=e.style[v].split(" ");this.x=parseFloat(t[0]),this.y=parseFloat(t[1])};function f(e){return e.exifdata&&e.exifdata.Orientation?C(e.exifdata.Orientation):1}function _(e,t,n){var i=t.width,o=t.height,r=e.getContext("2d");switch(e.width=t.width,e.height=t.height,r.save(),n){case 2:r.translate(i,0),r.scale(-1,1);break;case 3:r.translate(i,o),r.rotate(180*Math.PI/180);break;case 4:r.translate(0,o),r.scale(1,-1);break;case 5:e.width=o,e.height=i,r.rotate(90*Math.PI/180),r.scale(1,-1);break;case 6:e.width=o,e.height=i,r.rotate(90*Math.PI/180),r.translate(0,-o);break;case 7:e.width=o,e.height=i,r.rotate(-90*Math.PI/180),r.translate(-i,o),r.scale(1,-1);break;case 8:e.width=o,e.height=i,r.translate(0,i),r.rotate(-90*Math.PI/180)}r.drawImage(t,0,0,i,o),r.restore()}function r(){var e,t,n,i,o,r,a=this,s=a.options.viewport.type?"cr-vp-"+a.options.viewport.type:null;a.options.useCanvas=a.options.enableOrientation||R.call(a),a.data={},a.elements={},e=a.elements.boundary=document.createElement("div"),n=a.elements.viewport=document.createElement("div"),t=a.elements.img=document.createElement("img"),i=a.elements.overlay=document.createElement("div"),a.options.useCanvas?(a.elements.canvas=document.createElement("canvas"),a.elements.preview=a.elements.canvas):a.elements.preview=t,x(e,"cr-boundary"),e.setAttribute("aria-dropeffect","none"),o=a.options.boundary.width,r=a.options.boundary.height,b(e,{width:o+(isNaN(o)?"":"px"),height:r+(isNaN(r)?"":"px")}),x(n,"cr-viewport"),s&&x(n,s),b(n,{width:a.options.viewport.width+"px",height:a.options.viewport.height+"px"}),n.setAttribute("tabindex",0),x(a.elements.preview,"cr-image"),c(a.elements.preview,{alt:"preview","aria-grabbed":"false"}),x(i,"cr-overlay"),a.element.appendChild(e),e.appendChild(a.elements.preview),e.appendChild(n),e.appendChild(i),x(a.element,"croppie-container"),a.options.customClass&&x(a.element,a.options.customClass),function(){var h,p,d,l,m,f=this,n=!1;function v(e,t){var n=f.elements.preview.getBoundingClientRect(),i=m.y+t,o=m.x+e;f.options.enforceBoundary?(l.top>n.top+t&&l.bottom<n.bottom+t&&(m.y=i),l.left>n.left+e&&l.right<n.right+e&&(m.x=o)):(m.y=i,m.x=o)}function i(e){f.elements.preview.setAttribute("aria-grabbed",e),f.elements.boundary.setAttribute("aria-dropeffect",e?"move":"none")}function e(e){if((void 0===e.button||0===e.button)&&(e.preventDefault(),!n)){if(n=!0,h=e.pageX,p=e.pageY,e.touches){var t=e.touches[0];h=t.pageX,p=t.pageY}i(n),m=E.parse(f.elements.preview),window.addEventListener("mousemove",o),window.addEventListener("touchmove",o),window.addEventListener("mouseup",r),window.addEventListener("touchend",r),document.body.style[w]="none",l=f.elements.viewport.getBoundingClientRect()}}function o(e){e.preventDefault();var t=e.pageX,n=e.pageY;if(e.touches){var i=e.touches[0];t=i.pageX,n=i.pageY}var o=t-h,r=n-p,a={};if("touchmove"===e.type&&1<e.touches.length){var s=e.touches[0],l=e.touches[1],u=Math.sqrt((s.pageX-l.pageX)*(s.pageX-l.pageX)+(s.pageY-l.pageY)*(s.pageY-l.pageY));d||(d=u/f._currentZoom);var c=u/d;return B.call(f,c),void y(f.elements.zoomer)}v(o,r),a[g]=m.toString(),b(f.elements.preview,a),z.call(f),p=n,h=t}function r(){i(n=!1),window.removeEventListener("mousemove",o),window.removeEventListener("touchmove",o),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),document.body.style[w]="",Z.call(f),F.call(f),d=0}f.elements.overlay.addEventListener("mousedown",e),f.elements.viewport.addEventListener("keydown",function(e){if(!e.shiftKey||38!==e.keyCode&&40!==e.keyCode){if(f.options.enableKeyMovement&&37<=e.keyCode&&e.keyCode<=40){e.preventDefault();var t=s(e.keyCode);m=E.parse(f.elements.preview),document.body.style[w]="none",l=f.elements.viewport.getBoundingClientRect(),o=(i=t)[0],r=i[1],a={},v(o,r),a[g]=m.toString(),b(f.elements.preview,a),z.call(f),document.body.style[w]="",Z.call(f),F.call(f),d=0}}else{var n;n=38===e.keyCode?parseFloat(f.elements.zoomer.value)+parseFloat(f.elements.zoomer.step):parseFloat(f.elements.zoomer.value)-parseFloat(f.elements.zoomer.step),f.setZoom(n)}var i,o,r,a;function s(e){switch(e){case 37:return[1,0];case 38:return[0,1];case 39:return[-1,0];case 40:return[0,-1]}}}),f.elements.overlay.addEventListener("touchstart",e)}.call(this),a.options.enableZoom&&function(){var i=this,e=i.elements.zoomerWrap=document.createElement("div"),t=i.elements.zoomer=document.createElement("input");function o(){(function(e){var t=this,n=e?e.transform:E.parse(t.elements.preview),i=e?e.viewportRect:t.elements.viewport.getBoundingClientRect(),o=e?e.origin:new L(t.elements.preview);function r(){var e={};e[g]=n.toString(),e[v]=o.toString(),b(t.elements.preview,e)}if(t._currentZoom=e?e.value:t._currentZoom,n.scale=t._currentZoom,t.elements.zoomer.setAttribute("aria-valuenow",t._currentZoom),r(),t.options.enforceBoundary){var a=function(e){var t=this._currentZoom,n=e.width,i=e.height,o=this.elements.boundary.clientWidth/2,r=this.elements.boundary.clientHeight/2,a=this.elements.preview.getBoundingClientRect(),s=a.width,l=a.height,u=n/2,c=i/2,h=-1*(u/t-o),p=-1*(c/t-r),d=1/t*u,m=1/t*c;return{translate:{maxX:h,minX:h-(s*(1/t)-n*(1/t)),maxY:p,minY:p-(l*(1/t)-i*(1/t))},origin:{maxX:s*(1/t)-d,minX:d,maxY:l*(1/t)-m,minY:m}}}.call(t,i),s=a.translate,l=a.origin;n.x>=s.maxX&&(o.x=l.minX,n.x=s.maxX),n.x<=s.minX&&(o.x=l.maxX,n.x=s.minX),n.y>=s.maxY&&(o.y=l.minY,n.y=s.maxY),n.y<=s.minY&&(o.y=l.maxY,n.y=s.minY)}r(),I.call(t),F.call(t)}).call(i,{value:parseFloat(t.value),origin:new L(i.elements.preview),viewportRect:i.elements.viewport.getBoundingClientRect(),transform:E.parse(i.elements.preview)})}function n(e){var t,n;if("ctrl"===i.options.mouseWheelZoom&&!0!==e.ctrlKey)return 0;t=e.wheelDelta?e.wheelDelta/1200:e.deltaY?e.deltaY/1060:e.detail?e.detail/-60:0,n=i._currentZoom+t*i._currentZoom,e.preventDefault(),B.call(i,n),o.call(i)}x(e,"cr-slider-wrap"),x(t,"cr-slider"),t.type="range",t.step="0.0001",t.value="1",t.style.display=i.options.showZoomer?"":"none",t.setAttribute("aria-label","zoom"),i.element.appendChild(e),e.appendChild(t),i._currentZoom=1,i.elements.zoomer.addEventListener("input",o),i.elements.zoomer.addEventListener("change",o),i.options.mouseWheelZoom&&(i.elements.boundary.addEventListener("mousewheel",n),i.elements.boundary.addEventListener("DOMMouseScroll",n))}.call(a),a.options.enableResize&&function(){var l,u,c,h,p,e,t,d=this,m=document.createElement("div"),i=!1,f=50;x(m,"cr-resizer"),b(m,{width:this.options.viewport.width+"px",height:this.options.viewport.height+"px"}),this.options.resizeControls.height&&(x(e=document.createElement("div"),"cr-resizer-vertical"),m.appendChild(e));this.options.resizeControls.width&&(x(t=document.createElement("div"),"cr-resizer-horisontal"),m.appendChild(t));function n(e){if((void 0===e.button||0===e.button)&&(e.preventDefault(),!i)){var t=d.elements.overlay.getBoundingClientRect();if(i=!0,u=e.pageX,c=e.pageY,l=-1!==e.currentTarget.className.indexOf("vertical")?"v":"h",h=t.width,p=t.height,e.touches){var n=e.touches[0];u=n.pageX,c=n.pageY}window.addEventListener("mousemove",o),window.addEventListener("touchmove",o),window.addEventListener("mouseup",r),window.addEventListener("touchend",r),document.body.style[w]="none"}}function o(e){var t=e.pageX,n=e.pageY;if(e.preventDefault(),e.touches){var i=e.touches[0];t=i.pageX,n=i.pageY}var o=t-u,r=n-c,a=d.options.viewport.height+r,s=d.options.viewport.width+o;"v"===l&&f<=a&&a<=p?(b(m,{height:a+"px"}),d.options.boundary.height+=r,b(d.elements.boundary,{height:d.options.boundary.height+"px"}),d.options.viewport.height+=r,b(d.elements.viewport,{height:d.options.viewport.height+"px"})):"h"===l&&f<=s&&s<=h&&(b(m,{width:s+"px"}),d.options.boundary.width+=o,b(d.elements.boundary,{width:d.options.boundary.width+"px"}),d.options.viewport.width+=o,b(d.elements.viewport,{width:d.options.viewport.width+"px"})),z.call(d),W.call(d),Z.call(d),F.call(d),c=n,u=t}function r(){i=!1,window.removeEventListener("mousemove",o),window.removeEventListener("touchmove",o),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),document.body.style[w]=""}e&&(e.addEventListener("mousedown",n),e.addEventListener("touchstart",n));t&&(t.addEventListener("mousedown",n),t.addEventListener("touchstart",n));this.elements.boundary.appendChild(m)}.call(a)}function R(){return this.options.enableExif&&window.EXIF}function B(e){if(this.options.enableZoom){var t=this.elements.zoomer,n=A(e,4);t.value=Math.max(parseFloat(t.min),Math.min(parseFloat(t.max),n)).toString()}}function Z(e){var t=this,n=t._currentZoom,i=t.elements.preview.getBoundingClientRect(),o=t.elements.viewport.getBoundingClientRect(),r=E.parse(t.elements.preview.style[g]),a=new L(t.elements.preview),s=o.top-i.top+o.height/2,l=o.left-i.left+o.width/2,u={},c={};if(e){var h=a.x,p=a.y,d=r.x,m=r.y;u.y=h,u.x=p,r.y=d,r.x=m}else u.y=s/n,u.x=l/n,c.y=(u.y-a.y)*(1-n),c.x=(u.x-a.x)*(1-n),r.x-=c.x,r.y-=c.y;var f={};f[v]=u.x+"px "+u.y+"px",f[g]=r.toString(),b(t.elements.preview,f)}function z(){if(this.elements){var e=this.elements.boundary.getBoundingClientRect(),t=this.elements.preview.getBoundingClientRect();b(this.elements.overlay,{width:t.width+"px",height:t.height+"px",top:t.top-e.top+"px",left:t.left-e.left+"px"})}}L.prototype.toString=function(){return this.x+"px "+this.y+"px"};var a,s,h,M,I=(a=z,s=500,function(){var e=this,t=arguments,n=h&&!M;clearTimeout(M),M=setTimeout(function(){M=null,h||a.apply(e,t)},s),n&&a.apply(e,t)});function F(){var e,t=this,n=t.get();X.call(t)&&(t.options.update.call(t,n),t.$&&"undefined"==typeof Prototype?t.$(t.element).trigger("update.croppie",n):(window.CustomEvent?e=new CustomEvent("update",{detail:n}):(e=document.createEvent("CustomEvent")).initCustomEvent("update",!0,!0,n),t.element.dispatchEvent(e)))}function X(){return 0<this.elements.preview.offsetHeight&&0<this.elements.preview.offsetWidth}function Y(){var e,t=this,n={},i=t.elements.preview,o=new E(0,0,1),r=new L;X.call(t)&&!t.data.bound&&(t.data.bound=!0,n[g]=o.toString(),n[v]=r.toString(),n.opacity=1,b(i,n),e=t.elements.preview.getBoundingClientRect(),t._originalImageWidth=e.width,t._originalImageHeight=e.height,t.data.orientation=f(t.elements.img),t.options.enableZoom?W.call(t,!0):t._currentZoom=1,o.scale=t._currentZoom,n[g]=o.toString(),b(i,n),t.data.points.length?function(e){if(4!==e.length)throw"Croppie - Invalid number of points supplied: "+e;var t=this,n=e[2]-e[0],i=t.elements.viewport.getBoundingClientRect(),o=t.elements.boundary.getBoundingClientRect(),r={left:i.left-o.left,top:i.top-o.top},a=i.width/n,s=e[1],l=e[0],u=-1*e[1]+r.top,c=-1*e[0]+r.left,h={};h[v]=l+"px "+s+"px",h[g]=new E(c,u,a).toString(),b(t.elements.preview,h),B.call(t,a),t._currentZoom=a}.call(t,t.data.points):function(){var e=this,t=e.elements.preview.getBoundingClientRect(),n=e.elements.viewport.getBoundingClientRect(),i=e.elements.boundary.getBoundingClientRect(),o=n.left-i.left,r=n.top-i.top,a=o-(t.width-n.width)/2,s=r-(t.height-n.height)/2,l=new E(a,s,e._currentZoom);b(e.elements.preview,g,l.toString())}.call(t),Z.call(t),z.call(t))}function W(e){var t,n,i,o,r=this,a=Math.max(r.options.minZoom,0)||0,s=r.options.maxZoom||1.5,l=r.elements.zoomer,u=parseFloat(l.value),c=r.elements.boundary.getBoundingClientRect(),h=m(r.elements.img,r.data.orientation),p=r.elements.viewport.getBoundingClientRect();r.options.enforceBoundary&&(i=p.width/h.width,o=p.height/h.height,a=Math.max(i,o)),s<=a&&(s=a+1),l.min=A(a,4),l.max=A(s,4),!e&&(u<l.min||u>l.max)?B.call(r,u<l.min?l.min:l.max):e&&(n=Math.max(c.width/h.width,c.height/h.height),t=null!==r.data.boundZoom?r.data.boundZoom:n,B.call(r,t)),y(l)}function O(e){var t=e.points,n=C(t[0]),i=C(t[1]),o=C(t[2])-n,r=C(t[3])-i,a=e.circle,s=document.createElement("canvas"),l=s.getContext("2d"),u=e.outputWidth||o,c=e.outputHeight||r;s.width=u,s.height=c,e.backgroundColor&&(l.fillStyle=e.backgroundColor,l.fillRect(0,0,u,c));var h=n,p=i,d=o,m=r,f=0,v=0,g=u,w=c;return n<0&&(h=0,f=Math.abs(n)/o*u),d+h>this._originalImageWidth&&(g=(d=this._originalImageWidth-h)/o*u),i<0&&(p=0,v=Math.abs(i)/r*c),m+p>this._originalImageHeight&&(w=(m=this._originalImageHeight-p)/r*c),l.drawImage(this.elements.preview,h,p,d,m,f,v,g,w),a&&(l.fillStyle="#fff",l.globalCompositeOperation="destination-in",l.beginPath(),l.arc(s.width/2,s.height/2,s.width/2,0,2*Math.PI,!0),l.closePath(),l.fill()),s}function k(c,h){var e,i,o,r,p=this,d=[],t=null,n=R.call(p);if("string"==typeof c)e=c,c={};else if(Array.isArray(c))d=c.slice();else{if(void 0===c&&p.data.url)return Y.call(p),F.call(p),null;e=c.url,d=c.points||[],t=void 0===c.zoom?null:c.zoom}return p.data.bound=!1,p.data.url=e||p.data.url,p.data.boundZoom=t,(i=e,o=n,r=new Image,r.style.opacity="0",new Promise(function(e,t){function n(){r.style.opacity="1",setTimeout(function(){e(r)},1)}r.removeAttribute("crossOrigin"),i.match(/^https?:\/\/|^\/\//)&&r.setAttribute("crossOrigin","anonymous"),r.onload=function(){o?EXIF.getData(r,function(){n()}):n()},r.onerror=function(e){r.style.opacity=1,setTimeout(function(){t(e)},1)},r.src=i})).then(function(e){if(function(t){this.elements.img.parentNode&&(Array.prototype.forEach.call(this.elements.img.classList,function(e){t.classList.add(e)}),this.elements.img.parentNode.replaceChild(t,this.elements.img),this.elements.preview=t),this.elements.img=t}.call(p,e),d.length)p.options.relative&&(d=[d[0]*e.naturalWidth/100,d[1]*e.naturalHeight/100,d[2]*e.naturalWidth/100,d[3]*e.naturalHeight/100]);else{var t,n,i=m(e),o=p.elements.viewport.getBoundingClientRect(),r=o.width/o.height;r<i.width/i.height?t=(n=i.height)*r:(t=i.width,n=i.height/r);var a=(i.width-t)/2,s=(i.height-n)/2,l=a+t,u=s+n;p.data.points=[a,s,l,u]}p.data.points=d.map(function(e){return parseFloat(e)}),p.options.useCanvas&&function(e){var t=this.elements.canvas,n=this.elements.img;t.getContext("2d").clearRect(0,0,t.width,t.height),t.width=n.width,t.height=n.height,_(t,n,this.options.enableOrientation&&e||f(n))}.call(p,c.orientation),Y.call(p),F.call(p),h&&h()})}function A(e,t){return parseFloat(e).toFixed(t||0)}function j(){var e=this,t=e.elements.preview.getBoundingClientRect(),n=e.elements.viewport.getBoundingClientRect(),i=n.left-t.left,o=n.top-t.top,r=(n.width-e.elements.viewport.offsetWidth)/2,a=(n.height-e.elements.viewport.offsetHeight)/2,s=i+e.elements.viewport.offsetWidth+r,l=o+e.elements.viewport.offsetHeight+a,u=e._currentZoom;(u===1/0||isNaN(u))&&(u=1);var c=e.options.enforceBoundary?0:Number.NEGATIVE_INFINITY;return i=Math.max(c,i/u),o=Math.max(c,o/u),s=Math.max(c,s/u),l=Math.max(c,l/u),{points:[A(i),A(o),A(s),A(l)],zoom:u,orientation:e.data.orientation}}var H={type:"canvas",format:"png",quality:1},N=["jpeg","webp","png"];function n(e){var t=this,n=j.call(t),i=p(d(H),d(e)),o="string"==typeof e?e:i.type||"base64",r=i.size||"viewport",a=i.format,s=i.quality,l=i.backgroundColor,u="boolean"==typeof i.circle?i.circle:"circle"===t.options.viewport.type,c=t.elements.viewport.getBoundingClientRect(),h=c.width/c.height;return"viewport"===r?(n.outputWidth=c.width,n.outputHeight=c.height):"object"==typeof r&&(r.width&&r.height?(n.outputWidth=r.width,n.outputHeight=r.height):r.width?(n.outputWidth=r.width,n.outputHeight=r.width/h):r.height&&(n.outputWidth=r.height*h,n.outputHeight=r.height)),-1<N.indexOf(a)&&(n.format="image/"+a,n.quality=s),n.circle=u,n.url=t.data.url,n.backgroundColor=l,new Promise(function(e){switch(o.toLowerCase()){case"rawcanvas":e(O.call(t,n));break;case"canvas":case"base64":e(function(e){return O.call(this,e).toDataURL(e.format,e.quality)}.call(t,n));break;case"blob":(function(e){var n=this;return new Promise(function(t){O.call(n,e).toBlob(function(e){t(e)},e.format,e.quality)})}).call(t,n).then(e);break;default:e(function(e){var t=e.points,n=document.createElement("div"),i=document.createElement("img"),o=t[2]-t[0],r=t[3]-t[1];return x(n,"croppie-result"),n.appendChild(i),b(i,{left:-1*t[0]+"px",top:-1*t[1]+"px"}),i.src=e.url,b(n,{width:o+"px",height:r+"px"}),n}.call(t,n))}})}function S(e){if(!this.options.useCanvas||!this.options.enableOrientation)throw"Croppie: Cannot rotate without enableOrientation && EXIF.js included";var t,n,i,o,r,a=this,s=a.elements.canvas;a.data.orientation=(t=a.data.orientation,n=e,i=-1<l.indexOf(t)?l:u,o=i.indexOf(t),r=n/90%i.length,i[(i.length+o+r%i.length)%i.length]),_(s,a.elements.img,a.data.orientation),Z.call(a,!0),W.call(a)}if(window.jQuery){var P=window.jQuery;P.fn.croppie=function(n){if("string"!==typeof n)return this.each(function(){var e=new T(this,n);(e.$=P)(this).data("croppie",e)});var i=Array.prototype.slice.call(arguments,1),e=P(this).data("croppie");return"get"===n?e.get():"result"===n?e.result.apply(e,i):"bind"===n?e.bind.apply(e,i):this.each(function(){var e=P(this).data("croppie");if(e){var t=e[n];if(!P.isFunction(t))throw"Croppie "+n+" method not found";t.apply(e,i),"destroy"===n&&P(this).removeData("croppie")}})}}function T(e,t){if(-1<e.className.indexOf("croppie-container"))throw new Error("Croppie: Can't initialize croppie more than once");if(this.element=e,this.options=p(d(T.defaults),t),"img"===this.element.tagName.toLowerCase()){var n=this.element;x(n,"cr-original-image"),c(n,{"aria-hidden":"true",alt:""});var i=document.createElement("div");this.element.parentNode.appendChild(i),i.appendChild(n),this.element=i,this.options.url=this.options.url||n.src}if(r.call(this),this.options.url){var o={url:this.options.url,points:this.options.points};delete this.options.url,delete this.options.points,k.call(this,o)}}return T.defaults={viewport:{width:100,height:100,type:"square"},boundary:{},orientationControls:{enabled:!0,leftClass:"",rightClass:""},resizeControls:{width:!0,height:!0},customClass:"",showZoomer:!0,enableZoom:!0,enableResize:!1,mouseWheelZoom:!0,enableExif:!1,enforceBoundary:!0,enableOrientation:!1,enableKeyMovement:!0,update:function(){}},T.globals={translate:"translate3d"},p(T.prototype,{bind:function(e,t){return k.call(this,e,t)},get:function(){var e=j.call(this),t=e.points;return this.options.relative&&(t[0]/=this.elements.img.naturalWidth/100,t[1]/=this.elements.img.naturalHeight/100,t[2]/=this.elements.img.naturalWidth/100,t[3]/=this.elements.img.naturalHeight/100),e},result:function(e){return n.call(this,e)},refresh:function(){return function(){Y.call(this)}.call(this)},setZoom:function(e){B.call(this,e),y(this.elements.zoomer)},rotate:function(e){S.call(this,e)},destroy:function(){return function(){var e,t,n=this;n.element.removeChild(n.elements.boundary),e=n.element,t="croppie-container",e.classList?e.classList.remove(t):e.className=e.className.replace(t,""),n.options.enableZoom&&n.element.removeChild(n.elements.zoomerWrap),delete n.elements}.call(this)}}),T});
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a,b){var c="",d,e,f,g,k,l,m=0;for(null!=b&&b||(a=Base64._utf8_encode(a));m<a.length;)d=a.charCodeAt(m++),e=a.charCodeAt(m++),f=a.charCodeAt(m++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,
"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
-String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.PLANT_URL=window.PLANT_URL||"https://exp-plant.draw.io/plantuml4";window.DRAW_MATH_URL=window.DRAW_MATH_URL||"https://www.draw.io/math";
+String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.PLANT_URL=window.PLANT_URL||"https://exp-plant.draw.io/plantuml-1-2019-7";window.DRAW_MATH_URL=window.DRAW_MATH_URL||"https://www.draw.io/math";
window.VSD_CONVERT_URL=window.VSD_CONVERT_URL||"https://convert.draw.io/VsdConverter/api/converter";window.EMF_CONVERT_URL=window.EMF_CONVERT_URL||"https://convert.draw.io/emf2png/convertEMF";window.REALTIME_URL=window.REALTIME_URL||"https://rt.draw.io/cache";window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"5cdc018a32acddf6eba37592d9374945241e644b8368af847422d74c8709bc44";window.SAVE_URL=window.SAVE_URL||"save";
window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.VIEWER_URL=null;window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":"https://www.draw.io/iconSearch");window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";
window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
@@ -142,7 +142,7 @@ window.uiTheme=window.uiTheme||function(){var a=urlParams.ui;if(null==a&&"undefi
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(c){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";b=window.location.host;"test.draw.io"!=b&&(a=b.length-7,b=b.lastIndexOf("draw.io",a),-1!==b&&b===a&&(window.DRAWIO_LOG_URL="https://log.draw.io"))})();if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
if("1"==urlParams.offline||"1"==urlParams.local)urlParams.math="0";"1"==urlParams.lightbox&&(urlParams.chrome="0");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);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:"4.1.0",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:"4.1.1",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_ANDROID:0<=navigator.userAgent.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IOS_VERSION:function(){if(/iP(hone|od|ad)/.test(navigator.platform)){var a=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);if(null!=a&&0<a.length)return parseInt(a[1])}return 0}(),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."),
@@ -186,72 +186,72 @@ if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.ap
new ActiveXObject("Microsoft.XMLDOM");a.async=!1;a.validateOnParse=!1;a.resolveExternals=!1;return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createMsXmlDocument();b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&
window.getSelection().removeAllRanges()}:function(){}}(),removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");a=a.replace(/&/g,"&amp;");a=a.replace(/"/g,"&quot;");a=a.replace(/\'/g,"&#39;");a=a.replace(/</g,"&lt;");a=a.replace(/>/g,"&gt;");if(null==b||b)a=a.replace(/\n/g,
"&#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";mxClient.IS_IE||mxClient.IS_IE11?c=mxUtils.getPrettyXml(a,"","",""):null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||"&#xa;")},getPrettyXml:function(a,b,c,d,e){var f=[];if(null!=a)if(b=null!=b?b:" ",c=null!=c?c:"",d=null!=d?d:"\n",null!=
-a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_TEXT)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+mxUtils.htmlEntities(a)+d);else{f.push(c+"<"+a.nodeName);var g=a.attributes;if(null!=g)for(var k=0;k<g.length;k++){var l=mxUtils.htmlEntities(g[k].value);f.push(" "+g[k].nodeName+'="'+l+'"')}g=a.firstChild;if(null!=g){for(f.push(">"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,b,c+b,d,e)),g=g.nextSibling;
-f.push(c+"</"+a.nodeName+">"+d)}else f.push("/>"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(a){if(1!=a.length||"BR"!=a[0].nodeName&&"\n"!=a[0].innerHTML)for(var e=0;e<a.length;e++){var g=a[e];"BR"==g.nodeName||"\n"==g.innerHTML||(1==a.length||0==e)&&"DIV"==g.nodeName&&"<br>"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0<g.nodeValue.length&&d.push(g.nodeValue):8!==g.nodeType&&0<g.childNodes.length&&b(g.childNodes),e<a.length-1&&0<=mxUtils.indexOf(c,
-a[e+1].nodeName)&&d.push("\n"))}}var c="BLOCKQUOTE DIV H1 H2 H3 H4 H5 H6 OL P PRE TABLE UL".split(" "),d=[];b(a);return d.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return mxClient.IS_IE&&void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":
-"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("<"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('="'),b.push(e),b.push('"'))}0==a.innerHTML.length?
-b.push("/>"):(b.push(">"),b.push(a.innerHTML),b.push("</"+a.nodeName+">"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),
-a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,
-b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},getDocumentSize:function(){var a=document.body,b=document.documentElement;try{return new mxRectangle(0,0,a.clientWidth||b.clientWidth,
-Math.max(a.clientHeight||0,b.clientHeight))}catch(c){return new mxRectangle}},fit:function(a){var b=mxUtils.getDocumentSize(),c=parseInt(a.offsetLeft),d=parseInt(a.offsetWidth),e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),f=e.x,e=e.y,g=f+b.width;c+d>g&&(a.style.left=Math.max(f,g-d)+"px");c=parseInt(a.offsetTop);d=parseInt(a.offsetHeight);b=e+b.height;c+d>b&&(a.style.top=Math.max(e,b-d)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=
-new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=
-function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,
-e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(null!=a[c]&&null==b[c]||null==a[c]&&null!=b[c]||null!=a[c]&&null!=b[c]&&(a[c].x!=b[c].x||a[c].y!=b[c].y))return!1;return!0},equalEntries:function(a,b){var c=0;if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){for(var d in b)c++;
-for(d in a)if(c--,!(mxUtils.isNaN(a[d])&&mxUtils.isNaN(b[d])||a[d]==b[d]))return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" = [null]\n";else if("function"==typeof a[c])b+=
-c+" => [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" => ["+d+"]\n");else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,r=m*m,t=c*c,u=d*d,x=n/
-t+r/u;1<x?(c*=Math.sqrt(x),d*=Math.sqrt(x),f=0):(x=1,f===g&&(x=-1),f=x*Math.sqrt((t*u-t*r-u*n)/(t*r+u*n)));n=f*c*m/d;r=-1*f*d*e/c;k=p*n-q*r+k/2;l=q*n+p*r+l/2;t=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=t?t:2*Math.PI+t;t=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=t?t:2*Math.PI+t;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var y=Math.cos(f),A=Math.sin(f),
-r=-m*(n*A+d*y),t=-m*(c*A-p*y),q=[],z=0;z<g;++z){f+=e;var y=Math.cos(f),A=Math.sin(f),u=n*y-d*A+k,x=c*y+p*A+l,v=-m*(n*A+d*y),y=-m*(c*A-p*y),A=6*z;q[A]=Number(r+a);q[A+1]=Number(t+b);q[A+2]=Number(u-v+a);q[A+3]=Number(x-y+b);q[A+4]=Number(u+a);q[A+5]=Number(x+b);r=u+v;t=x+y}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+
-a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,
-b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(b.style,c?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=
-mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;
-break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},reversePortConstraints:function(a){var b;b=(a&mxConstants.DIRECTION_MASK_WEST)<<3;b|=(a&mxConstants.DIRECTION_MASK_NORTH)<<
-1;b|=(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},getDirectedBounds:function(a,b,c,d,e){var f=mxUtils.getValue(c,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);d=null!=d?d:mxUtils.getValue(c,mxConstants.STYLE_FLIPH,
-!1);e=null!=e?e:mxUtils.getValue(c,mxConstants.STYLE_FLIPV,!1);b.x=Math.round(Math.max(0,Math.min(a.width,b.x)));b.y=Math.round(Math.max(0,Math.min(a.height,b.y)));b.width=Math.round(Math.max(0,Math.min(a.width,b.width)));b.height=Math.round(Math.max(0,Math.min(a.height,b.height)));if(e&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||d&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.x,b.x=b.width,b.width=c;if(d&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||
-e&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.y,b.y=b.height,b.height=c;d=mxRectangle.fromRectangle(b);f==mxConstants.DIRECTION_SOUTH?(d.y=b.x,d.x=b.height,d.width=b.y,d.height=b.width):f==mxConstants.DIRECTION_WEST?(d.y=b.height,d.x=b.width,d.width=b.x,d.height=b.y):f==mxConstants.DIRECTION_NORTH&&(d.y=b.width,d.x=b.y,d.width=b.height,d.height=b.x);return new mxRectangle(a.x+d.x,a.y+d.y,a.width-d.width-d.x,a.height-d.height-d.y)},getPerimeterPoint:function(a,b,c){for(var d=
-null,e=0;e<a.length-1;e++){var f=mxUtils.intersection(a[e].x,a[e].y,a[e+1].x,a[e+1].y,b.x,b.y,c.x,c.y);if(null!=f){var g=c.x-f.x,k=c.y-f.y,f={p:f,distSq:k*k+g*g};null!=f&&(null==d||d.distSq>f.distSq)&&(d=f)}}return null!=d?d.p:null},rectangleIntersectsSegment:function(a,b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);
-g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,
-mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},
-getOffset:function(a,b){for(var c=0,d=0,e=!1,f=a,g=document.body,k=document.documentElement;null!=f&&f!=g&&f!=k&&!e;){var l=mxUtils.getCurrentStyle(f);null!=l&&(e=e||"fixed"==l.position);f=f.parentNode}b||e||(e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c+=e.x,d+=e.y);e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,a.body.scrollTop);a=a.defaultView||a.parentWindow;
-return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!0;for(var d=null!=a?a.ownerDocument:document,e=d.body,f=d.documentElement,g=new mxPoint,k=!1;null!=a&&a!=e&&a!=f;){isNaN(a.scrollLeft)||isNaN(a.scrollTop)||
-(g.x+=a.scrollLeft,g.y+=a.scrollTop);var l=mxUtils.getCurrentStyle(a);null!=l&&(k=k||"fixed"==l.position);a=b?a.parentNode:null}!k&&c&&(a=mxUtils.getDocumentScrollOrigin(d),g.x+=a.x,g.y+=a.y);return g},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a,!1);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return null!=a?a.replace(new RegExp("^["+(b||"\\s")+"]+","g"),""):null},rtrim:function(a,b){return null!=a?a.replace(new RegExp("["+(b||"\\s")+
-"]+$","g"),""):null},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)&&("string"!=typeof a||0>a.toLowerCase().indexOf("0x"))},isInteger:function(a){return String(parseInt(a))===String(a)},mod:function(a,b){return(a%b+b)%b},intersection:function(a,b,c,d,e,f,g,k){var l=(k-f)*(c-a)-(g-e)*(d-b);g=((g-e)*(b-f)-(k-f)*(a-e))/l;e=((c-a)*(b-f)-(d-b)*(a-e))/l;return 0<=g&&1>=g&&0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,
-b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;0>=e*c+f*d?c=0:(e=c-e,f=d-f,a=e*c+f*d,c=0>=a?0:a*a/(c*c+d*d));e=e*e+f*f-c;0>e&&(e=0);return e},ptLineDist:function(a,b,c,d,e,f){return Math.abs((d-b)*e-(c-a)*f+c*b-d*a)/Math.sqrt((d-b)*(d-b)+(c-a)*(c-a))},relativeCcw:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;a=e*d-f*c;0==a&&(a=e*c+f*d,0<a&&(a=(e-c)*c+(f-d)*d,0>a&&(a=0)));return 0>a?-1:0<a?1:0},animateChanges:function(a,b){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,
-arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity="+b/5+")":mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createImage:function(a){var b;mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(b=document.createElement(mxClient.VML_PREFIX+":image"),b.setAttribute("src",a),b.style.borderStyle=
-"none"):(b=document.createElement("img"),b.setAttribute("src",a),b.setAttribute("border","0"));return b},sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(a,e){var d=c.get(a);null==d&&(d=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),c.put(a,d));var g=c.get(e);null==g&&(g=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,g));d=mxCellPath.compare(d,g);return 0==d?0:0<d==b?1:-1});return a},getStylename:function(a){return null!=a&&(a=a.split(";")[0],0>a.indexOf("="))?
-a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0>a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b)for(var c=a.split(";"),d=0,e=0;e<c.length;e++){if(c[e]==b)return d;d+=c[e].length+1}return-1},addStylename:function(a,b){0>mxUtils.indexOfStylename(a,b)&&(null==a?a="":0<a.length&&";"!=a.charAt(a.length-1)&&(a+=";"),a+=b);return a},removeStylename:function(a,b){var c=[];if(null!=a)for(var d=a.split(";"),e=0;e<
-d.length;e++)d[e]!=b&&c.push(d[e]);return c.join(";")},removeAllStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0<=a[c].indexOf("=")&&b.push(a[c])}return b.join(";")},setCellStyles:function(a,b,c,d){if(null!=b&&0<b.length){a.beginUpdate();try{for(var e=0;e<b.length;e++)if(null!=b[e]){var f=mxUtils.setStyle(a.getStyle(b[e]),c,d);a.setStyle(b[e],f)}}finally{a.endUpdate()}}},setStyle:function(a,b,c){var d=null!=c&&("undefined"==typeof c.length||0<c.length);if(null==
-a||0==a.length)d&&(a=b+"="+c+";");else if(a.substring(0,b.length+1)==b+"="){var e=a.indexOf(";");a=d?b+"="+c+(0>e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0<b.length){a.beginUpdate();try{for(var f=0;f<b.length;f++)if(null!=
-b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"="+c:b+"=0";else{var e=a.indexOf(b+"=");if(0>e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g;g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,
-b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+"px";null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
-(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0<b.length&&(f.style.textDecoration=b.join(" ")));f.style.position="absolute";f.style.visibility="hidden";f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";f.style.zoom="1";null!=d?(f.style.width=d+"px",f.style.whiteSpace=
-"normal"):f.style.whiteSpace="nowrap";f.innerHTML=a;document.body.appendChild(f);a=new mxRectangle(0,0,f.offsetWidth,f.offsetHeight);document.body.removeChild(f);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,m=f.overlayPane;a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),
-f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var n=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate=n,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}return g},
-getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){var g=Math.floor(c)/c,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?
-g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return e*c/b*.99999},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||
-11==document.documentMode){d="<html><head>";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="<style>";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'</style></head><body style="margin:0px;">'+('<div style="position:absolute;overflow:hidden;width:'+e+"px;height:"+f+'px;"><div style="position:relative;left:'+k+"px;top:"+l+'px;">')+a.container.innerHTML;b.writeln(d+"</div></div></body><html>");b.close()}else{b.writeln("<html><head>");
-g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));b.writeln('</head><body style="margin:0px;"></body></html>');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");
-e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();
-mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;");c.appendChild(d);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/
-2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("<pre>"+mxUtils.htmlEntities(a)+"</pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");
-e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,
-e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=
-new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+
-"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,
-SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,
-CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,
-VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",
-LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",
-STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",
-STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",
-STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",
-STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",
-STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",
-STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",
-STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",
-STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",
-SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",
-ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",
-EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
+a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_TEXT)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+mxUtils.htmlEntities(mxUtils.trim(a),!1));else{f.push(c+"<"+a.nodeName);var g=a.attributes;if(null!=g)for(var k=0;k<g.length;k++){var l=mxUtils.htmlEntities(g[k].value);f.push(" "+g[k].nodeName+'="'+l+'"')}g=a.firstChild;if(null!=g){for(f.push(">"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,
+b,c+b,d,e)),g=g.nextSibling;f.push(c+"</"+a.nodeName+">"+d)}else f.push("/>"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(a){if(1!=a.length||"BR"!=a[0].nodeName&&"\n"!=a[0].innerHTML)for(var e=0;e<a.length;e++){var g=a[e];"BR"==g.nodeName||"\n"==g.innerHTML||(1==a.length||0==e)&&"DIV"==g.nodeName&&"<br>"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0<g.nodeValue.length&&d.push(g.nodeValue):8!==g.nodeType&&0<g.childNodes.length&&b(g.childNodes),
+e<a.length-1&&0<=mxUtils.indexOf(c,a[e+1].nodeName)&&d.push("\n"))}}var c="BLOCKQUOTE DIV H1 H2 H3 H4 H5 H6 OL P PRE TABLE UL".split(" "),d=[];b(a);return d.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return mxClient.IS_IE&&void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=
+b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("<"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('="'),
+b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/>"):(b.push(">"),b.push(a.innerHTML),b.push("</"+a.nodeName+">"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,
+d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},
+linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},getDocumentSize:function(){var a=document.body,b=document.documentElement;
+try{return new mxRectangle(0,0,a.clientWidth||b.clientWidth,Math.max(a.clientHeight||0,b.clientHeight))}catch(c){return new mxRectangle}},fit:function(a){var b=mxUtils.getDocumentSize(),c=parseInt(a.offsetLeft),d=parseInt(a.offsetWidth),e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),f=e.x,e=e.y,g=f+b.width;c+d>g&&(a.style.left=Math.max(f,g-d)+"px");c=parseInt(a.offsetTop);d=parseInt(a.offsetHeight);b=e+b.height;c+d>b&&(a.style.top=Math.max(e,b-d)+"px")},load:function(a){a=new mxXmlRequest(a,null,
+"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,
+d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,
+e;for(e in a)e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(null!=a[c]&&null==b[c]||null==a[c]&&null!=b[c]||null!=a[c]&&null!=b[c]&&(a[c].x!=b[c].x||a[c].y!=b[c].y))return!1;return!0},equalEntries:function(a,b){var c=0;if(null==a&&null!=b||null!=a&&null==
+b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){for(var d in b)c++;for(d in a)if(c--,!(mxUtils.isNaN(a[d])&&mxUtils.isNaN(b[d])||a[d]==b[d]))return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b=
+"",c;for(c in a)try{if(null==a[c])b+=c+" = [null]\n";else if("function"==typeof a[c])b+=c+" => [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" => ["+d+"]\n");else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/
+180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,r=m*m,t=c*c,u=d*d,x=n/t+r/u;1<x?(c*=Math.sqrt(x),d*=Math.sqrt(x),f=0):(x=1,f===g&&(x=-1),f=x*Math.sqrt((t*u-t*r-u*n)/(t*r+u*n)));n=f*c*m/d;r=-1*f*d*e/c;k=p*n-q*r+k/2;l=q*n+p*r+l/2;t=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=t?t:2*Math.PI+t;t=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=t?t:2*Math.PI+t;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/
+4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var y=Math.cos(f),A=Math.sin(f),r=-m*(n*A+d*y),t=-m*(c*A-p*y),q=[],z=0;z<g;++z){f+=e;var y=Math.cos(f),A=Math.sin(f),u=n*y-d*A+k,x=c*y+p*A+l,v=-m*(n*A+d*y),y=-m*(c*A-p*y),A=6*z;q[A]=Number(r+a);q[A+1]=Number(t+b);q[A+2]=Number(u-v+a);q[A+3]=Number(x-y+b);q[A+4]=Number(u+a);q[A+5]=Number(x+b);r=u+v;t=x+y}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=
+c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;
+var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(b.style,c?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<c?(a=
+1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=
+d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},reversePortConstraints:function(a){var b;
+b=(a&mxConstants.DIRECTION_MASK_WEST)<<3;b|=(a&mxConstants.DIRECTION_MASK_NORTH)<<1;b|=(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},getDirectedBounds:function(a,b,c,d,e){var f=mxUtils.getValue(c,mxConstants.STYLE_DIRECTION,
+mxConstants.DIRECTION_EAST);d=null!=d?d:mxUtils.getValue(c,mxConstants.STYLE_FLIPH,!1);e=null!=e?e:mxUtils.getValue(c,mxConstants.STYLE_FLIPV,!1);b.x=Math.round(Math.max(0,Math.min(a.width,b.x)));b.y=Math.round(Math.max(0,Math.min(a.height,b.y)));b.width=Math.round(Math.max(0,Math.min(a.width,b.width)));b.height=Math.round(Math.max(0,Math.min(a.height,b.height)));if(e&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||d&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=
+b.x,b.x=b.width,b.width=c;if(d&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||e&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.y,b.y=b.height,b.height=c;d=mxRectangle.fromRectangle(b);f==mxConstants.DIRECTION_SOUTH?(d.y=b.x,d.x=b.height,d.width=b.y,d.height=b.width):f==mxConstants.DIRECTION_WEST?(d.y=b.height,d.x=b.width,d.width=b.x,d.height=b.y):f==mxConstants.DIRECTION_NORTH&&(d.y=b.width,d.x=b.y,d.width=b.height,d.height=b.x);return new mxRectangle(a.x+
+d.x,a.y+d.y,a.width-d.width-d.x,a.height-d.height-d.y)},getPerimeterPoint:function(a,b,c){for(var d=null,e=0;e<a.length-1;e++){var f=mxUtils.intersection(a[e].x,a[e].y,a[e+1].x,a[e+1].y,b.x,b.y,c.x,c.y);if(null!=f){var g=c.x-f.x,k=c.y-f.y,f={p:f,distSq:k*k+g*g};null!=f&&(null==d||d.distSq>f.distSq)&&(d=f)}}return null!=d?d.p:null},rectangleIntersectsSegment:function(a,b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,
+g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=
+f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),
+a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},getOffset:function(a,b){for(var c=0,d=0,e=!1,f=a,g=document.body,k=document.documentElement;null!=f&&f!=g&&f!=k&&!e;){var l=mxUtils.getCurrentStyle(f);null!=l&&(e=e||"fixed"==l.position);f=f.parentNode}b||e||(e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c+=e.x,d+=e.y);e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,
+a.body.scrollTop);a=a.defaultView||a.parentWindow;return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!0;for(var d=null!=a?a.ownerDocument:document,e=d.body,f=d.documentElement,g=new mxPoint,k=!1;null!=a&&
+a!=e&&a!=f;){isNaN(a.scrollLeft)||isNaN(a.scrollTop)||(g.x+=a.scrollLeft,g.y+=a.scrollTop);var l=mxUtils.getCurrentStyle(a);null!=l&&(k=k||"fixed"==l.position);a=b?a.parentNode:null}!k&&c&&(a=mxUtils.getDocumentScrollOrigin(d),g.x+=a.x,g.y+=a.y);return g},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a,!1);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return null!=a?a.replace(new RegExp("^["+(b||"\\s")+"]+","g"),""):null},rtrim:function(a,
+b){return null!=a?a.replace(new RegExp("["+(b||"\\s")+"]+$","g"),""):null},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)&&("string"!=typeof a||0>a.toLowerCase().indexOf("0x"))},isInteger:function(a){return String(parseInt(a))===String(a)},mod:function(a,b){return(a%b+b)%b},intersection:function(a,b,c,d,e,f,g,k){var l=(k-f)*(c-a)-(g-e)*(d-b);g=((g-e)*(b-f)-(k-f)*(a-e))/l;e=((c-a)*(b-f)-(d-b)*(a-e))/l;return 0<=g&&1>=g&&
+0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;0>=e*c+f*d?c=0:(e=c-e,f=d-f,a=e*c+f*d,c=0>=a?0:a*a/(c*c+d*d));e=e*e+f*f-c;0>e&&(e=0);return e},ptLineDist:function(a,b,c,d,e,f){return Math.abs((d-b)*e-(c-a)*f+c*b-d*a)/Math.sqrt((d-b)*(d-b)+(c-a)*(c-a))},relativeCcw:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;a=e*d-f*c;0==a&&(a=e*c+f*d,0<a&&(a=(e-c)*c+(f-d)*d,0>a&&(a=0)));return 0>a?-1:0<a?1:0},animateChanges:function(a,b){mxEffects.animateChanges.apply(this,
+arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity="+b/5+")":mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createImage:function(a){var b;mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(b=document.createElement(mxClient.VML_PREFIX+
+":image"),b.setAttribute("src",a),b.style.borderStyle="none"):(b=document.createElement("img"),b.setAttribute("src",a),b.setAttribute("border","0"));return b},sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(a,e){var d=c.get(a);null==d&&(d=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),c.put(a,d));var g=c.get(e);null==g&&(g=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,g));d=mxCellPath.compare(d,g);return 0==d?0:0<d==b?1:-1});return a},getStylename:function(a){return null!=
+a&&(a=a.split(";")[0],0>a.indexOf("="))?a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0>a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b)for(var c=a.split(";"),d=0,e=0;e<c.length;e++){if(c[e]==b)return d;d+=c[e].length+1}return-1},addStylename:function(a,b){0>mxUtils.indexOfStylename(a,b)&&(null==a?a="":0<a.length&&";"!=a.charAt(a.length-1)&&(a+=";"),a+=b);return a},removeStylename:function(a,b){var c=[];
+if(null!=a)for(var d=a.split(";"),e=0;e<d.length;e++)d[e]!=b&&c.push(d[e]);return c.join(";")},removeAllStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0<=a[c].indexOf("=")&&b.push(a[c])}return b.join(";")},setCellStyles:function(a,b,c,d){if(null!=b&&0<b.length){a.beginUpdate();try{for(var e=0;e<b.length;e++)if(null!=b[e]){var f=mxUtils.setStyle(a.getStyle(b[e]),c,d);a.setStyle(b[e],f)}}finally{a.endUpdate()}}},setStyle:function(a,b,c){var d=null!=c&&("undefined"==
+typeof c.length||0<c.length);if(null==a||0==a.length)d&&(a=b+"="+c+";");else if(a.substring(0,b.length+1)==b+"="){var e=a.indexOf(";");a=d?b+"="+c+(0>e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0<b.length){a.beginUpdate();
+try{for(var f=0;f<b.length;f++)if(null!=b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"="+c:b+"=0";else{var e=a.indexOf(b+"=");if(0>e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g;g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+
+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+
+"px";null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0<b.length&&(f.style.textDecoration=b.join(" ")));f.style.position="absolute";f.style.visibility="hidden";f.style.display=mxClient.IS_QUIRKS?"inline":
+"inline-block";f.style.zoom="1";null!=d?(f.style.width=d+"px",f.style.whiteSpace="normal"):f.style.whiteSpace="nowrap";f.innerHTML=a;document.body.appendChild(f);a=new mxRectangle(0,0,f.offsetWidth,f.offsetHeight);document.body.removeChild(f);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,m=f.overlayPane;a.dialect==mxConstants.DIALECT_SVG?
+(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var n=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate=n,f.canvas.removeChild(f.drawPane),
+f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){var g=
+Math.floor(c)/c,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return e*c/b*.99999},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-
+g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="<html><head>";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="<style>";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'</style></head><body style="margin:0px;">'+('<div style="position:absolute;overflow:hidden;width:'+e+"px;height:"+f+'px;"><div style="position:relative;left:'+k+"px;top:"+l+'px;">')+
+a.container.innerHTML;b.writeln(d+"</div></div></body><html>");b.close()}else{b.writeln("<html><head>");g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));b.writeln('</head><body style="margin:0px;"></body></html>');b.close();c=b.createElement("div");
+c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+
+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;");c.appendChild(d);c=new mxWindow("Popup Window",
+c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("<pre>"+mxUtils.htmlEntities(a)+"</pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,
+null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||
+document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));
+g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=
+parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",
+NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",
+OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",
+VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",
+DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),
+PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",
+STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",
+STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",
+STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",
+STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",
+STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",
+STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",
+STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",
+SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",
+ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",
+ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};
mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};
mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};
@@ -580,8 +580,8 @@ 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),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);null!=b.style&&"1"==mxUtils.getValue(b.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(a.setStrokeColor(mxConstants.NONE),a.rect(c,d,e,f),a.stroke(),a.setStrokeColor(b.stroke));
-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.drawShape=function(a,b,c,d,e,f){var g=a.states.slice(),k=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),k=this.computeAspect(b.style,c,d,e,f,k),l=Math.min(k.width,k.height),l="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*l;a.setStrokeWidth(l);null!=b.style&&"1"==mxUtils.getValue(b.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(a.setStrokeColor(mxConstants.NONE),a.rect(c,d,e,f),a.stroke(),a.setStrokeColor(b.stroke));
+this.drawChildren(a,b,c,d,e,f,this.bgNode,k,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,k,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0));a.states.length!=g.length&&(a.states=g)};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,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){a.begin();p=!0;if("1"==c.getAttribute("rounded")){for(var p=!1,q=Number(c.getAttribute("arcSize")),r=0,t=[],u=c.firstChild;null!=u;){if(u.nodeType==mxConstants.NODETYPE_ELEMENT){var x=u.nodeName;if("move"==x||"line"==x)"move"!=x&&0!=t.length||t.push([]),t[t.length-1].push(new mxPoint(k+Number(u.getAttribute("x"))*
m,l+Number(u.getAttribute("y"))*n)),r++;else{p=!0;break}}u=u.nextSibling}if(!p&&0<r)for(m=0;m<t.length;m++)n=!1,l=t[m][0],k=t[m][t[m].length-1],l.x==k.x&&l.y==k.y&&(t[m].pop(),n=!0),this.addPoints(a,t[m],!0,q,n);else p=!0}if(p)for(u=c.firstChild;null!=u;)u.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,u,d,e,f),u=u.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"))*
@@ -1389,19 +1389,20 @@ mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels};mxGraph.protot
mxGraph.prototype.getTooltip=function(a,b,c,d){var e=null;null!=a&&(null==a.control||b!=a.control.node&&b.parentNode!=a.control.node||(e=this.collapseExpandResource,e=mxUtils.htmlEntities(mxResources.get(e)||e).replace(/\\n/g,"<br>")),null==e&&null!=a.overlays&&a.overlays.visit(function(a,c){null!=e||b!=c.node&&b.parentNode!=c.node||(e=c.overlay.toString())}),null==e&&(c=this.selectionCellsHandler.getHandler(a.cell),null!=c&&"function"==typeof c.getTooltipForNode&&(e=c.getTooltipForNode(b))),null==
e&&(e=this.getTooltipForCell(a.cell)));return e};mxGraph.prototype.getTooltipForCell=function(a){return null!=a&&null!=a.getTooltip?a.getTooltip():this.convertValueToString(a)};mxGraph.prototype.getLinkForCell=function(a){return null};mxGraph.prototype.getCursorForMouseEvent=function(a){return this.getCursorForCell(a.getCell())};mxGraph.prototype.getCursorForCell=function(a){return null};
mxGraph.prototype.getStartSize=function(a){var b=new mxRectangle,c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a);null!=a&&(c=parseInt(mxUtils.getValue(a,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)?b.height=c:b.width=c);return b};mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};
-mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
-mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
-mxGraph.prototype.isSwimlane=function(a){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);if(null!=b&&!this.model.isEdge(a))return b[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
-mxGraph.prototype.setEnabled=function(a){this.enabled=a};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
-mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
-mxGraph.prototype.isCellCloneable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};
-mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};
-mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};
-mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};mxGraph.prototype.isLabelMovable=function(a){return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&this.vertexLabelsMovable)};mxGraph.prototype.isCellRotatable=function(a){var b=this.view.getState(a);return 0!=(null!=b?b.style:this.getCellStyle(a))[mxConstants.STYLE_ROTATABLE]};mxGraph.prototype.getMovableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellMovable(a)}))};
-mxGraph.prototype.isCellMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsMovable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_MOVABLE]};mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable};mxGraph.prototype.setCellsMovable=function(a){this.cellsMovable=a};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled};mxGraph.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled};
-mxGraph.prototype.setPortsEnabled=function(a){this.portsEnabled=a};mxGraph.prototype.getGridSize=function(){return this.gridSize};mxGraph.prototype.setGridSize=function(a){this.gridSize=a};mxGraph.prototype.getTolerance=function(){return this.tolerance};mxGraph.prototype.setTolerance=function(a){this.tolerance=a};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable};mxGraph.prototype.setVertexLabelsMovable=function(a){this.vertexLabelsMovable=a};
-mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable};mxGraph.prototype.setEdgeLabelsMovable=function(a){this.edgeLabelsMovable=a};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting};mxGraph.prototype.setSwimlaneNesting=function(a){this.swimlaneNesting=a};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled};mxGraph.prototype.setSwimlaneSelectionEnabled=function(a){this.swimlaneSelectionEnabled=a};
-mxGraph.prototype.isMultigraph=function(){return this.multigraph};mxGraph.prototype.setMultigraph=function(a){this.multigraph=a};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops};mxGraph.prototype.setAllowDanglingEdges=function(a){this.allowDanglingEdges=a};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges};mxGraph.prototype.setConnectableEdges=function(a){this.connectableEdges=a};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges};
+mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};
+mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};
+mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};mxGraph.prototype.isSwimlane=function(a){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);if(null!=b&&!this.model.isEdge(a))return b[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1};
+mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};mxGraph.prototype.setEnabled=function(a){this.enabled=a};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};
+mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};
+mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};mxGraph.prototype.isCellCloneable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};
+mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};
+mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};
+mxGraph.prototype.isCellDeletable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};mxGraph.prototype.isLabelMovable=function(a){return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&this.vertexLabelsMovable)};
+mxGraph.prototype.isCellRotatable=function(a){var b=this.view.getState(a);return 0!=(null!=b?b.style:this.getCellStyle(a))[mxConstants.STYLE_ROTATABLE]};mxGraph.prototype.getMovableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellMovable(a)}))};mxGraph.prototype.isCellMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsMovable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_MOVABLE]};
+mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable};mxGraph.prototype.setCellsMovable=function(a){this.cellsMovable=a};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled};mxGraph.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled};mxGraph.prototype.setPortsEnabled=function(a){this.portsEnabled=a};mxGraph.prototype.getGridSize=function(){return this.gridSize};
+mxGraph.prototype.setGridSize=function(a){this.gridSize=a};mxGraph.prototype.getTolerance=function(){return this.tolerance};mxGraph.prototype.setTolerance=function(a){this.tolerance=a};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable};mxGraph.prototype.setVertexLabelsMovable=function(a){this.vertexLabelsMovable=a};mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable};
+mxGraph.prototype.setEdgeLabelsMovable=function(a){this.edgeLabelsMovable=a};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting};mxGraph.prototype.setSwimlaneNesting=function(a){this.swimlaneNesting=a};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled};mxGraph.prototype.setSwimlaneSelectionEnabled=function(a){this.swimlaneSelectionEnabled=a};mxGraph.prototype.isMultigraph=function(){return this.multigraph};
+mxGraph.prototype.setMultigraph=function(a){this.multigraph=a};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops};mxGraph.prototype.setAllowDanglingEdges=function(a){this.allowDanglingEdges=a};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges};mxGraph.prototype.setConnectableEdges=function(a){this.connectableEdges=a};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges};
mxGraph.prototype.setCloneInvalidEdges=function(a){this.cloneInvalidEdges=a};mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges};mxGraph.prototype.setAllowLoops=function(a){this.allowLoops=a};mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove};mxGraph.prototype.setDisconnectOnMove=function(a){this.disconnectOnMove=a};mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled};
mxGraph.prototype.setDropEnabled=function(a){this.dropEnabled=a};mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled};mxGraph.prototype.setSplitEnabled=function(a){this.splitEnabled=a};mxGraph.prototype.isCellResizable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsResizable()&&!this.isCellLocked(a)&&"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")};mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable};
mxGraph.prototype.setCellsResizable=function(a){this.cellsResizable=a};mxGraph.prototype.isTerminalPointMovable=function(a,b){return!0};mxGraph.prototype.isCellBendable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsBendable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_BENDABLE]};mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable};mxGraph.prototype.setCellsBendable=function(a){this.cellsBendable=a};
@@ -1514,12 +1515,13 @@ mxCellStatePreview.prototype.translateState=function(a,b,c){if(null!=a){var d=th
mxCellStatePreview.prototype.revalidateState=function(a,b,c,d){if(null!=a){var e=this.graph.getModel();e.isEdge(a.cell)&&a.view.updateCellState(a);var f=this.graph.getCellGeometry(a.cell),g=a.view.getState(e.getParent(a.cell));0==b&&0==c||null==f||!f.relative||!e.isVertex(a.cell)||null!=g&&!e.isVertex(g.cell)&&null==this.deltas.get(a.cell)||(a.x+=b,a.y+=c);this.graph.cellRenderer.redraw(a);null!=d&&d(a);f=e.getChildCount(a.cell);for(g=0;g<f;g++)this.revalidateState(this.graph.view.getState(e.getChildAt(a.cell,
g)),b,c,d)}};mxCellStatePreview.prototype.addEdges=function(a){for(var b=this.graph.getModel(),c=b.getEdgeCount(a.cell),d=0;d<c;d++){var e=a.view.getState(b.getEdgeAt(a.cell,d));null!=e&&this.moveState(e,0,0)}};function mxConnectionConstraint(a,b,c,d,e){this.point=a;this.perimeter=null!=b?b:!0;this.name=c;this.dx=d?d:0;this.dy=e?e:0}mxConnectionConstraint.prototype.point=null;mxConnectionConstraint.prototype.perimeter=null;mxConnectionConstraint.prototype.name=null;
mxConnectionConstraint.prototype.dx=null;mxConnectionConstraint.prototype.dy=null;
-function mxGraphHandler(a){this.graph=a;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.suspended||(this.updatePreview(),this.updateHint())});this.graph.addListener(mxEvent.PAN,this.panHandler);this.escapeHandler=mxUtils.bind(this,function(a,c){this.reset()});this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler);this.refreshHandler=mxUtils.bind(this,function(a,c){if(null!=this.first&&!this.suspended)try{this.bounds=this.graph.getView().getBounds(this.cells),
-this.pBounds=this.getPreviewBounds(this.cells),this.updatePreview(!0),window.setTimeout(mxUtils.bind(this,function(){this.livePreviewUsed&&(this.setHandlesVisibleForCells(this.cells,!1),this.updatePreview())}),0)}catch(d){this.reset()}});this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler)}mxGraphHandler.prototype.graph=null;mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50;mxGraphHandler.prototype.enabled=!0;mxGraphHandler.prototype.highlightEnabled=!0;
-mxGraphHandler.prototype.cloneEnabled=!0;mxGraphHandler.prototype.moveEnabled=!0;mxGraphHandler.prototype.guidesEnabled=!1;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=!0;mxGraphHandler.prototype.selectEnabled=!0;mxGraphHandler.prototype.removeCellsFromParent=!0;mxGraphHandler.prototype.removeEmptyParents=!1;mxGraphHandler.prototype.connectOnDrop=!1;mxGraphHandler.prototype.scrollOnMove=!0;
-mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor="black";mxGraphHandler.prototype.htmlPreview=!1;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=!1;mxGraphHandler.prototype.rotationEnabled=!0;mxGraphHandler.prototype.maxLivePreview=0;mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG;mxGraphHandler.prototype.isEnabled=function(){return this.enabled};mxGraphHandler.prototype.setEnabled=function(a){this.enabled=a};
-mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled};mxGraphHandler.prototype.setCloneEnabled=function(a){this.cloneEnabled=a};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled};mxGraphHandler.prototype.setMoveEnabled=function(a){this.moveEnabled=a};mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled};mxGraphHandler.prototype.setSelectEnabled=function(a){this.selectEnabled=a};
-mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent};mxGraphHandler.prototype.setRemoveCellsFromParent=function(a){this.removeCellsFromParent=a};mxGraphHandler.prototype.getInitialCellForEvent=function(a){return a.getCell()};mxGraphHandler.prototype.isDelayedSelection=function(a,b){return this.graph.isCellSelected(a)};mxGraphHandler.prototype.consumeMouseEvent=function(a,b){b.consume()};
+function mxGraphHandler(a){this.graph=a;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.suspended||(this.updatePreview(),this.updateHint())});this.graph.addListener(mxEvent.PAN,this.panHandler);this.escapeHandler=mxUtils.bind(this,function(a,c){this.reset()});this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler);this.refreshHandler=mxUtils.bind(this,function(a,c){window.setTimeout(mxUtils.bind(this,function(){if(null!=this.first&&!this.suspended){var a=this.currentDx,
+b=this.currentDy;this.currentDy=this.currentDx=0;this.updatePreview();this.bounds=this.graph.getView().getBounds(this.cells);this.pBounds=this.getPreviewBounds(this.cells);null==this.pBounds?this.reset():(this.currentDx=a,this.currentDy=b,this.updatePreview(),this.updateHint(),this.livePreviewUsed&&this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!1))}}),0)});this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler)}mxGraphHandler.prototype.graph=null;
+mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50;mxGraphHandler.prototype.enabled=!0;mxGraphHandler.prototype.highlightEnabled=!0;mxGraphHandler.prototype.cloneEnabled=!0;mxGraphHandler.prototype.moveEnabled=!0;mxGraphHandler.prototype.guidesEnabled=!1;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=!0;mxGraphHandler.prototype.selectEnabled=!0;
+mxGraphHandler.prototype.removeCellsFromParent=!0;mxGraphHandler.prototype.removeEmptyParents=!1;mxGraphHandler.prototype.connectOnDrop=!1;mxGraphHandler.prototype.scrollOnMove=!0;mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor="black";mxGraphHandler.prototype.htmlPreview=!1;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=!1;mxGraphHandler.prototype.rotationEnabled=!0;mxGraphHandler.prototype.maxLivePreview=0;
+mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG;mxGraphHandler.prototype.isEnabled=function(){return this.enabled};mxGraphHandler.prototype.setEnabled=function(a){this.enabled=a};mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled};mxGraphHandler.prototype.setCloneEnabled=function(a){this.cloneEnabled=a};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled};mxGraphHandler.prototype.setMoveEnabled=function(a){this.moveEnabled=a};
+mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled};mxGraphHandler.prototype.setSelectEnabled=function(a){this.selectEnabled=a};mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent};mxGraphHandler.prototype.setRemoveCellsFromParent=function(a){this.removeCellsFromParent=a};mxGraphHandler.prototype.getInitialCellForEvent=function(a){return a.getCell()};mxGraphHandler.prototype.isDelayedSelection=function(a,b){return this.graph.isCellSelected(a)};
+mxGraphHandler.prototype.consumeMouseEvent=function(a,b){b.consume()};
mxGraphHandler.prototype.mouseDown=function(a,b){if(!b.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&null!=b.getState()&&!mxEvent.isMultiTouchEvent(b.getEvent())){var c=this.getInitialCellForEvent(b);this.delayedSelection=this.isDelayedSelection(c,b);this.cell=null;this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(c,b.getEvent());if(this.isMoveEnabled()){var d=this.graph.model,e=d.getGeometry(c);this.graph.isCellMovable(c)&&(!d.isEdge(c)||1<this.graph.getSelectionCount()||
null!=e.points&&0<e.points.length||null==d.getTerminal(c,!0)||null==d.getTerminal(c,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(b.getEvent())&&this.graph.isCellsCloneable())?this.start(c,b.getX(),b.getY()):this.delayedSelection&&(this.cell=c);this.cellWasClicked=!0;this.consumeMouseEvent(mxEvent.MOUSE_DOWN,b)}}};
mxGraphHandler.prototype.getGuideStates=function(){var a=this.graph.getDefaultParent(),b=this.graph.getModel(),c=mxUtils.bind(this,function(a){return null!=this.graph.view.getState(a)&&b.isVertex(a)&&null!=b.getGeometry(a)&&!b.getGeometry(a).relative});return this.graph.view.getCellStates(b.filterDescendants(c,a))};mxGraphHandler.prototype.getCells=function(a){return!this.delayedSelection&&this.graph.isCellMovable(a)?[a]:this.graph.getMovableCells(this.graph.getSelectionCells())};
@@ -1534,24 +1536,24 @@ mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};
mxGraphHandler.prototype.mouseMove=function(a,b){var c=this.graph;if(b.isConsumed()||!c.isMouseDown||null==this.cell||null==this.first||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||c.isMouseDown||(d=c.getCursorForMouseEvent(b),null==d&&c.isEnabled()&&c.isCellMovable(b.getCell())&&(d=c.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=
d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{var d=this.getDelta(b),e=c.tolerance;if(null!=this.shape||this.livePreviewActive||Math.abs(d.x)>e||Math.abs(d.y)>e){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));var e=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),f=c.isGridEnabledEvent(b.getEvent()),g=b.getCell(),k=!0,l=null;this.cloning=e;c.isDropEnabled()&&
this.highlightEnabled&&(l=c.getDropTarget(this.cells,b.getEvent(),g,e));var m=c.getView().getState(l),n=!1;null==m||c.model.getParent(this.cell)==l&&!e?(this.target=null,this.connectOnDrop&&null!=g&&1==this.cells.length&&c.getModel().isVertex(g)&&c.isCellConnectable(g)&&(m=c.getView().getState(g),null!=m&&(g=null==c.getEdgeValidationError(null,this.cell,g)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(g),n=!0))):(this.target!=l&&(this.target=l,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),
-n=!0);null!=m&&n?this.highlight.highlight(m):this.highlight.hide();this.livePreviewActive&&e?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?e&&this.livePreviewActive||(this.setHandlesVisibleForCells(this.cells,!1),this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds));null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,
-d,f,e),k=!1):d=this.graph.snapDelta(d,this.bounds,!f,!1,!1);null!=this.guide&&k&&this.guide.hide();c.isConstrainedEvent(b.getEvent())&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};
+n=!0);null!=m&&n?this.highlight.highlight(m):this.highlight.hide();this.livePreviewActive&&e?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?e&&this.livePreviewActive||(this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!1),this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds));null!=this.guide&&this.useGuidesForEvent(b)?
+(d=this.guide.move(this.bounds,d,f,e),k=!1):d=this.graph.snapDelta(d,this.bounds,!f,!1,!1);null!=this.guide&&k&&this.guide.hide();c.isConstrainedEvent(b.getEvent())&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};
mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&this.updateLivePreview(this.currentDx,this.currentDy):this.updatePreviewShape()};mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())};
-mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(d,e){var f=e.clone();c.push([e,f]);null!=e.shape&&(null==e.shape.originalPointerEvents&&(e.shape.originalPointerEvents=e.shape.pointerEvents),e.shape.pointerEvents=!1,null!=e.text&&(null==e.text.originalPointerEvents&&(e.text.originalPointerEvents=e.text.pointerEvents),e.text.pointerEvents=!1));this.graph.model.isVertex(e.cell)&&(e.x+=a,e.y+=b,this.cloning||
-(e.view.graph.cellRenderer.redraw(e,!0),e.view.invalidate(e.cell),e.invalid=!1,null!=e.control&&null!=e.control.node&&(e.control.node.style.visibility="hidden")))}));for(var d=this.graph.view.scale,e=0;e<c.length;e++){var f=c[e][0];if(this.graph.model.isEdge(f.cell)){var g=this.graph.getCellGeometry(f.cell),k=[];if(null!=g&&null!=g.points)for(var l=0;l<g.points.length;l++)null!=g.points[l]&&k.push(new mxPoint(g.points[l].x+a/d,g.points[l].y+b/d));var g=f.visibleSourceState,l=f.visibleTargetState,
-m=c[e][1].absolutePoints;null!=g&&this.isCellMoving(g.cell)?f.view.updateFixedTerminalPoint(f,g,!0,this.graph.getConnectionConstraint(f,g,!0)):(g=m[0],f.setAbsoluteTerminalPoint(new mxPoint(g.x+a,g.y+b),!0),g=null);null!=l&&this.isCellMoving(l.cell)?f.view.updateFixedTerminalPoint(f,l,!1,this.graph.getConnectionConstraint(f,l,!1)):(l=m[m.length-1],f.setAbsoluteTerminalPoint(new mxPoint(l.x+a,l.y+b),!1),l=null);f.view.updatePoints(f,k,g,l);f.view.updateFloatingTerminalPoints(f,g,l);f.view.updateEdgeLabelOffset(f);
-f.invalid=!1;this.cloning||f.view.graph.cellRenderer.redraw(f,!0)}}this.graph.view.validate();this.redrawHandles(c);this.resetPreviewStates(c)}};mxGraphHandler.prototype.redrawHandles=function(a){for(var b=0;b<a.length;b++){var c=this.graph.selectionCellsHandler.getHandler(a[b][0].cell);null!=c&&c.redraw(!0)}};mxGraphHandler.prototype.resetPreviewStates=function(a){for(var b=0;b<a.length;b++)a[b][0].setState(a[b][1])};
+mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(d,e){if(null==this.graph.view.getState(e.cell))e.destroy();else{var f=e.clone();c.push([e,f]);null!=e.shape&&(null==e.shape.originalPointerEvents&&(e.shape.originalPointerEvents=e.shape.pointerEvents),e.shape.pointerEvents=!1,null!=e.text&&(null==e.text.originalPointerEvents&&(e.text.originalPointerEvents=e.text.pointerEvents),e.text.pointerEvents=
+!1));this.graph.model.isVertex(e.cell)&&(e.x+=a,e.y+=b,this.cloning||(e.view.graph.cellRenderer.redraw(e,!0),e.view.invalidate(e.cell),e.invalid=!1,null!=e.control&&null!=e.control.node&&(e.control.node.style.visibility="hidden")))}}));if(0==c.length)this.reset();else{for(var d=this.graph.view.scale,e=0;e<c.length;e++){var f=c[e][0];if(this.graph.model.isEdge(f.cell)){var g=this.graph.getCellGeometry(f.cell),k=[];if(null!=g&&null!=g.points)for(var l=0;l<g.points.length;l++)null!=g.points[l]&&k.push(new mxPoint(g.points[l].x+
+a/d,g.points[l].y+b/d));var g=f.visibleSourceState,l=f.visibleTargetState,m=c[e][1].absolutePoints;null!=g&&this.isCellMoving(g.cell)?f.view.updateFixedTerminalPoint(f,g,!0,this.graph.getConnectionConstraint(f,g,!0)):(g=m[0],f.setAbsoluteTerminalPoint(new mxPoint(g.x+a,g.y+b),!0),g=null);null!=l&&this.isCellMoving(l.cell)?f.view.updateFixedTerminalPoint(f,l,!1,this.graph.getConnectionConstraint(f,l,!1)):(l=m[m.length-1],f.setAbsoluteTerminalPoint(new mxPoint(l.x+a,l.y+b),!1),l=null);f.view.updatePoints(f,
+k,g,l);f.view.updateFloatingTerminalPoints(f,g,l);f.view.updateEdgeLabelOffset(f);f.invalid=!1;this.cloning||f.view.graph.cellRenderer.redraw(f,!0)}}this.graph.view.validate();this.redrawHandles(c);this.resetPreviewStates(c)}}};mxGraphHandler.prototype.redrawHandles=function(a){for(var b=0;b<a.length;b++){var c=this.graph.selectionCellsHandler.getHandler(a[b][0].cell);null!=c&&c.redraw(!0)}};mxGraphHandler.prototype.resetPreviewStates=function(a){for(var b=0;b<a.length;b++)a[b][0].setState(a[b][1])};
mxGraphHandler.prototype.suspend=function(){this.suspended||(this.livePreviewUsed&&this.updateLivePreview(0,0),null!=this.shape&&(this.shape.node.style.visibility="hidden"),null!=this.guide&&this.guide.setVisible(!1),this.suspended=!0)};mxGraphHandler.prototype.resume=function(){this.suspended&&(this.suspended=null,this.livePreviewUsed&&(this.livePreviewActive=!0),null!=this.shape&&(this.shape.node.style.visibility="visible"),null!=this.guide&&this.guide.setVisible(!0))};
mxGraphHandler.prototype.resetLivePreview=function(){null!=this.allCells&&(this.allCells.visit(mxUtils.bind(this,function(a,b){null!=b.shape&&null!=b.shape.originalPointerEvents&&(b.shape.pointerEvents=b.shape.originalPointerEvents,b.shape.originalPointerEvents=null,null!=b.text&&(b.text.pointerEvents=b.text.originalPointerEvents,b.text.originalPointerEvents=null));null!=b.control&&null!=b.control.node&&"hidden"==b.control.node.style.visibility&&(b.control.node.style.visibility="");b.view.invalidate(b.cell)})),
this.graph.view.validate())};mxGraphHandler.prototype.setHandlesVisibleForCells=function(a,b){for(var c=0;c<a.length;c++){var d=this.graph.selectionCellsHandler.getHandler(a[c]);null!=d&&(d.setHandlesVisible(b),b&&d.redraw())}};mxGraphHandler.prototype.setHighlightColor=function(a){null!=this.highlight&&this.highlight.setHighlightColor(a)};
mxGraphHandler.prototype.mouseUp=function(a,b){if(!b.isConsumed())if(this.livePreviewUsed&&this.resetLivePreview(),null==this.cell||null==this.first||null==this.shape&&!this.livePreviewUsed||null==this.currentDx||null==this.currentDy)this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(b);else{var c=this.graph,d=b.getCell();if(this.connectOnDrop&&null==this.target&&null!=d&&c.getModel().isVertex(d)&&c.isCellConnectable(d)&&c.isEdgeValid(null,this.cell,d))c.connectionHandler.connect(this.cell,
d,b.getEvent());else{var d=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),e=c.getView().scale,f=this.roundLength(this.currentDx/e),e=this.roundLength(this.currentDy/e),g=this.target;c.isSplitEnabled()&&c.isSplitTarget(g,this.cells,b.getEvent())?c.splitEdge(g,this.cells,null,f,e):this.moveCells(this.cells,f,e,d,this.target,b.getEvent())}}this.cellWasClicked&&this.consumeMouseEvent(mxEvent.MOUSE_UP,b);this.reset()};
mxGraphHandler.prototype.selectDelayed=function(a){this.graph.isCellSelected(this.cell)&&this.graph.popupMenuHandler.isPopupTrigger(a)||this.graph.selectCellForEvent(this.cell,a.getEvent())};
-mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.cells,!0));this.destroyShapes();this.removeHint();this.delayedSelection=!1;this.livePreviewUsed=this.livePreviewActive=null;this.cellWasClicked=!1;this.cellCount=this.currentDy=this.currentDx=this.suspended=null;this.cloning=!1;this.cell=this.cells=this.first=this.target=this.guides=this.pBounds=this.allCells=null};
+mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!0));this.destroyShapes();this.removeHint();this.delayedSelection=!1;this.livePreviewUsed=this.livePreviewActive=null;this.cellWasClicked=!1;this.cellCount=this.currentDy=this.currentDx=this.suspended=null;this.cloning=!1;this.cell=this.cells=this.first=this.target=this.guides=this.pBounds=this.allCells=null};
mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){if(this.graph.getModel().isVertex(a)&&(a=this.graph.getView().getState(a),null!=a)){c=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(c),mxEvent.getClientY(c));var d=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);if(0!=d){b=Math.cos(-d);var d=Math.sin(-d),e=new mxPoint(a.getCenterX(),a.getCenterY());c=mxUtils.getRotatedPoint(c,b,d,e)}return!mxUtils.contains(a,c.x,c.y)}return!1};
mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){d&&(a=this.graph.getCloneableCells(a));var g=this.graph.getModel().getParent(this.cell);null==e&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(g,a,f)&&(e=this.graph.getDefaultParent());d=d&&!this.graph.isCellLocked(e||this.graph.getDefaultParent());this.graph.getModel().beginUpdate();try{g=[];if(!d&&null!=e&&this.removeEmptyParents){for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(l=0;l<a.length;l++){var m=
this.graph.model.getParent(a[l]);null==m||k.get(m)||(k.put(m,!0),g.push(m))}}a=this.graph.moveCells(a,b,c,d,e,f);b=[];for(l=0;l<g.length;l++)this.shouldRemoveParent(g[l])&&b.push(g[l]);this.graph.removeCells(b,!1)}finally{this.graph.getModel().endUpdate()}d&&this.graph.setSelectionCells(a);this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(a[0])};
-mxGraphHandler.prototype.shouldRemoveParent=function(a){var b=this.graph.view.getState(a);return null!=b&&(this.graph.model.isEdge(b.cell)||this.graph.model.isVertex(b.cell))&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)?(a=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),a==mxConstants.NONE&&b==mxConstants.NONE):!1};
+mxGraphHandler.prototype.shouldRemoveParent=function(a){a=this.graph.view.getState(a);return null!=a&&(this.graph.model.isEdge(a.cell)||this.graph.model.isVertex(a.cell))&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)};
mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.guide&&(this.guide.destroy(),this.guide=null);null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)};
mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.refreshHandler=null);this.destroyShapes();this.removeHint()};
function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
@@ -1608,10 +1610,10 @@ mxConnectionHandler.prototype.isImmediateConnectSource=function(a){return!this.g
mxConnectionHandler.prototype.isOutlineConnectEvent=function(a){var b=mxUtils.getOffset(this.graph.container),c=a.getEvent(),d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),e=document.documentElement,f=this.currentPoint.x-this.graph.container.scrollLeft+b.x-((window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)),b=this.currentPoint.y-this.graph.container.scrollTop+b.y-((window.pageYOffset||e.scrollTop)-(e.clientTop||0));return this.outlineConnect&&!mxEvent.isShiftDown(a.getEvent())&&(a.isSource(this.marker.highlight.shape)||
mxEvent.isAltDown(a.getEvent())&&null!=a.getState()||this.marker.highlight.isHighlightAt(d,c)||(f!=d||b!=c)&&null==a.getState()&&this.marker.highlight.isHighlightAt(f,b))};
mxConnectionHandler.prototype.updateCurrentState=function(a,b){this.constraintHandler.update(a,null==this.first,!1,null==this.first||a.isSource(this.marker.highlight.shape)?null:b);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
-this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error?this.currentState=this.constraintHandler.currentFocus:this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(a.getEvent())?(this.marker.reset(),this.currentState=null):(this.marker.process(a),this.currentState=this.marker.getValidState(),null==
-this.currentState||this.isCellEnabled(this.currentState.cell)||(this.currentState=null));var c=this.isOutlineConnectEvent(a);null!=this.currentState&&c&&(a.isSource(this.marker.highlight.shape)&&(b=new mxPoint(a.getGraphX(),a.getGraphY())),c=this.graph.getOutlineConstraint(b,this.currentState,a),this.constraintHandler.setFocus(a,this.currentState,!1),this.constraintHandler.currentConstraint=c,this.constraintHandler.currentPoint=b);this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&
-(c=this.graph.view.scale,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.marker.getValidState()!=a.getState()?(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,
-this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()))}};mxConnectionHandler.prototype.isCellEnabled=function(a){return!0};mxConnectionHandler.prototype.convertWaypoint=function(a){var b=this.graph.getView().getScale(),c=this.graph.getView().getTranslate();a.x=a.x/b-c.x;a.y=a.y/b-c.y};
+this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error&&(this.currentState=this.constraintHandler.currentFocus),(null!=this.error||null!=this.currentState&&!this.isCellEnabled(this.currentState.cell))&&this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(a.getEvent())?(this.marker.reset(),this.currentState=
+null):(this.marker.process(a),this.currentState=this.marker.getValidState());null==this.currentState||this.isCellEnabled(this.currentState.cell)||(this.constraintHandler.reset(),this.marker.reset(),this.currentState=null);var c=this.isOutlineConnectEvent(a);null!=this.currentState&&c&&(a.isSource(this.marker.highlight.shape)&&(b=new mxPoint(a.getGraphX(),a.getGraphY())),c=this.graph.getOutlineConstraint(b,this.currentState,a),this.constraintHandler.setFocus(a,this.currentState,!1),this.constraintHandler.currentConstraint=
+c,this.constraintHandler.currentPoint=b);this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&(c=this.graph.view.scale,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.marker.getValidState()!=a.getState()?
+(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()))}};mxConnectionHandler.prototype.isCellEnabled=function(a){return!0};mxConnectionHandler.prototype.convertWaypoint=function(a){var b=this.graph.getView().getScale(),c=this.graph.getView().getTranslate();a.x=a.x/b-c.x;a.y=a.y/b-c.y};
mxConnectionHandler.prototype.snapToPreview=function(a,b){if(!mxEvent.isAltDown(a.getEvent())&&null!=this.previous){var c=this.graph.gridSize*this.graph.view.scale/2,d=null!=this.sourceConstraint?this.first:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());Math.abs(d.x-a.getGraphX())<c&&(b.x=d.x);Math.abs(d.y-a.getGraphY())<c&&(b.y=d.y)}};
mxConnectionHandler.prototype.mouseMove=function(a,b){if(b.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{this.isEnabled()||null==this.currentState||(this.destroyIcons(),this.currentState=null);var c=this.graph.getView(),d=c.scale,e=c.translate,c=new mxPoint(b.getGraphX(),b.getGraphY());this.error=null;this.graph.isGridEnabledEvent(b.getEvent())&&(c=new mxPoint((this.graph.snap(c.x/d-e.x)+e.x)*d,(this.graph.snap(c.y/d-e.y)+e.y)*d));
this.snapToPreview(b,c);this.currentPoint=c;(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&(null!=this.shape||null==this.first||Math.abs(b.getGraphX()-this.first.x)>this.graph.tolerance||Math.abs(b.getGraphY()-this.first.y)>this.graph.tolerance)&&this.updateCurrentState(b,c);if(null!=this.first){var f=null,d=c;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(f=this.constraintHandler.currentConstraint,
@@ -1728,8 +1730,8 @@ if(d.isVertex(a)&&!e.relative||d.isEdge(a))for(c=d.getChildCount(a),e=0;e<c;e++)
mxVertexHandler.prototype.reset=function(){null!=this.sizers&&null!=this.index&&null!=this.sizers[this.index]&&"none"==this.sizers[this.index].node.style.display&&(this.sizers[this.index].node.style.display="");this.index=this.inTolerance=this.currentAlpha=null;null!=this.preview&&(this.preview.destroy(),this.preview=null);if(this.livePreviewActive&&null!=this.sizers){for(var a=0;a<this.sizers.length;a++)null!=this.sizers[a]&&(this.sizers[a].node.style.display="");null!=this.state.control&&null!=
this.state.control.node&&(this.state.control.node.style.visibility="")}if(null!=this.customHandles)for(a=0;a<this.customHandles.length;a++)this.customHandles[a].active?(this.customHandles[a].active=!1,this.customHandles[a].reset()):this.customHandles[a].setVisible(!0);null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,
this.selectionBounds.height),this.drawPreview());this.removeHint();this.redrawHandles();this.livePreviewActive=this.unscaledBounds=this.edgeHandlers=null};
-mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){e=this.graph.model.getGeometry(a);null!=e&&(d==mxEvent.LABEL_HANDLE?(c=this.graph.view.scale,b=Math.round((this.labelShape.bounds.getCenterX()-this.startX)/c),c=Math.round((this.labelShape.bounds.getCenterY()-this.startY)/c),e=e.clone(),null==e.offset?e.offset=new mxPoint(b,c):(e.offset.x+=b,e.offset.y+=c),this.graph.model.setGeometry(a,e)):null!=this.unscaledBounds&&(c=this.graph.view.scale,0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(a,
-Math.round(this.childOffsetX/c),Math.round(this.childOffsetY/c)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
+mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){b=this.graph.model.getGeometry(a);null!=b&&(d==mxEvent.LABEL_HANDLE?(d=-mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(d),c=Math.sin(d),d=this.graph.view.scale,g=mxUtils.getRotatedPoint(new mxPoint(Math.round((this.labelShape.bounds.getCenterX()-this.startX)/d),Math.round((this.labelShape.bounds.getCenterY()-this.startY)/d)),g,c),b=b.clone(),null==b.offset?b.offset=g:(b.offset.x+=g.x,b.offset.y+=g.y),this.graph.model.setGeometry(a,
+b)):null!=this.unscaledBounds&&(d=this.graph.view.scale,0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(a,Math.round(this.childOffsetX/d),Math.round(this.childOffsetY/d)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){e=null!=e?e&&this.graph.gridEnabled:this.graph.gridEnabled;if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var m=a.width,n=a.height,p=a.x-g.x*f,q=p+m;a=a.y-g.y*f;var r=a+n,t=p+m/2,u=a+n/2;4<d?(r+=c,r=e?this.graph.snap(r/f)*f:Math.round(r/f)*f):3>d&&(a+=c,a=e?this.graph.snap(a/f)*f:Math.round(a/f)*f);if(0==d||
3==d||5==d)p+=b,p=e?this.graph.snap(p/f)*f:Math.round(p/f)*f;else if(2==d||4==d||7==d)q+=b,q=e?this.graph.snap(q/f)*f:Math.round(q/f)*f;e=q-p;c=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=q-e,a=r-c)));l&&(e+=e-m,c+=c-n,p+=t-(p+e/2),a+=u-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*
f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));return d};mxVertexHandler.prototype.redraw=function(a){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.drawPreview();a||this.redrawHandles()};
@@ -1738,10 +1740,10 @@ mxVertexHandler.prototype.redrawHandles=function(){var a=this.tolerance;this.ver
this.verticalOffset/2,b.height+=this.verticalOffset;8<=this.sizers.length&&(b.width<2*this.sizers[0].bounds.width+2*a||b.height<2*this.sizers[0].bounds.height+2*a?(this.sizers[0].node.style.display="none",this.sizers[2].node.style.display="none",this.sizers[5].node.style.display="none",this.sizers[7].node.style.display="none"):(this.sizers[0].node.style.display="",this.sizers[2].node.style.display="",this.sizers[5].node.style.display="",this.sizers[7].node.style.display=""))}a=b.x+b.width;c=b.y+b.height;
if(this.singleSizer)this.moveSizerTo(this.sizers[0],a,c);else{var d=b.x+b.width/2,e=b.y+b.height/2;if(8<=this.sizers.length){var f="nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),m=new mxPoint(b.getCenterX(),b.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),k,l,m);this.moveSizerTo(this.sizers[0],n.x,n.y);this.sizers[0].setCursor(f[mxUtils.mod(0+
g,f.length)]);n.x=d;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[1],n.x,n.y);this.sizers[1].setCursor(f[mxUtils.mod(1+g,f.length)]);n.x=a;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[2],n.x,n.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);n.x=b.x;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[3],n.x,n.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);n.x=a;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[4],
-n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);this.moveSizerTo(this.sizers[8],
-d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),
-k,l,m),null!=this.rotationShape.node&&(this.moveSizerTo(this.rotationShape,n.x,n.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()?"hidden":""));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)a=this.customHandles[b].shape.node.style.display,
-this.customHandles[b].redraw(),this.customHandles[b].shape.node.style.display=a,this.customHandles[b].shape.node.style.visibility=this.graph.isEditing()?"hidden":"";this.updateParentHighlight()};mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)};
+n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);n.x=d+
+this.state.absoluteOffset.x;n.y=e+this.state.absoluteOffset.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[8],n.x,n.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),
+m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),k,l,m),null!=this.rotationShape.node&&(this.moveSizerTo(this.rotationShape,n.x,n.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()?"hidden":""));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();
+if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)a=this.customHandles[b].shape.node.style.display,this.customHandles[b].redraw(),this.customHandles[b].shape.node.style.display=a,this.customHandles[b].shape.node.style.visibility=this.graph.isEditing()?"hidden":"";this.updateParentHighlight()};mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)};
mxVertexHandler.prototype.updateParentHighlight=function(){if(null!=this.selectionBorder)if(null!=this.parentHighlight){var a=this.graph.model.getParent(this.state.cell);if(this.graph.model.isVertex(a)){var a=this.graph.view.getState(a),b=this.parentHighlight.bounds;null==a||b.x==a.x&&b.y==a.y&&b.width==a.width&&b.height==a.height||(this.parentHighlight.bounds=a,this.parentHighlight.redraw())}else this.parentHighlight.destroy(),this.parentHighlight=null}else this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))))};
mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw());this.selectionBorder.bounds=this.bounds;this.selectionBorder.redraw();null!=this.parentHighlight&&this.parentHighlight.redraw()};
@@ -1753,9 +1755,10 @@ mxEdgeHandler.prototype.init=function(){this.graph=this.state.view.graph;this.ma
mxEvent.redirectMouseEvents(this.shape.node,this.graph,this.state);this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container;if(!this.preferHtml){var a=this.state.getVisibleTerminalState(!0);null!=a&&(this.preferHtml=null!=a.text&&a.text.node.parentNode==this.graph.container);this.preferHtml||(a=this.state.getVisibleTerminalState(!1),null!=a&&(this.preferHtml=null!=a.text&&a.text.node.parentNode==this.graph.container))}this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))));if(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||
0>=mxGraphHandler.prototype.maxCells)this.bends=this.createBends(),this.isVirtualBendsEnabled()&&(this.virtualBends=this.createVirtualBends());this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y);this.labelShape=this.createLabelHandleShape();this.initBend(this.labelShape);this.labelShape.setCursor(mxConstants.CURSOR_LABEL_HANDLE);this.customHandles=this.createCustomHandles();this.redraw()};mxEdgeHandler.prototype.createCustomHandles=function(){return null};
-mxEdgeHandler.prototype.isVirtualBendsEnabled=function(a){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)};mxEdgeHandler.prototype.isAddPointEvent=function(a){return mxEvent.isShiftDown(a)};mxEdgeHandler.prototype.isRemovePointEvent=function(a){return mxEvent.isShiftDown(a)};
-mxEdgeHandler.prototype.getSelectionPoints=function(a){return a.absolutePoints};mxEdgeHandler.prototype.createParentHighlightShape=function(a){a=new mxRectangleShape(a,null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};mxEdgeHandler.prototype.createSelectionShape=function(a){a=new this.state.shape.constructor;a.outline=!0;a.apply(this.state);a.isDashed=this.isSelectionDashed();a.stroke=this.getSelectionColor();a.isShadow=!1;return a};
-mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH};mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED};mxEdgeHandler.prototype.isConnectableCell=function(a){return!0};mxEdgeHandler.prototype.getCellAt=function(a,b){return this.outlineConnect?null:this.graph.getCellAt(a,b)};
+mxEdgeHandler.prototype.isVirtualBendsEnabled=function(a){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)};mxEdgeHandler.prototype.isCellEnabled=function(a){return!0};mxEdgeHandler.prototype.isAddPointEvent=function(a){return mxEvent.isShiftDown(a)};
+mxEdgeHandler.prototype.isRemovePointEvent=function(a){return mxEvent.isShiftDown(a)};mxEdgeHandler.prototype.getSelectionPoints=function(a){return a.absolutePoints};mxEdgeHandler.prototype.createParentHighlightShape=function(a){a=new mxRectangleShape(a,null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};
+mxEdgeHandler.prototype.createSelectionShape=function(a){a=new this.state.shape.constructor;a.outline=!0;a.apply(this.state);a.isDashed=this.isSelectionDashed();a.stroke=this.getSelectionColor();a.isShadow=!1;return a};mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH};mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED};
+mxEdgeHandler.prototype.isConnectableCell=function(a){return!0};mxEdgeHandler.prototype.getCellAt=function(a,b){return this.outlineConnect?null:this.graph.getCellAt(a,b)};
mxEdgeHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph),b=this;a.getCell=function(a){var c=mxCellMarker.prototype.getCell.apply(this,arguments);c!=b.state.cell&&null!=c||null==b.currentPoint||(c=b.graph.getCellAt(b.currentPoint.x,b.currentPoint.y));if(null!=c&&!this.graph.isCellConnectable(c)){var e=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(e)&&this.graph.isCellConnectable(e)&&(c=e)}e=b.graph.getModel();if(this.graph.isSwimlane(c)&&null!=b.currentPoint&&
this.graph.hitsSwimlaneContent(c,b.currentPoint.x,b.currentPoint.y)||!b.isConnectableCell(c)||c==b.state.cell||null!=c&&!b.graph.connectableEdges&&e.isEdge(c)||e.isAncestor(b.state.cell,c))c=null;this.graph.isCellConnectable(c)||(c=null);return c};a.isValidState=function(a){var c=b.graph.getModel(),c=b.graph.view.getTerminalPort(a,b.graph.view.getState(c.getTerminal(b.state.cell,!b.isSource)),!b.isSource),c=null!=c?c.cell:null;b.error=b.validateConnection(b.isSource?a.cell:c,b.isSource?c:a.cell);
return null==b.error};return a};mxEdgeHandler.prototype.validateConnection=function(a,b){return this.graph.getEdgeValidationError(this.state.cell,a,b)};
@@ -1777,8 +1780,8 @@ mxEdgeHandler.prototype.isSnapToTerminalsEvent=function(a){return this.snapToTer
mxEdgeHandler.prototype.getPointForEvent=function(a){var b=this.graph.getView(),c=b.scale,d=new mxPoint(this.roundLength(a.getGraphX()/c)*c,this.roundLength(a.getGraphY()/c)*c),e=this.getSnapToTerminalTolerance(),f=!1,g=!1;if(0<e&&this.isSnapToTerminalsEvent(a)){var k=function(a){null!=a&&l.call(this,new mxPoint(b.getRoutingCenterX(a),b.getRoutingCenterY(a)))},l=function(a){if(null!=a){var b=a.x;Math.abs(d.x-b)<e&&(d.x=b,f=!0);a=a.y;Math.abs(d.y-a)<e&&(d.y=a,g=!0)}};k.call(this,this.state.getVisibleTerminalState(!0));
k.call(this,this.state.getVisibleTerminalState(!1));if(null!=this.state.absolutePoints)for(k=0;k<this.state.absolutePoints.length;k++)l.call(this,this.state.absolutePoints[k])}this.graph.isGridEnabledEvent(a.getEvent())&&(a=b.translate,f||(d.x=(this.graph.snap(d.x/c-a.x)+a.x)*c),g||(d.y=(this.graph.snap(d.y/c-a.y)+a.y)*c));return d};
mxEdgeHandler.prototype.getPreviewTerminalState=function(a){this.constraintHandler.update(a,this.isSource,!0,a.isSource(this.marker.highlight.shape)?null:this.currentPoint);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)return null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
-this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),a=this.graph.getModel(),a=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(a.getTerminal(this.state.cell,!this.isSource)),!this.isSource),a=null!=a?a.cell:null,this.error=this.validateConnection(this.isSource?this.constraintHandler.currentFocus.cell:a,this.isSource?a:this.constraintHandler.currentFocus.cell),a=null,null==this.error?a=this.constraintHandler.currentFocus:
-this.constraintHandler.reset(),a;if(this.graph.isIgnoreTerminalEvent(a.getEvent()))return this.marker.reset(),null;this.marker.process(a);a=this.marker.getValidState();null!=a&&this.graph.isCellLocked(a.cell)&&this.marker.reset();return this.marker.getValidState()};
+this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),a=this.graph.getModel(),a=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(a.getTerminal(this.state.cell,!this.isSource)),!this.isSource),a=null!=a?a.cell:null,this.error=this.validateConnection(this.isSource?this.constraintHandler.currentFocus.cell:a,this.isSource?a:this.constraintHandler.currentFocus.cell),a=null,null==this.error&&(a=this.constraintHandler.currentFocus),
+(null!=this.error||null!=a&&!this.isCellEnabled(a.cell))&&this.constraintHandler.reset(),a;if(this.graph.isIgnoreTerminalEvent(a.getEvent()))return this.marker.reset(),null;this.marker.process(a);a=this.marker.getValidState();null==a||this.isCellEnabled(a.cell)||(this.constraintHandler.reset(),this.marker.reset());return this.marker.getValidState()};
mxEdgeHandler.prototype.getPreviewPoints=function(a,b){var c=this.graph.getCellGeometry(this.state.cell),c=null!=c.points?c.points.slice():null,d=new mxPoint(a.x,a.y),e=null;if(this.isSource||this.isTarget)this.graph.resetEdgesOnConnect&&(c=null);else if(this.convertPoint(d,!1),null==c)c=[d];else{this.index<=mxEvent.VIRTUAL_HANDLE&&c.splice(mxEvent.VIRTUAL_HANDLE-this.index,0,d);if(!this.isSource&&!this.isTarget){for(var f=0;f<this.bends.length;f++)if(f!=this.index){var g=this.bends[f];null!=g&&mxUtils.contains(g.bounds,
a.x,a.y)&&(this.index<=mxEvent.VIRTUAL_HANDLE?c.splice(mxEvent.VIRTUAL_HANDLE-this.index,1):c.splice(this.index-1,1),e=c)}if(null==e&&this.straightRemoveEnabled&&(null==b||!mxEvent.isAltDown(b.getEvent()))){f=this.graph.tolerance*this.graph.tolerance;g=this.state.absolutePoints.slice();g[this.index]=a;var k=this.state.getVisibleTerminalState(!0);if(null!=k){var l=this.graph.getConnectionConstraint(this.state,k,!0);if(null==l||null==this.graph.getConnectionPoint(k,l))g[0]=new mxPoint(k.view.getRoutingCenterX(k),
k.view.getRoutingCenterY(k))}k=this.state.getVisibleTerminalState(!1);null!=k&&(l=this.graph.getConnectionConstraint(this.state,k,!1),null==l||null==this.graph.getConnectionPoint(k,l))&&(g[g.length-1]=new mxPoint(k.view.getRoutingCenterX(k),k.view.getRoutingCenterY(k)));l=this.index;0<l&&l<g.length-1&&mxUtils.ptSegDistSq(g[l-1].x,g[l-1].y,g[l+1].x,g[l+1].y,a.x,a.y)<f&&(c.splice(l-1,1),e=c)}}null==e&&this.index>mxEvent.VIRTUAL_HANDLE&&(c[this.index-1]=d)}return null!=e?e:c};
@@ -1791,7 +1794,7 @@ m.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.ST
this.graph.allowDanglingEdges?null:""));a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)};
mxEdgeHandler.prototype.mouseMove=function(a,b){if(null!=this.index&&null!=this.marker){this.currentPoint=this.getPointForEvent(b);this.error=null;!this.graph.isIgnoreTerminalEvent(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())&&null!=this.snapPoint&&(Math.abs(this.snapPoint.x-this.currentPoint.x)<Math.abs(this.snapPoint.y-this.currentPoint.y)?this.currentPoint.x=this.snapPoint.x:this.currentPoint.y=this.snapPoint.y);if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE)null!=
this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(b);else if(this.isLabel)this.label.x=this.currentPoint.x,this.label.y=this.currentPoint.y;else{this.points=this.getPreviewPoints(this.currentPoint,b);var c=this.isSource||this.isTarget?this.getPreviewTerminalState(b):null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint)this.currentPoint=this.constraintHandler.currentPoint.clone();
-else if(this.outlineConnect){var d=this.isSource||this.isTarget?this.isOutlineConnectEvent(b):!1;d?c=this.marker.highlight.state:null!=c&&c!=b.getState()&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint(),c=null)}null!=c&&this.graph.isCellLocked(c.cell)&&(c=null,this.marker.reset());var e=this.clonePreviewState(this.currentPoint,null!=c?c.cell:null);this.updatePreviewState(e,this.currentPoint,c,b,d);this.setPreviewColor(null==this.error?
+else if(this.outlineConnect){var d=this.isSource||this.isTarget?this.isOutlineConnectEvent(b):!1;d?c=this.marker.highlight.state:null!=c&&c!=b.getState()&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint(),c=null)}null==c||this.isCellEnabled(c.cell)||(c=null,this.marker.reset());var e=this.clonePreviewState(this.currentPoint,null!=c?c.cell:null);this.updatePreviewState(e,this.currentPoint,c,b,d);this.setPreviewColor(null==this.error?
this.marker.validColor:this.marker.invalidColor);this.abspoints=e.absolutePoints;this.active=!0}this.updateHint(b,this.currentPoint);this.drawPreview();mxEvent.consume(b.getEvent());b.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(b)&&b.consume(!1)};
mxEdgeHandler.prototype.mouseUp=function(a,b){if(null!=this.index&&null!=this.marker){var c=this.state.cell,d=this.index;this.index=null;if(b.getX()!=this.startX||b.getY()!=this.startY){var e=!this.graph.isIgnoreTerminalEvent(b.getEvent())&&this.graph.isCloneEvent(b.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable();if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(d<=mxEvent.CUSTOM_HANDLE&&d>mxEvent.VIRTUAL_HANDLE){if(null!=this.customHandles){var f=
this.graph.getModel();f.beginUpdate();try{this.customHandles[mxEvent.CUSTOM_HANDLE-d].execute()}finally{f.endUpdate()}}}else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget)if(d=null,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(d=this.constraintHandler.currentFocus.cell),null==d&&this.marker.hasValidState()&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&"transparent"!=this.marker.highlight.shape.stroke&&
@@ -2048,8 +2051,8 @@ Editor.fullscreenLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAA
Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.hintOffset=20;Editor.popupsAllowed=!0;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;
Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.defaultGraphOverflow="hidden";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))};
Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a};
-Editor.prototype.editAsNew=function(a,c){var d=null!=c?"?title="+encodeURIComponent(c):"";null!=urlParams.ui&&(d+=(0<d.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(b){"ready"==b.data&&b.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(d+
-(0<d.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(d)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,c){var d=new Graph(null,c,null,null,a);d.transparentBackground=!1;this.chromeless||(d.isBlankLink=function(a){return!this.isExternalProtocol(a)});return d};
+Editor.prototype.editAsNew=function(a,c){var d=null!=c?"?title="+encodeURIComponent(c):"";null!=urlParams.ui&&(d+=(0<d.length?"&":"?")+"ui="+urlParams.ui);if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var b=null,f=mxUtils.bind(this,function(c){"ready"==c.data&&c.source==b&&(mxEvent.removeListener(window,"message",f),b.postMessage(a,"*"))});mxEvent.addListener(window,"message",f);b=this.graph.openLink(this.getEditBlankUrl(d+(0<d.length?"&":"?")+
+"client=1"),null,!0)}else this.graph.openLink(this.getEditBlankUrl(d)+"#R"+encodeURIComponent(a))};Editor.prototype.createGraph=function(a,c){var d=new Graph(null,c,null,null,a);d.transparentBackground=!1;this.chromeless||(d.isBlankLink=function(a){return!this.isExternalProtocol(a)});return d};
Editor.prototype.resetGraph=function(){this.graph.gridEnabled=!this.isChromelessView()||"1"==urlParams.grid;this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=null;this.graph.pageScale=mxGraph.prototype.pageScale;
this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)};
Editor.prototype.readGraphState=function(a){this.graph.gridEnabled="0"!=a.getAttribute("grid")&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.gridSize=parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize;this.graph.graphHandler.guidesEnabled="0"!=a.getAttribute("guides");this.graph.setTooltips("0"!=a.getAttribute("tooltips"));this.graph.setConnectable("0"!=a.getAttribute("connect"));this.graph.connectionArrowsEnabled="0"!=a.getAttribute("arrows");this.graph.foldingEnabled=
@@ -2064,12 +2067,12 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManager;this.undoListener=function(a,d){c.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,c){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,c){var d=a.getSelectionCellsForChanges(c.getProperty("edit").changes);a.getModel();for(var f=[],g=0;g<d.length;g++)null!=a.view.getState(d[g])&&f.push(d[g]);a.setSelectionCells(f)};
c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};
OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,c,d,b,f,e,h,g,k,l,m){var n=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(n=80);d+=n;b+=n;var p=d,q=b,u=mxUtils.getDocumentSize();null!=window.innerHeight&&(u.height=window.innerHeight);var v=u.height,t=Math.max(1,Math.round((u.width-d-64)/2)),w=Math.max(1,Math.round((v-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(c.style.maxHeight="100%");d=null!=document.body?Math.min(d,document.body.scrollWidth-64):d;b=Math.min(b,v-64);0<a.dialogs.length&&(this.zIndex+=
-2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=v+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));u=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=u.x+"px";this.bg.style.top=u.y+"px";t+=u.x;w+=u.y;f&&document.body.appendChild(this.bg);var r=a.createDiv(k?"geTransDialog":
-"geDialog");f=this.getPosition(t,w,d,b);t=f.x;w=f.y;r.style.width=d+"px";r.style.height=b+"px";r.style.left=t+"px";r.style.top=w+"px";r.style.zIndex=this.zIndex;r.appendChild(c);document.body.appendChild(r);!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=w+14+"px",e.style.left=t+d+38-n+"px",e.style.zIndex=
-this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!m)){var x=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){x=!0}),null,mxUtils.bind(this,function(b){x&&(a.hideDialog(!0),x=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var e=l();null!=e&&(p=d=e.w,q=b=e.h)}e=mxUtils.getDocumentSize();v=e.height;this.bg.style.height=v+"px";t=Math.max(1,Math.round((e.width-d-64)/2));w=Math.max(1,
-Math.round((v-b-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-64):p;b=Math.min(q,v-64);e=this.getPosition(t,w,d,b);t=e.x;w=e.y;r.style.left=t+"px";r.style.top=w+"px";r.style.width=d+"px";r.style.height=b+"px";!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=w+14+"px",this.dialogImg.style.left=t+d+38-n+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=
-r;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
+function Dialog(a,c,d,b,f,e,h,g,k,l,m){var n=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(n=80);d+=n;b+=n;var p=d,q=b,u=mxUtils.getDocumentSize();null!=window.innerHeight&&(u.height=window.innerHeight);var v=u.height,r=Math.max(1,Math.round((u.width-d-64)/2)),w=Math.max(1,Math.round((v-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(c.style.maxHeight="100%");d=null!=document.body?Math.min(d,document.body.scrollWidth-64):d;b=Math.min(b,v-64);0<a.dialogs.length&&(this.zIndex+=
+2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=v+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));u=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=u.x+"px";this.bg.style.top=u.y+"px";r+=u.x;w+=u.y;f&&document.body.appendChild(this.bg);var t=a.createDiv(k?"geTransDialog":
+"geDialog");f=this.getPosition(r,w,d,b);r=f.x;w=f.y;t.style.width=d+"px";t.style.height=b+"px";t.style.left=r+"px";t.style.top=w+"px";t.style.zIndex=this.zIndex;t.appendChild(c);document.body.appendChild(t);!g&&c.clientHeight>t.clientHeight-64&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=w+14+"px",e.style.left=r+d+38-n+"px",e.style.zIndex=
+this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!m)){var x=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){x=!0}),null,mxUtils.bind(this,function(b){x&&(a.hideDialog(!0),x=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var e=l();null!=e&&(p=d=e.w,q=b=e.h)}e=mxUtils.getDocumentSize();v=e.height;this.bg.style.height=v+"px";r=Math.max(1,Math.round((e.width-d-64)/2));w=Math.max(1,
+Math.round((v-b-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-64):p;b=Math.min(q,v-64);e=this.getPosition(r,w,d,b);r=e.x;w=e.y;t.style.left=r+"px";t.style.top=w+"px";t.style.width=d+"px";t.style.height=b+"px";!g&&c.clientHeight>t.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=w+14+"px",this.dialogImg.style.left=r+d+38-n+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=
+t;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
@@ -2097,13 +2100,13 @@ e.appendChild(l);mxUtils.write(e,mxResources.get("gridSize")+":");var n=document
":");f.appendChild(e);e=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var q=b.backgroundImage;mxEvent.addListener(p,"click",function(b){a.showBackgroundImageDialog(function(a){q=a;d()});mxEvent.consume(b)});d();e.appendChild(p);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align","right");var u=
mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&e.appendChild(u);var v=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==n.value&&b.setGridSize(parseInt(n.value));var c=new ChangePageSetup(a,m,q,k.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=q?q.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&&
c.ignoreColor&&c.ignoreImage||b.model.execute(c)});v.className="geBtn gePrimaryBtn";e.appendChild(v);a.editor.cancelFirst||e.appendChild(u);f.appendChild(e);g.appendChild(f);h.appendChild(g);this.container=h};
-PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||n!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<u.length;b++)c=u[b],r?"custom"==c.key&&(g.value=c.key,r=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
+PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||n!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<u.length;b++)c=u[b],t?"custom"==c.key&&(g.value=c.key,t=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,h.setAttribute("checked","checked"),h.defaultChecked=!0,a=h.checked=!0));a?(k.style.display="",m.style.display="none"):(n.value=d.width/100,p.value=d.height/100,e.setAttribute("checked","checked"),
g.value="custom",k.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var h=document.createElement("input");h.setAttribute("name",c);h.setAttribute("type","radio");h.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var k=document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";
k.style.height="24px";e.style.marginRight="6px";k.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);h.style.marginLeft="10px";h.style.marginRight="6px";k.appendChild(h);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));k.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var n=document.createElement("input");
-n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in");k.style.display="none";m.style.display="none";for(var q={},u=PageSetupDialog.getFormats(),v=0;v<u.length;v++){var t=u[v];q[t.key]=t;var w=document.createElement("option");w.setAttribute("value",t.key);mxUtils.write(w,t.title);g.appendChild(w)}var r=!1;f();a.appendChild(g);mxUtils.br(a);
+n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in");k.style.display="none";m.style.display="none";for(var q={},u=PageSetupDialog.getFormats(),v=0;v<u.length;v++){var r=u[v];q[r.key]=r;var w=document.createElement("option");w.setAttribute("value",r.key);mxUtils.write(w,r.title);g.appendChild(w)}var t=!1;f();a.appendChild(g);mxUtils.br(a);
a.appendChild(k);a.appendChild(m);var x=d,y=function(a,c){var e=q[g.value];null!=e.format?(n.value=e.format.width/100,p.value=e.format.height/100,m.style.display="none",k.style.display=""):(k.style.display="none",m.style.display="");e=parseFloat(n.value);if(isNaN(e)||0>=e)n.value=d.width/100;e=parseFloat(p.value);if(isNaN(e)||0>=e)p.value=d.height/100;e=new mxRectangle(0,0,Math.floor(100*parseFloat(n.value)),Math.floor(100*parseFloat(p.value)));"custom"!=g.value&&h.checked&&(e=new mxRectangle(0,0,
-e.height,e.width));c&&r||e.width==x.width&&e.height==x.height||(x=e,null!=b&&b(x))};mxEvent.addListener(c,"click",function(a){e.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){h.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(n,"blur",y);mxEvent.addListener(n,"click",y);mxEvent.addListener(p,"blur",y);mxEvent.addListener(p,"click",y);mxEvent.addListener(h,"change",y);mxEvent.addListener(e,"change",y);mxEvent.addListener(g,"change",function(a){r="custom"==g.value;
+e.height,e.width));c&&t||e.width==x.width&&e.height==x.height||(x=e,null!=b&&b(x))};mxEvent.addListener(c,"click",function(a){e.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){h.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(n,"blur",y);mxEvent.addListener(n,"click",y);mxEvent.addListener(p,"blur",y);mxEvent.addListener(p,"click",y);mxEvent.addListener(h,"change",y);mxEvent.addListener(e,"change",y);mxEvent.addListener(g,"change",function(a){t="custom"==g.value;
y(a,!0)});y();return{set:function(a){d=a;f(null,null,!0)},get:function(){return x},widthInput:n,heightInput:p}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
@@ -2116,13 +2119,13 @@ d="url("+this.gridImage+")";var f=c=0;null!=a.view.backgroundPageShape&&(f=this.
b,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],e=1;e<this.gridSteps;e++){var g=e*b;d.push("M 0 "+g+" L "+c+" "+g+" M "+g+" 0 L "+g+" "+c)}return'<svg width="'+
c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);if(null!=this.shiftPreview1){var d=
this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,g=this.pageFormat,f=d*this.pageScale,h=this.view.getBackgroundPageBounds();b=h.width;c=h.height;var k=
-new mxRectangle(d*e.x,d*e.y,g.width*f,g.height*f),l=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(c/k.height)-1:0,w=a?Math.ceil(b/k.width)-1:0,r=h.x+b,x=h.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<w&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?l:w,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
-new mxPoint(Math.round(r),Math.round(h.y+(c+1)*k.height))]:[new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(x))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
+new mxRectangle(d*e.x,d*e.y,g.width*f,g.height*f),l=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(c/k.height)-1:0,w=a?Math.ceil(b/k.width)-1:0,t=h.x+b,x=h.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<w&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?l:w,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
+new mxPoint(Math.round(t),Math.round(h.y+(c+1)*k.height))]:[new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(x))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,d){for(var e=0;e<b.length;e++)if(this.graph.getModel().isVertex(b[e])){var g=this.graph.getCellGeometry(b[e]);if(null!=g&&g.relative)return!1}return c.apply(this,arguments)};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=d.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?
!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),h=Math.floor(Math.min(0,
c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+h*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-h)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
-a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,h){var g=f.apply(this,arguments);null==h||h||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=e.apply(this,arguments),g=b.getParent(d);
-if(null==c||c!=d&&c!=g)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(g)&&b.isVertex(g)&&!this.graph.isContainer(g);)d=g,g=this.graph.getModel().getParent(d);return d};var h=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=h.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,h){var g=f.apply(this,arguments);null==h||h||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=e.apply(this,arguments),f=b.getParent(d);
+if(null==c||c!=d&&c!=f)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(f)&&b.isVertex(f)&&!this.graph.isContainer(f);)d=f,f=this.graph.getModel().getParent(d);return d};var h=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=h.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);var c=this.graph.view.getState(b);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),d=c.getParent(b);!this.graph.isCellSelected(d)&&c.isVertex(d);)b=d,d=c.getParent(b);this.graph.selectCellForEvent(b,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a);b.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&&
(a=c),c=b.getParent(c);return a}})();EditorUi=function(a,c,d){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=c||document.body;var b=this.editor.graph;b.lightbox=d;b.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!b.standalone){this.createDivs();this.createUi();this.refresh();var f=mxUtils.bind(this,function(a){null==a&&(a=window.event);return b.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=
@@ -2132,25 +2135,25 @@ f,this.menubarContainer.onmousedown=f,this.toolbarContainer.onselectstart=f,this
function(a,b){return e||h.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||b.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(e=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";e=!1});mxEvent.addListener(document,"keyup",
this.keyupHandler);var g=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent=function(a){return g.apply(this,arguments)||e||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var k=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return k.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&
mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var l=b.isZoomWheelEvent;b.isZoomWheelEvent=function(){return e||l.apply(this,arguments)};var m=!1,n=null,p=null,q=null,u=mxUtils.bind(this,function(){if(null!=this.toolbar&&m!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));a=d}a=this.toolbar.fontMenu;
-d=this.toolbar.sizeMenu;if(null==q)this.toolbar.createTextToolbar();else{for(var e=0;e<q.length;e++)this.toolbar.container.appendChild(q[e]);this.toolbar.fontMenu=n;this.toolbar.sizeMenu=p}m=b.cellEditor.isContentEditing();n=a;p=d;q=c}}),v=this,t=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){t.apply(this,arguments);u();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=b.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=
+d=this.toolbar.sizeMenu;if(null==q)this.toolbar.createTextToolbar();else{for(var e=0;e<q.length;e++)this.toolbar.container.appendChild(q[e]);this.toolbar.fontMenu=n;this.toolbar.sizeMenu=p}m=b.cellEditor.isContentEditing();n=a;p=d;q=c}}),v=this,r=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){r.apply(this,arguments);u();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=b.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=
c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=v.toolbar)){var d=c.fontFamily;"'"==d.charAt(0)&&(d=d.substring(1));"'"==d.charAt(d.length-1)&&(d=d.substring(0,d.length-1));v.toolbar.setFontName(d);v.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var w=
-b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){w.apply(this,arguments);u()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default";if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(G){}var r=b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();r.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,
+b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){w.apply(this,arguments);u()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default";if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(G){}var t=b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();t.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,
b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};var x="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){try{var c=b.view.getState(a);if(null!=c){var d=a.clone();d.style="";var e=
-b.getCellStyle(d);a=[];var d=[],f;for(f in c.style)e[f]!=c.style[f]&&(a.push(c.style[f]),d.push(f));for(var g=b.getModel().getStyle(c.cell),h=null!=g?g.split(";"):[],g=0;g<h.length;g++){var k=h[g],l=k.indexOf("=");if(0<=l){f=k.substring(0,l);var m=k.substring(l+1);null!=e[f]&&"none"==m&&(a.push(m),d.push(f))}}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",a,"cells",[c.cell]))}}catch(M){this.handleError(M)}};
+b.getCellStyle(d);a=[];var d=[],f;for(f in c.style)e[f]!=c.style[f]&&(a.push(c.style[f]),d.push(f));for(var g=b.getModel().getStyle(c.cell),h=null!=g?g.split(";"):[],g=0;g<h.length;g++){var k=h[g],l=k.indexOf("=");if(0<=l){f=k.substring(0,l);var m=k.substring(l+1);null!=e[f]&&"none"==m&&(a.push(m),d.push(f))}}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",a,"cells",[c.cell]))}}catch(N){this.handleError(N)}};
this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var D=["fontFamily","fontSize","fontColor"],B="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),E=["startArrow startFill startSize sourcePerimeterSpacing endArrow endFill endSize targetPerimeterSpacing".split(" "),["strokeColor","strokeWidth"],
-["fillColor","gradientColor"],D,["opacity"],["align"],["html"]];for(a=0;a<E.length;a++)for(c=0;c<E[a].length;c++)x.push(E[a][c]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(x,y[a])&&x.push(y[a]);var A=function(a,c){var d=b.getModel();d.beginUpdate();try{if(c)for(var e=d.isEdge(k),f=e?b.currentEdgeStyle:b.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],g=0;g<e.length;g++){var h=f[e[g]];null!=h&&b.setCellStyles(e[g],h,a)}else for(h=0;h<a.length;h++){for(var k=a[h],l=d.getStyle(k),m=null!=l?
-l.split(";"):[],n=x.slice(),g=0;g<m.length;g++){var p=m[g],u=p.indexOf("=");if(0<=u){var z=p.substring(0,u),N=mxUtils.indexOf(n,z);0<=N&&n.splice(N,1);for(var Q=0;Q<E.length;Q++){var T=E[Q];if(0<=mxUtils.indexOf(T,z))for(var V=0;V<T.length;V++){var t=mxUtils.indexOf(n,T[V]);0<=t&&n.splice(t,1)}}}}for(var f=(e=d.isEdge(k))?b.currentEdgeStyle:b.currentVertexStyle,q=d.getStyle(k),g=0;g<n.length;g++){var z=n[g],v=f[z];null==v||"shape"==z&&!e||e&&!(0>mxUtils.indexOf(y,z))||(q=mxUtils.setStyle(q,z,v))}d.setStyle(k,
-q)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){A(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){A(b.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));A(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),e=!1,g=!1;if(0<d.length)for(var f=0;f<d.length&&(e=b.getModel().isVertex(d[f])||
-e,!(g=b.getModel().isEdge(d[f])||g)||!e);f++);else g=e=!0;for(var d=c.getProperty("keys"),h=c.getProperty("values"),f=0;f<d.length;f++){var k=0<=mxUtils.indexOf(D,d[f]);if("strokeColor"!=d[f]||null!=h[f]&&"none"!=h[f])if(0<=mxUtils.indexOf(y,d[f]))g||0<=mxUtils.indexOf(B,d[f])?null==h[f]?delete b.currentEdgeStyle[d[f]]:b.currentEdgeStyle[d[f]]=h[f]:e&&0<=mxUtils.indexOf(x,d[f])&&(null==h[f]?delete b.currentVertexStyle[d[f]]:b.currentVertexStyle[d[f]]=h[f]);else if(0<=mxUtils.indexOf(x,d[f])){if(e||
-k)null==h[f]?delete b.currentVertexStyle[d[f]]:b.currentVertexStyle[d[f]]=h[f];if(g||k||0<=mxUtils.indexOf(B,d[f]))null==h[f]?delete b.currentEdgeStyle[d[f]]:b.currentEdgeStyle[d[f]]=h[f]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==
-b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?
-"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=
-this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||
-"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),e=c.getProperty("parent");b.getModel().isLayer(e)&&
-!b.isCellVisible(e)&&null!=d&&0<d.length&&b.getModel().setVisible(e,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=
-mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",
-mxUtils.bind(this,function(){b.view.validateBackground()}));b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph()}this.init();b.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;
-EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
+["fillColor","gradientColor"],D,["opacity"],["align"],["html"]];for(a=0;a<E.length;a++)for(c=0;c<E[a].length;c++)x.push(E[a][c]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(x,y[a])&&x.push(y[a]);var A=function(a,c){var d=b.getModel();d.beginUpdate();try{for(var e=0;e<a.length;e++){var f=a[e],g;if(c)g=["fontSize","fontFamily","fontColor"];else{var h=d.getStyle(f),k=null!=h?h.split(";"):[];g=x.slice();for(var l=0;l<k.length;l++){var m=k[l],n=m.indexOf("=");if(0<=n){var p=m.substring(0,n),u=mxUtils.indexOf(g,
+p);0<=u&&g.splice(u,1);for(var z=0;z<E.length;z++){var M=E[z];if(0<=mxUtils.indexOf(M,p))for(var Q=0;Q<M.length;Q++){var U=mxUtils.indexOf(g,M[Q]);0<=U&&g.splice(U,1)}}}}}for(var V=d.isEdge(f),r=V?b.currentEdgeStyle:b.currentVertexStyle,q=d.getStyle(f),l=0;l<g.length;l++){var p=g[l],v=r[p];null==v||"shape"==p&&!V||V&&!(0>mxUtils.indexOf(y,p))||(q=mxUtils.setStyle(q,p,v))}d.setStyle(f,q)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){A(b.getProperty("cells"))});b.addListener("textInserted",
+function(a,b){A(b.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));A(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),e=!1,f=!1;if(0<d.length)for(var g=0;g<d.length&&(e=b.getModel().isVertex(d[g])||e,!(f=b.getModel().isEdge(d[g])||f)||!e);g++);else f=e=!0;for(var d=c.getProperty("keys"),h=c.getProperty("values"),
+g=0;g<d.length;g++){var k=0<=mxUtils.indexOf(D,d[g]);if("strokeColor"!=d[g]||null!=h[g]&&"none"!=h[g])if(0<=mxUtils.indexOf(y,d[g]))f||0<=mxUtils.indexOf(B,d[g])?null==h[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=h[g]:e&&0<=mxUtils.indexOf(x,d[g])&&(null==h[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=h[g]);else if(0<=mxUtils.indexOf(x,d[g])){if(e||k)null==h[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=h[g];if(f||k||0<=mxUtils.indexOf(B,d[g]))null==
+h[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=h[g]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||
+"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),
+null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],
+mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());
+null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),e=c.getProperty("parent");b.getModel().isLayer(e)&&!b.isCellVisible(e)&&null!=d&&0<d.length&&b.getModel().setVisible(e,!0)});this.gestureHandler=
+mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",
+this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));
+b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph()}this.init();b.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;
+EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide()}));mxEvent.addListener(a.container,"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,
"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var c=a.setDefaultParent,d=this;this.editor.graph.setDefaultParent=function(){c.apply(this,arguments);d.updateActionStates()};a.editLink=d.actions.get("editLink").funct;this.updateActionStates();
this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.onKeyDown=function(a){var c=this.editor.graph;9==a.which&&c.isEnabled()&&!mxEvent.isAltDown(a)&&(c.isEditing()?c.stopEditing(!1):c.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
@@ -2165,9 +2168,9 @@ EditorUi.prototype.initClipboard=function(){var a=this,c=mxClipboard.cut;mxClipb
0),p=0;p<f.length;p++)m.add(n,f[p]);b.updateCustomLinks(b.createCellMapping(d,e),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return c};var d=mxClipboard.paste;mxClipboard.paste=function(b){var c=null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):c=d.apply(this,arguments);a.updatePasteActionStates();return c};var b=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){b.apply(this,arguments);a.updatePasteActionStates()};
var f=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){f.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),b=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,
-this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;e=null!=e?e:0;var f=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),g=mxUtils.hasScrollbars(a.container),h=a.view.translate,k=a.view.scale,l=mxRectangle.fromRectangle(f);
-l.x=l.x/k-h.x;l.y=l.y/k-h.y;l.width/=k;l.height/=k;var h=a.container.scrollTop,m=a.container.scrollLeft,z=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)z+=3;var N=a.container.offsetWidth-z,z=a.container.offsetHeight-z;b=b?Math.max(.3,Math.min(c||1,N/l.width)):k;c=(N-b*l.width)/2/b;var n=0==this.lightboxVerticalDivider?0:(z-b*l.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),n=Math.max(n,0));if(g||f.width<N||f.height<z)a.view.scaleAndTranslate(b,
-Math.floor(c-l.x),Math.floor(n-l.y)),a.container.scrollTop=h*b/k,a.container.scrollLeft=m*b/k;else if(0!=d||0!=e)f=a.view.translate,a.view.setTranslate(Math.floor(f.x+d/k),Math.floor(f.y+e/k))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",
+this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;e=null!=e?e:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),f=mxUtils.hasScrollbars(a.container),h=a.view.translate,k=a.view.scale,l=mxRectangle.fromRectangle(g);
+l.x=l.x/k-h.x;l.y=l.y/k-h.y;l.width/=k;l.height/=k;var h=a.container.scrollTop,m=a.container.scrollLeft,z=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)z+=3;var M=a.container.offsetWidth-z,z=a.container.offsetHeight-z;b=b?Math.max(.3,Math.min(c||1,M/l.width)):k;c=(M-b*l.width)/2/b;var n=0==this.lightboxVerticalDivider?0:(z-b*l.height)/this.lightboxVerticalDivider/b;f&&(c=Math.max(c,0),n=Math.max(n,0));if(f||g.width<M||g.height<z)a.view.scaleAndTranslate(b,
+Math.floor(c-l.x),Math.floor(n-l.y)),a.container.scrollTop=h*b/k,a.container.scrollLeft=m*b/k;else if(0!=d||0!=e)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/k),Math.floor(g.y+e/k))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",
mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(b){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(b){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var f=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";
this.chromelessToolbar.style.boxSizing="border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var e=mxUtils.bind(this,function(){var b=
mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=b?parseInt(b["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",e);e();var h=0,e=mxUtils.bind(this,function(a,b,c){h++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=c&&d.setAttribute("title",
@@ -2176,20 +2179,20 @@ k.style.display="inline-block";k.style.verticalAlign="top";k.style.fontFamily="H
this.currentPage)+1+" / "+this.pages.length))});g.style.paddingLeft="0px";g.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var n=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",g.style.display="",k.style.display="inline-block"):(l.style.display="none",g.style.display="none",k.style.display="none");m()});this.editor.addListener("resetGraphView",n);this.editor.addListener("pageSelected",m);e(mxUtils.bind(this,
function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(b){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,
mxResources.get("fit"));var p=null,q=null,u=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),fadeThead=null);null!=q&&(window.clearTimeout(q),fadeThead2=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;q=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";q=null}),600)}),a||200)}),v=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),fadeThead=null);null!=q&&(window.clearTimeout(q),
-fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var t=e(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=
-null}));var c=t.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
-this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){t.style.display=1<w.getChildCount(w.root)?"":"none"})}this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(b){null!=
-this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(n=0;n<this.lightboxToolbarActions.length;n++){var r=this.lightboxToolbarActions[n];e(r.fn,r.icon,r.tooltip)}null!=f.refreshBtn&&e(mxUtils.bind(this,function(a){f.refreshBtn.url?window.location.href=f.refreshBtn.url:
+fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var r=e(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=
+null}));var c=r.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){r.style.display=1<w.getChildCount(w.root)?"":"none"})}this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(b){null!=
+this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(n=0;n<this.lightboxToolbarActions.length;n++){var t=this.lightboxToolbarActions[n];e(t.fn,t.icon,t.tooltip)}null!=f.refreshBtn&&e(mxUtils.bind(this,function(a){f.refreshBtn.url?window.location.href=f.refreshBtn.url:
window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,mxResources.get("refresh",null,"Refresh"));null!=f.fullscreenBtn&&window.self!==window.top&&e(mxUtils.bind(this,function(b){f.fullscreenBtn.url?a.openLink(f.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(b)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(f.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&e(mxUtils.bind(this,
function(a){"1"==urlParams.close||f.closeBtn?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||
v(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():v(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():v(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||
v(30)}));var x=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<x&&Math.abs(this.scrollTop-a.container.scrollTop)<x&&Math.abs(this.startX-c.getGraphX())<x&&Math.abs(this.startY-c.getGraphY())<
x&&(0<parseFloat(d.chromelessToolbar.style.opacity||0)?u():v(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}y.apply(this,arguments)};if(!a.isViewer()){var D=a.sizeDidChange;a.sizeDidChange=
-function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),f=Math.ceil(2*c.y+b.height*d.height),g=a.minimumGraphSize;if(null==g||g.width!=e||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,e,f);e=c.x-b.x*d.width;c=c.y-b.y*d.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==c?D.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=
+function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),g=Math.ceil(2*c.y+b.height*d.height),f=a.minimumGraphSize;if(null==f||f.width!=e||f.height!=g)a.minimumGraphSize=new mxRectangle(0,0,e,g);e=c.x-b.x*d.width;c=c.y-b.y*d.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==c?D.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=
b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var B=a.view.getBackgroundPane(),E=a.view.getDrawPane();a.cumulativeZoomFactor=1;var A=null,G=null,J=null,H=function(b){null!=A&&window.clearTimeout(A);window.setTimeout(function(){a.isMouseDown||(A=window.setTimeout(mxUtils.bind(this,
function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),E.style.transformOrigin="",B.style.transformOrigin="",mxClient.IS_SF?(E.style.transform="scale(1)",B.style.transform="scale(1)",window.setTimeout(function(){E.style.transform="";B.style.transform=""},0)):(E.style.transform=
-"",B.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var b=new mxPoint(a.container.scrollLeft,a.container.scrollTop),e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,h=0;null!=G&&(g=a.container.offsetWidth/2-G.x+e.x,h=a.container.offsetHeight/2-G.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=J&&(g+=b.x-J.x,h+=b.y-J.y),null!=c&&d.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),h*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||
-0==g&&0==h||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-1),a.container.scrollTop-=h*(a.cumulativeZoomFactor-1)));a.cumulativeZoomFactor=1;G=J=A=null}),null!=b?b:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay))},0)};a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(G=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:
+"",B.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var b=new mxPoint(a.container.scrollLeft,a.container.scrollTop),e=mxUtils.getOffset(a.container),g=a.view.scale,f=0,h=0;null!=G&&(f=a.container.offsetWidth/2-G.x+e.x,h=a.container.offsetHeight/2-G.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=g&&(null!=J&&(f+=b.x-J.x,h+=b.y-J.y),null!=c&&d.chromelessResize(!1,null,f*(a.cumulativeZoomFactor-1),h*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||
+0==f&&0==h||(a.container.scrollLeft-=f*(a.cumulativeZoomFactor-1),a.container.scrollTop-=h*(a.cumulativeZoomFactor-1)));a.cumulativeZoomFactor=1;G=J=A=null}),null!=b?b:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay))},0)};a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(G=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:
(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/
this.view.scale;if(a.isFastZoomEnabled()){J=new mxPoint(a.container.scrollLeft,a.container.scrollTop);b=c?a.container.scrollLeft+a.container.clientWidth/2:G.x+a.container.scrollLeft-a.container.offsetLeft;var f=c?a.container.scrollTop+a.container.clientHeight/2:G.y+a.container.scrollTop-a.container.offsetTop;E.style.transformOrigin=b+"px "+f+"px";E.style.transform="scale("+this.cumulativeZoomFactor+")";B.style.transformOrigin=b+"px "+f+"px";B.style.transform="scale("+this.cumulativeZoomFactor+")";
null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(b=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(b.style,"transform-origin",(c?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":G.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(c?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":G.y+a.container.scrollTop-b.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(b.style,"transform","scale("+this.cumulativeZoomFactor+
@@ -2422,11 +2425,11 @@ Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=
d.getModel().isEdge(k)==d.getModel().isEdge(a)){var l=d.view.getState(k),m=null!=l?l.style:d.getCellStyle(c[g]);d.getModel().setStyle(k,e);if(null!=l&&"1"==mxUtils.getValue(l.style,"composite","0"))for(var n=d.model.getChildCount(k);0<=n;n--)d.model.remove(d.model.getChildAt(k,n));if(null!=m)for("umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[k]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],[k])),
n=0;n<h.length;n++){var p=m[h[n]];null!=p&&d.setCellStyles(h[n],p,[k])}f.push(k)}}}finally{d.model.endUpdate()}return f};
Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,h,g,k,l){for(l=l?null:mxEvent.isTouchEvent(e)||mxEvent.isPenEvent(e)?document.elementFromPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)):mxEvent.getSource(e);null!=l&&l!=this.container;)l=l.parentNode;if(null==l&&f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();l=null==h||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(h,a,e);var m=null;null==h||l||(h=null);if(!f.isCellLocked(h||
-f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);k=Math.round(k);if(c&&f.isSplitTarget(h,a,e)){var n=f.cloneCells(a);f.splitEdge(h,n,null,g-b.width/2,k-b.height/2);m=n}else 0<a.length&&(m=f.importCells(a,g,k,h));if(null!=f.layoutManager){var p=f.layoutManager.getLayout(h);if(null!=p){var q=f.view.scale,u=f.view.translate,v=(g+u.x)*q,t=(k+u.y)*q;for(h=0;h<m.length;h++)p.moveCell(m[h],v,t)}}!d||null!=e&&mxEvent.isShiftDown(e)||f.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(w){this.editorUi.handleError(w)}finally{f.model.endUpdate()}null!=
+f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);k=Math.round(k);if(c&&f.isSplitTarget(h,a,e)){var n=f.cloneCells(a);f.splitEdge(h,n,null,g-b.width/2,k-b.height/2);m=n}else 0<a.length&&(m=f.importCells(a,g,k,h));if(null!=f.layoutManager){var p=f.layoutManager.getLayout(h);if(null!=p){var q=f.view.scale,u=f.view.translate,v=(g+u.x)*q,r=(k+u.y)*q;for(h=0;h<m.length;h++)p.moveCell(m[h],v,r)}}!d||null!=e&&mxEvent.isShiftDown(e)||f.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(w){this.editorUi.handleError(w)}finally{f.model.endUpdate()}null!=
m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m));f.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=m&&1==m.length&&window.setTimeout(function(){f.startEditing(m[0])},0)}}mxEvent.consume(e)}})};Sidebar.prototype.createDragPreview=function(a,c){var d=document.createElement("div");d.style.border=this.dragPreviewBorder;d.style.width=a+"px";d.style.height=c+"px";return d};
Sidebar.prototype.dropAndConnect=function(a,c,d,b,f){var e=this.getDropAndConnectGeometry(a,c[b],d,c),h=[];if(null!=e){var g=this.editorUi.editor.graph,k=null;g.model.beginUpdate();try{var l=g.getCellGeometry(a),m=g.getCellGeometry(c[b]),n=g.model.getParent(a),p=!0;if(null!=g.layoutManager){var q=g.layoutManager.getLayout(n);if(null!=q&&q.constructor==mxStackLayout&&(p=!1,h=g.view.getState(n),null!=h)){var u=new mxPoint(h.x/g.view.scale-g.view.translate.x,h.y/g.view.scale-g.view.translate.y);e.x+=
-u.x;e.y+=u.y;var v=e.getTerminalPoint(!1);null!=v&&(v.x+=u.x,v.y+=u.y)}}var t=m.x,w=m.y;g.model.isEdge(c[b])&&(w=t=0);var r=g.model.isEdge(a)||null!=l&&!l.relative&&p,h=c=g.importCells(c,e.x-(r?t:0),e.y-(r?w:0),r?n:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var x=g.getCellGeometry(c[b]);x.points=null;if(null!=x.getTerminalPoint(!1))x.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(r&&g.model.isVertex(n)){var y=
-g.view.getState(n),u=y.cell!=g.view.currentRoot?new mxPoint(y.x/g.view.scale-g.view.translate.x,y.y/g.view.scale-g.view.translate.y):new mxPoint(0,0);g.cellsMoved(c,u.x,u.y,null,null,!0)}}else m=g.getCellGeometry(c[b]),t=e.x-Math.round(m.x),w=e.y-Math.round(m.y),e.x=Math.round(m.x),e.y=Math.round(m.y),g.model.setGeometry(c[b],e),g.cellsMoved(c,t,w,null,null,!0),h=c.slice(),k=1==h.length?h[0]:null,c.push(g.insertEdge(null,null,"",a,c[b],g.createCurrentEdgeStyle()));null!=f&&mxEvent.isShiftDown(f)||
+u.x;e.y+=u.y;var v=e.getTerminalPoint(!1);null!=v&&(v.x+=u.x,v.y+=u.y)}}var r=m.x,w=m.y;g.model.isEdge(c[b])&&(w=r=0);var t=g.model.isEdge(a)||null!=l&&!l.relative&&p,h=c=g.importCells(c,e.x-(t?r:0),e.y-(t?w:0),t?n:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var x=g.getCellGeometry(c[b]);x.points=null;if(null!=x.getTerminalPoint(!1))x.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(t&&g.model.isVertex(n)){var y=
+g.view.getState(n),u=y.cell!=g.view.currentRoot?new mxPoint(y.x/g.view.scale-g.view.translate.x,y.y/g.view.scale-g.view.translate.y):new mxPoint(0,0);g.cellsMoved(c,u.x,u.y,null,null,!0)}}else m=g.getCellGeometry(c[b]),r=e.x-Math.round(m.x),w=e.y-Math.round(m.y),e.x=Math.round(m.x),e.y=Math.round(m.y),g.model.setGeometry(c[b],e),g.cellsMoved(c,r,w,null,null,!0),h=c.slice(),k=1==h.length?h[0]:null,c.push(g.insertEdge(null,null,"",a,c[b],g.createCurrentEdgeStyle()));null!=f&&mxEvent.isShiftDown(f)||
g.fireEvent(new mxEventObject("cellsInserted","cells",c))}catch(D){this.editorUi.handleError(D)}finally{g.model.endUpdate()}g.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=k&&window.setTimeout(function(){g.startEditing(k)},0)}return h};
Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,h=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
g=g.clone(),g.x=(a.x-e.translate.x)/e.scale,g.y=(a.y-e.translate.y)/e.scale),e=f.defaultEdgeLength,f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=b.getTerminalPoint(!1)?(c=b.getTerminalPoint(!0),f=b.getTerminalPoint(!1),e=f.x-c.x,c=f.y-c.y,e=Math.sqrt(e*e+c*c),b.x=g.getCenterX(),b.y=g.getCenterY(),b.width=1,b.height=1,d==mxConstants.DIRECTION_NORTH?(b.height=e,b.y=g.y-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1)):d==mxConstants.DIRECTION_EAST?(b.width=e,b.x=g.x+g.width,b.setTerminalPoint(new mxPoint(b.x+
@@ -2435,26 +2438,26 @@ b.width/2+e:d==mxConstants.DIRECTION_SOUTH?b.y=b.y+g.height/2+b.height/2+e:d==mx
2):d==mxConstants.DIRECTION_WEST&&(b.x-=g.getCenterX()+g.width/2,b.y-=g.getCenterY()))))));return b};Sidebar.prototype.isDropStyleEnabled=function(a,c){var d=!0;if(null!=c&&1==a.length){var b=this.graph.getCellStyle(a[c]);null!=b&&(d=mxUtils.getValue(b,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(b,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE)}return d};Sidebar.prototype.isDropStyleTargetIgnored=function(a){return this.graph.isSwimlane(a.cell)};
Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(c=document.createElement(mxClient.VML_PREFIX+":image"),c.setAttribute("src",a.src),c.style.borderStyle="none"):(c=document.createElement("div"),c.style.backgroundImage="url("+a.src+")",c.style.backgroundPosition="center",c.style.backgroundRepeat="no-repeat"),c.style.width=a.width+4+"px",c.style.height=a.height+4+"px",c.style.display=mxClient.IS_QUIRKS?
"inline":"inline-block"):(c=mxUtils.createImage(a.src),c.style.width=a.width+"px",c.style.height=a.height+"px");null!=b&&c.setAttribute("title",b);mxUtils.setOpacity(c,a==this.refreshTarget?30:20);c.style.position="absolute";c.style.cursor="crosshair";return c}function h(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),F=d):mxUtils.setOpacity(d,d==A?30:20));return c}for(var g=this.editorUi,k=g.editor.graph,l=null,m=null,n=this,p=0;p<b.length&&(null==m&&this.editorUi.editor.graph.model.isVertex(b[p])?
-m=p:null==l&&this.editorUi.editor.graph.model.isEdge(b[p])&&null==this.editorUi.editor.graph.model.getTerminal(b[p],!0)&&(l=p),null==m||null==l);p++);var q=this.isDropStyleEnabled(b,m),u=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(a,d,e,g,f){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=r&&F==A){var h=a.isCellSelected(r.cell)?a.getSelectionCells():[r.cell],h=this.updateShapes(a.model.isEdge(r.cell)?b[0]:b[m],h);a.setSelectionCells(h)}else null!=
-b&&null!=F&&null!=t&&F!=A?(h=a.model.isEdge(t.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(t.cell,b,L,h,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,k.autoscroll,!0,!0);k.addListener(mxEvent.ESCAPE,function(a,b){u.isActive()&&u.reset()});var v=u.mouseDown;u.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(k.stopEditing(),v.apply(this,arguments))};var t=null,w=
-null,r=null,x=!1,y=e(this.triangleUp,mxResources.get("connect")),D=e(this.triangleRight,mxResources.get("connect")),B=e(this.triangleDown,mxResources.get("connect")),E=e(this.triangleLeft,mxResources.get("connect")),A=e(this.refreshTarget,mxResources.get("replace")),G=null,J=e(this.roundDrop),H=e(this.roundDrop),L=mxConstants.DIRECTION_NORTH,F=null,P=u.createPreviewElement;u.createPreviewElement=function(a){var b=P.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents="none");this.previewElementWidth=
-b.style.width;this.previewElementHeight=b.style.height;return b};var R=u.dragEnter;u.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");R.apply(this,arguments)};var S=u.dragExit;u.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");S.apply(this,arguments)};u.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=F&&this.currentGuide.hide();if(null!=this.previewElement){var d=a.view;if(null!=r&&F==A)this.previewElement.style.display=
-a.model.isEdge(r.cell)?"none":"",this.previewElement.style.left=r.x+"px",this.previewElement.style.top=r.y+"px",this.previewElement.style.width=r.width+"px",this.previewElement.style.height=r.height+"px";else if(null!=t&&null!=F){var e=a.model.isEdge(t.cell)||null==l?m:l,g=n.getDropAndConnectGeometry(t.cell,b[e],L,b),h=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),k=a.getCellGeometry(b[e]),z=a.model.getParent(t.cell),p=d.translate.x*d.scale,q=d.translate.y*d.scale;null!=h&&!h.relative&&a.model.isVertex(z)&&
+m=p:null==l&&this.editorUi.editor.graph.model.isEdge(b[p])&&null==this.editorUi.editor.graph.model.getTerminal(b[p],!0)&&(l=p),null==m||null==l);p++);var q=this.isDropStyleEnabled(b,m),u=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(a,d,e,g,f){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=t&&F==A){var h=a.isCellSelected(t.cell)?a.getSelectionCells():[t.cell],h=this.updateShapes(a.model.isEdge(t.cell)?b[0]:b[m],h);a.setSelectionCells(h)}else null!=
+b&&null!=F&&null!=r&&F!=A?(h=a.model.isEdge(r.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(r.cell,b,L,h,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,k.autoscroll,!0,!0);k.addListener(mxEvent.ESCAPE,function(a,b){u.isActive()&&u.reset()});var v=u.mouseDown;u.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(k.stopEditing(),v.apply(this,arguments))};var r=null,w=
+null,t=null,x=!1,y=e(this.triangleUp,mxResources.get("connect")),D=e(this.triangleRight,mxResources.get("connect")),B=e(this.triangleDown,mxResources.get("connect")),E=e(this.triangleLeft,mxResources.get("connect")),A=e(this.refreshTarget,mxResources.get("replace")),G=null,J=e(this.roundDrop),H=e(this.roundDrop),L=mxConstants.DIRECTION_NORTH,F=null,P=u.createPreviewElement;u.createPreviewElement=function(a){var b=P.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents="none");this.previewElementWidth=
+b.style.width;this.previewElementHeight=b.style.height;return b};var R=u.dragEnter;u.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");R.apply(this,arguments)};var S=u.dragExit;u.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");S.apply(this,arguments)};u.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=F&&this.currentGuide.hide();if(null!=this.previewElement){var d=a.view;if(null!=t&&F==A)this.previewElement.style.display=
+a.model.isEdge(t.cell)?"none":"",this.previewElement.style.left=t.x+"px",this.previewElement.style.top=t.y+"px",this.previewElement.style.width=t.width+"px",this.previewElement.style.height=t.height+"px";else if(null!=r&&null!=F){var e=a.model.isEdge(r.cell)||null==l?m:l,g=n.getDropAndConnectGeometry(r.cell,b[e],L,b),h=a.model.isEdge(r.cell)?null:a.getCellGeometry(r.cell),k=a.getCellGeometry(b[e]),z=a.model.getParent(r.cell),p=d.translate.x*d.scale,q=d.translate.y*d.scale;null!=h&&!h.relative&&a.model.isVertex(z)&&
z!=d.currentRoot&&(q=d.getState(z),p=q.x,q=q.y);h=k.x;k=k.y;a.model.isEdge(b[e])&&(k=h=0);this.previewElement.style.left=(g.x-h)*d.scale+p+"px";this.previewElement.style.top=(g.y-k)*d.scale+q+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=u.currentHighlight.state&&a.model.isEdge(u.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-
-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var K=(new Date).getTime(),I=0,M=null,U=this.editorUi.editor.graph.getCellStyle(b[0]);u.getDropTarget=mxUtils.bind(this,function(a,c,d,e){var g=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d);if(null!=g&&!this.graph.isCellConnectable(g)){var f=
-this.graph.getModel().getParent(g);this.graph.getModel().isVertex(f)&&this.graph.isCellConnectable(f)&&(g=f)}a.isCellLocked(g)&&(g=null);var k=a.view.getState(g),f=F=null;M!=k?(M=k,K=(new Date).getTime(),I=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=k&&(this.updateThread=window.setTimeout(function(){null==F&&(M=k,u.getDropTarget(a,c,d,e))},this.dropTargetDelay+10))):I=(new Date).getTime()-K;if(q&&2500>I&&null!=k&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=
-mxUtils.getValue(U,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(k.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(U,mxConstants.STYLE_SHAPE)||1500<I||a.model.isEdge(k.cell))&&I>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(k)&&(a.model.isVertex(k.cell)&&null!=
-m||a.model.isEdge(k.cell)&&a.model.isEdge(b[0]))){r=k;var l=a.model.isEdge(k.cell)?a.view.getPoint(k):new mxPoint(k.getCenterX(),k.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);A.style.left=Math.floor(l.x)+"px";A.style.top=Math.floor(l.y)+"px";null==G&&(a.container.appendChild(A),G=A.parentNode);h(c,d,l,A)}else null==r||!mxUtils.contains(r,c,d)||1500<I&&!mxEvent.isShiftDown(e)?(r=null,null!=G&&(A.parentNode.removeChild(A),
-G=null)):null!=r&&null!=G&&(l=a.model.isEdge(r.cell)?a.view.getPoint(r):new mxPoint(r.getCenterX(),r.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),h(c,d,l,A));if(x&&null!=t&&!mxEvent.isAltDown(e)&&null==F){f=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var z=t.absolutePoints;null!=J.parentNode&&(l=z[0],f.add(h(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,
-this.roundDrop.height),J)));null!=H.parentNode&&(z=z[z.length-1],f.add(h(c,d,new mxRectangle(z.x-this.roundDrop.width/2,z.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),H)))}else l=mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(l=mxRectangle.fromRectangle(t.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),z=this.graph.selectionCellsHandler.getHandler(t.cell),null!=z&&(l.x-=z.horizontalOffset/2,l.y-=z.verticalOffset/
-2,l.width+=z.horizontalOffset,l.height+=z.verticalOffset,null!=z.rotationShape&&null!=z.rotationShape.node&&"hidden"!=z.rotationShape.node.style.visibility&&"none"!=z.rotationShape.node.style.display&&null!=z.rotationShape.boundingBox&&l.add(z.rotationShape.boundingBox)),f.add(h(c,d,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),y)),f.add(h(c,d,new mxRectangle(l.x+l.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,
-this.triangleRight.height),D)),f.add(h(c,d,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),B)),f.add(h(c,d,new mxRectangle(l.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),E));null!=f&&f.grow(10)}L=mxConstants.DIRECTION_NORTH;F==D?L=mxConstants.DIRECTION_EAST:F==B||F==H?L=mxConstants.DIRECTION_SOUTH:F==E&&(L=mxConstants.DIRECTION_WEST);null!=r&&F==A&&(k=r);
-l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(g)&&null!=m||a.model.isVertex(g)&&a.isCellConnectable(g));if(null!=t&&5E3<=I||t!=k&&(null==f||!mxUtils.contains(f,c,d)||500<I&&null==F&&l))if(x=!1,t=5E3>I&&I>this.dropTargetDelay||a.model.isEdge(g)?k:null,null!=t&&l){f=[J,H,y,D,B,E];for(l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);a.model.isEdge(g)?(z=k.absolutePoints,null!=z&&(l=z[0],z=z[z.length-1],f=a.tolerance,new mxRectangle(c-f,d-f,2*f,2*f),J.style.left=Math.floor(l.x-
+f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var K=(new Date).getTime(),I=0,N=null,T=this.editorUi.editor.graph.getCellStyle(b[0]);u.getDropTarget=mxUtils.bind(this,function(a,c,d,e){var g=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d);if(null!=g&&!this.graph.isCellConnectable(g)){var f=
+this.graph.getModel().getParent(g);this.graph.getModel().isVertex(f)&&this.graph.isCellConnectable(f)&&(g=f)}a.isCellLocked(g)&&(g=null);var k=a.view.getState(g),f=F=null;N!=k?(N=k,K=(new Date).getTime(),I=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=k&&(this.updateThread=window.setTimeout(function(){null==F&&(N=k,u.getDropTarget(a,c,d,e))},this.dropTargetDelay+10))):I=(new Date).getTime()-K;if(q&&2500>I&&null!=k&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=
+mxUtils.getValue(T,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(k.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(T,mxConstants.STYLE_SHAPE)||1500<I||a.model.isEdge(k.cell))&&I>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(k)&&(a.model.isVertex(k.cell)&&null!=
+m||a.model.isEdge(k.cell)&&a.model.isEdge(b[0]))){t=k;var l=a.model.isEdge(k.cell)?a.view.getPoint(k):new mxPoint(k.getCenterX(),k.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);A.style.left=Math.floor(l.x)+"px";A.style.top=Math.floor(l.y)+"px";null==G&&(a.container.appendChild(A),G=A.parentNode);h(c,d,l,A)}else null==t||!mxUtils.contains(t,c,d)||1500<I&&!mxEvent.isShiftDown(e)?(t=null,null!=G&&(A.parentNode.removeChild(A),
+G=null)):null!=t&&null!=G&&(l=a.model.isEdge(t.cell)?a.view.getPoint(t):new mxPoint(t.getCenterX(),t.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),h(c,d,l,A));if(x&&null!=r&&!mxEvent.isAltDown(e)&&null==F){f=mxRectangle.fromRectangle(r);if(a.model.isEdge(r.cell)){var z=r.absolutePoints;null!=J.parentNode&&(l=z[0],f.add(h(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,
+this.roundDrop.height),J)));null!=H.parentNode&&(z=z[z.length-1],f.add(h(c,d,new mxRectangle(z.x-this.roundDrop.width/2,z.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),H)))}else l=mxRectangle.fromRectangle(r),null!=r.shape&&null!=r.shape.boundingBox&&(l=mxRectangle.fromRectangle(r.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),z=this.graph.selectionCellsHandler.getHandler(r.cell),null!=z&&(l.x-=z.horizontalOffset/2,l.y-=z.verticalOffset/
+2,l.width+=z.horizontalOffset,l.height+=z.verticalOffset,null!=z.rotationShape&&null!=z.rotationShape.node&&"hidden"!=z.rotationShape.node.style.visibility&&"none"!=z.rotationShape.node.style.display&&null!=z.rotationShape.boundingBox&&l.add(z.rotationShape.boundingBox)),f.add(h(c,d,new mxRectangle(r.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),y)),f.add(h(c,d,new mxRectangle(l.x+l.width,r.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,
+this.triangleRight.height),D)),f.add(h(c,d,new mxRectangle(r.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),B)),f.add(h(c,d,new mxRectangle(l.x-this.triangleLeft.width,r.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),E));null!=f&&f.grow(10)}L=mxConstants.DIRECTION_NORTH;F==D?L=mxConstants.DIRECTION_EAST:F==B||F==H?L=mxConstants.DIRECTION_SOUTH:F==E&&(L=mxConstants.DIRECTION_WEST);null!=t&&F==A&&(k=t);
+l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(g)&&null!=m||a.model.isVertex(g)&&a.isCellConnectable(g));if(null!=r&&5E3<=I||r!=k&&(null==f||!mxUtils.contains(f,c,d)||500<I&&null==F&&l))if(x=!1,r=5E3>I&&I>this.dropTargetDelay||a.model.isEdge(g)?k:null,null!=r&&l){f=[J,H,y,D,B,E];for(l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);a.model.isEdge(g)?(z=k.absolutePoints,null!=z&&(l=z[0],z=z[z.length-1],f=a.tolerance,new mxRectangle(c-f,d-f,2*f,2*f),J.style.left=Math.floor(l.x-
this.roundDrop.width/2)+"px",J.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",H.style.left=Math.floor(z.x-this.roundDrop.width/2)+"px",H.style.top=Math.floor(z.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(g,!0)&&a.container.appendChild(J),null==a.model.getTerminal(g,!1)&&a.container.appendChild(H))):(l=mxRectangle.fromRectangle(k),null!=k.shape&&null!=k.shape.boundingBox&&(l=mxRectangle.fromRectangle(k.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),
z=this.graph.selectionCellsHandler.getHandler(k.cell),null!=z&&(l.x-=z.horizontalOffset/2,l.y-=z.verticalOffset/2,l.width+=z.horizontalOffset,l.height+=z.verticalOffset,null!=z.rotationShape&&null!=z.rotationShape.node&&"hidden"!=z.rotationShape.node.style.visibility&&"none"!=z.rotationShape.node.style.display&&null!=z.rotationShape.boundingBox&&l.add(z.rotationShape.boundingBox)),y.style.left=Math.floor(k.getCenterX()-this.triangleUp.width/2)+"px",y.style.top=Math.floor(l.y-this.triangleUp.height)+
"px",D.style.left=Math.floor(l.x+l.width)+"px",D.style.top=Math.floor(k.getCenterY()-this.triangleRight.height/2)+"px",B.style.left=y.style.left,B.style.top=Math.floor(l.y+l.height)+"px",E.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",E.style.top=D.style.top,"eastwest"!=k.style.portConstraint&&(a.container.appendChild(y),a.container.appendChild(B)),a.container.appendChild(D),a.container.appendChild(E));null!=k&&(w=a.selectionCellsHandler.getHandler(k.cell),null!=w&&null!=w.setHandlesVisible&&
-w.setHandlesVisible(!1));x=!0}else for(f=[J,H,y,D,B,E],l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);x||null==w||w.setHandlesVisible(!0);g=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=r&&F==A?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);f=a.getModel();if(null!=g&&(null!=F||!a.isSplitTarget(g,b,e))){for(;null!=g&&!a.isValidDropTarget(g,b,e)&&f.isVertex(f.getParent(g));)g=f.getParent(g);if(a.view.currentRoot==g||!a.isValidRoot(g)&&0==a.getModel().getChildCount(g)||
-a.isCellLocked(g)||f.isEdge(g))g=null}return g});u.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[J,H,A,y,D,B,E],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=t&&null!=w&&w.reset();F=G=r=t=w=null};return u};
+w.setHandlesVisible(!1));x=!0}else for(f=[J,H,y,D,B,E],l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);x||null==w||w.setHandlesVisible(!0);g=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=t&&F==A?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);f=a.getModel();if(null!=g&&(null!=F||!a.isSplitTarget(g,b,e))){for(;null!=g&&!a.isValidDropTarget(g,b,e)&&f.isVertex(f.getParent(g));)g=f.getParent(g);if(a.view.currentRoot==g||!a.isValidRoot(g)&&0==a.getModel().getChildCount(g)||
+a.isCellLocked(g)||f.isEdge(g))g=null}return g});u.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[J,H,A,y,D,B,E],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=r&&null!=w&&w.reset();F=G=t=r=w=null};return u};
Sidebar.prototype.itemClicked=function(a,c,d,b){b=this.editorUi.editor.graph;b.container.focus();if(mxEvent.isAltDown(d)&&1==b.getSelectionCount()&&b.model.isVertex(b.getSelectionCell())){c=null;for(var f=0;f<a.length&&null==c;f++)b.model.isVertex(a[f])&&(c=f);null!=c&&(b.setSelectionCells(this.dropAndConnect(b.getSelectionCell(),a,mxEvent.isMetaDown(d)||mxEvent.isControlDown(d)?mxEvent.isShiftDown(d)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(d)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,c,d)),b.scrollCellToVisible(b.getSelectionCell()))}else if(mxEvent.isShiftDown(d)&&!b.isSelectionEmpty())this.updateShapes(a[0],b.getSelectionCells()),b.scrollCellToVisible(b.getSelectionCell());else{a=b.getFreeInsertPoint();if(mxEvent.isAltDown(d)){var f=b.getGraphBounds(),e=b.view.translate,h=b.view.scale;a.x=f.x/h-e.x+f.width/h+b.gridSize;a.y=f.y/h-e.y}c.drop(b,d,null,a.x,a.y,!0);null!=this.editorUi.hoverIcons&&(mxEvent.isTouchEvent(d)||mxEvent.isPenEvent(d))&&this.editorUi.hoverIcons.update(b.view.getState(b.getSelectionCell()))}};
Sidebar.prototype.addClickHandler=function(a,c,d){var b=c.mouseDown,f=c.mouseMove,e=c.mouseUp,h=this.editorUi.editor.graph.tolerance,g=null,k=this;c.mouseDown=function(c){b.apply(this,arguments);g=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));null!=this.dragElement&&(this.dragElement.style.display="none",mxUtils.setOpacity(a,50))};c.mouseMove=function(b){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=g&&(Math.abs(g.x-mxEvent.getClientX(b))>h||Math.abs(g.y-mxEvent.getClientY(b))>
@@ -2487,16 +2490,16 @@ f=0:mxUtils.contains(f,d[d.length-1].x,d[d.length-1].y)?f=e.bends.length-1:null!
null;d=c.absolutePoints;if(null!=d)if(f=new mxRectangle(b.getGraphX(),b.getGraphY()),f.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))e="move";else if(mxUtils.contains(f,d[0].x,d[0].y)||mxUtils.contains(f,d[d.length-1].x,d[d.length-1].y))e="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)n=this.view.getEdgeStyle(c),e="crosshair",n!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&
(n=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),n<d.length-1&&0<=n&&(e=0==Math.round(d[n].x-d[n+1].x)?"col-resize":"row-resize"));null!=e&&c.setCursor(e)}}),mouseUp:mxUtils.bind(this,function(a,b){l=h=g=k=null})})}this.cellRenderer.getLabelValue=function(a){var b=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(b=1!=a.style.html?mxUtils.htmlEntities(b,!1):a.view.graph.sanitizeHtml(b));return b};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);
this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var n=this.graphHandler.getGuideStates;
-this.graphHandler.getGuideStates=function(){var a=n.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),h=0;h<g.width;h++)b.push(new mxRectangle(((g.x+h)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(h=0;h<g.height;h++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+h)*c+d.y)*f,e*f,c*f));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=
+this.graphHandler.getGuideStates=function(){var a=n.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,g=this.graph.view.scale,f=this.graph.getPageLayout(),h=0;h<f.width;h++)b.push(new mxRectangle(((f.x+h)*e+d.x)*g,(f.y*c+d.y)*g,e*g,c*g));for(h=0;h<f.height;h++)b.push(new mxRectangle((f.x*e+d.x)*g,((f.y+h)*c+d.y)*g,e*g,c*g));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=
mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var b=mxGraphHandler.prototype.getCells.apply(this,arguments),c=[],d=0;d<b.length;d++){var e=this.graph.view.getState(b[d]),
e=null!=e?e.style:this.graph.getCellStyle(b[d]);"1"==mxUtils.getValue(e,"part","0")?(e=this.graph.model.getParent(b[d]),this.graph.model.isVertex(e)&&0>mxUtils.indexOf(b,e)&&c.push(e)):c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,
-arguments)};var p=new mxRubberband(this);this.getRubberband=function(){return p};var q=(new Date).getTime(),u=0,v=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;v.apply(this,arguments);a!=this.currentState?(q=(new Date).getTime(),u=0):u=(new Date).getTime()-q};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<u||(null==
-this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var r=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(a){return r.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&
+arguments)};var p=new mxRubberband(this);this.getRubberband=function(){return p};var q=(new Date).getTime(),u=0,v=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;v.apply(this,arguments);a!=this.currentState?(q=(new Date).getTime(),u=0):u=(new Date).getTime()-q};var r=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<u||(null==
+this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&r.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var t=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(a){return t.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&
mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var x=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(x=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=x)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};
var y=this.click;this.click=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!b||a.isConsumed())return y.apply(this,arguments);var c=b?a.sourceState.cell:a.getCell();null!=c&&(c=this.getLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var b=
null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(b?a.sourceState.cell:a.getCell())};var D=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return D.apply(this,arguments)};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=
-function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),h=a+c,k=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var l=g.getChildCount(e),m=0;m<l;m++){var n=g.getChildAt(e,m),p=this.view.getState(n);if(null!=p&&this.isCellVisible(n)&&"1"!=mxUtils.getValue(p.style,"locked","0")){var z=mxUtils.getValue(p.style,mxConstants.STYLE_ROTATION)||0;0!=z&&(p=mxUtils.getBoundingBox(p,z));(g.isEdge(n)||g.isVertex(n))&&p.x>=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=
-h&&f.push(n);this.getAllCells(a,b,c,d,n,f)}}}return f};var B=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:B.apply(this,arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var E=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==
+function(a,b,c,d,e,g){g=null!=g?g:[];if(0<c||0<d){var f=this.getModel(),h=a+c,k=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=f.getRoot()));if(null!=e)for(var l=f.getChildCount(e),m=0;m<l;m++){var n=f.getChildAt(e,m),p=this.view.getState(n);if(null!=p&&this.isCellVisible(n)&&"1"!=mxUtils.getValue(p.style,"locked","0")){var z=mxUtils.getValue(p.style,mxConstants.STYLE_ROTATION)||0;0!=z&&(p=mxUtils.getBoundingBox(p,z));(f.isEdge(n)||f.isVertex(n))&&p.x>=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=
+h&&g.push(n);this.getAllCells(a,b,c,d,n,g)}}}return g};var B=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:B.apply(this,arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var E=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==
b.getProperty("eventName")){var c=b.getProperty("event").getState();E=null==c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,b){if(!mxEvent.isMultiTouchEvent(b)){var c=b.getProperty("event"),d=b.getProperty("cell");null==d?(c=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c)),p.start(c.x,c.y)):null!=E?this.addSelectionCells(E):1<this.getSelectionCount()&&this.isCellSelected(d)&&
this.removeSelectionCell(d);E=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){return b&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));
Graph.touchStyle&&this.initTouch();var A=this.updateMouseEvent;this.updateMouseEvent=function(a){a=A.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
@@ -2515,7 +2518,7 @@ h&&this.model.isVertex(e))&&(f=this.view.getState(e),null!=f&&(null==k||!k(f,a,c
mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),
this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();if(null!=a)if(a=a.parentNode,this.useCssTransforms){var c=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var d=Math.round(100*this.currentScale)/100;a.setAttribute("transform","scale("+d+","+d+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/
100+")");if(c!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var h=a.style.display;a.style.display="none";a.getBBox();a.style.display=h}}catch(g){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var c=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,d=this.scale,e=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);c.apply(this,arguments);
-a&&(this.scale=d,this.translate=e)};var d=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,c,e){var b=this.useCssTransforms,f=this.view.scale,k=this.view.translate;b&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);d.apply(this,arguments);b&&(this.view.scale=f,this.view.translate=k,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
+a&&(this.scale=d,this.translate=e)};var d=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,c,e){var b=this.useCssTransforms,g=this.view.scale,f=this.view.translate;b&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);d.apply(this,arguments);b&&(this.view.scale=g,this.view.translate=f,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
Graph.prototype.labelLinkClicked=function(a,c,d){c=c.getAttribute("href");if(null!=c&&!this.isCustomLink(c)&&mxEvent.isLeftMouseButton(d)&&!mxEvent.isPopupTrigger(d)||mxEvent.isTouchEvent(d)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),a);mxEvent.consume(d)}};
Graph.prototype.openLink=function(a,c,d){var b=window;try{if("_self"==c&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==c&&window==window.top){var f=a.split("#")[1];window.location.hash=="#"+f&&(window.location.hash="");window.location.hash=f}else b=window.open(a,c),null==b||d||(b.opener=null)}catch(e){}return b};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};
Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
@@ -2533,20 +2536,20 @@ Graph.prototype.isLabelMovable=function(a){var c=this.view.getState(a),c=null!=c
Graph.prototype.getGlobalVariable=function(a){var c=null;"date"==a?c=(new Date).toLocaleDateString():"time"==a?c=(new Date).toLocaleTimeString():"timestamp"==a?c=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),c=this.formatDate(new Date,a));return c};
Graph.prototype.formatDate=function(a,c,d){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,h=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",k=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),n=a[g+"FullYear"](),p=a[g+"Hours"](),q=a[g+"Minutes"](),u=a[g+"Seconds"](),g=a[g+"Milliseconds"](),v=d?0:a.getTimezoneOffset(),t={d:k,dd:h(k),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:h(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
-12],yy:String(n).slice(2),yyyy:n,h:p%12||12,hh:h(p%12||12),H:p,HH:h(p),M:q,MM:h(q),s:u,ss:h(u),l:h(g,3),L:h(99<g?Math.round(g/10):g),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<v?"-":"+")+h(100*Math.floor(Math.abs(v)/60)+Math.abs(v)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in t?t[a]:a.slice(1,
+/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",k=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),n=a[g+"FullYear"](),p=a[g+"Hours"](),q=a[g+"Minutes"](),u=a[g+"Seconds"](),g=a[g+"Milliseconds"](),v=d?0:a.getTimezoneOffset(),r={d:k,dd:h(k),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:h(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
+12],yy:String(n).slice(2),yyyy:n,h:p%12||12,hh:h(p%12||12),H:p,HH:h(p),M:q,MM:h(q),s:u,ss:h(u),l:h(g,3),L:h(99<g?Math.round(g/10):g),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<v?"-":"+")+h(100*Math.floor(Math.abs(v)/60)+Math.abs(v)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in r?r[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var c=this.getModel(),d=c.getChildCount(c.root),b=0;b<d;b++)mxUtils.bind(this,function(b){var d=document.createElement("div");d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.style.padding="2px";d.style.whiteSpace="nowrap";var f=document.createElement("input");f.style.display="inline-block";f.setAttribute("type","checkbox");c.isVisible(b)&&(f.setAttribute("checked","checked"),
f.defaultChecked=!0);d.appendChild(f);var g=this.convertValueToString(b)||mxResources.get("background")||"Background";d.setAttribute("title",g);mxUtils.write(d,g);a.appendChild(d);mxEvent.addListener(f,"click",function(){null!=f.getAttribute("checked")?f.removeAttribute("checked"):f.setAttribute("checked","checked");c.setVisible(b,f.checked)})})(c.getChildAt(c.root,b));return a};
Graph.prototype.replacePlaceholders=function(a,c){var d=[];if(null!=c){for(var b=0;match=this.placeholderPattern.exec(c);){var f=match[0];if(2<f.length&&"%label%"!=f&&"%tooltip%"!=f){var e=null;if(match.index>b&&"%"==c.charAt(match.index-1))e=f.substring(1);else{var h=f.substring(1,f.length-1);if(0>h.indexOf("{"))for(var g=a;null==e&&null!=g;)null!=g.value&&"object"==typeof g.value&&(e=g.hasAttribute(h)?null!=g.getAttribute(h)?g.getAttribute(h):"":null),g=this.model.getParent(g);null==e&&(e=this.getGlobalVariable(h))}d.push(c.substring(b,
match.index)+(null!=e?e:f));b=match.index+f.length}}d.push(c.substring(b))}return d.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var c=[],d=0;d<a.length;d++){var b=this.model.getCell(a[d].id);null!=b&&c.push(b)}this.setSelectionCells(c)}else this.clearSelection()};
-Graph.prototype.selectCellsForConnectVertex=function(a,c,d){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=d&&(mxEvent.isTouchEvent(c)?d.update(d.getState(this.view.getState(a[1]))):d.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
+Graph.prototype.selectCellsForConnectVertex=function(a,c,d){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=d&&(mxEvent.isTouchEvent(c)?d.update(d.getState(this.view.getState(a[1]))):d.reset())):this.setSelectionCells(a)};
Graph.prototype.connectVertex=function(a,c,d,b,f,e){if(a.geometry.relative&&this.model.isEdge(a.parent))return[];e=e?e:!1;var h=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);c==mxConstants.DIRECTION_NORTH?(h.x+=a.geometry.width/2,h.y-=d):c==mxConstants.DIRECTION_SOUTH?(h.x+=a.geometry.width/2,h.y+=a.geometry.height+d):(h.x=c==mxConstants.DIRECTION_WEST?h.x-d:h.x+(a.geometry.width+
d),h.y+=a.geometry.height/2);d=this.view.getState(this.model.getParent(a));var g=this.view.scale,k=this.view.translate,l=k.x*g,k=k.y*g;null!=d&&this.model.isVertex(d.cell)&&(l=d.x,k=d.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(h.x+=a.parent.geometry.x,h.y+=a.parent.geometry.y);e=e||mxEvent.isControlDown(b)&&!f?null:this.getCellAt(l+h.x*g,k+h.y*g);this.model.isAncestor(e,a)&&(e=null);for(d=e;null!=d;){if(this.isCellLocked(d)){e=null;break}d=this.model.getParent(d)}null!=e&&(d=this.view.getState(a),
g=this.view.getState(e),null!=d&&null!=g&&mxUtils.intersects(d,g)&&(e=null));if(f=!mxEvent.isShiftDown(b)||f)c==mxConstants.DIRECTION_NORTH?h.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?h.y+=a.geometry.height/2:h.x=c==mxConstants.DIRECTION_WEST?h.x-a.geometry.width/2:h.x+a.geometry.width/2;null==e||this.isCellConnectable(e)||(d=this.getModel().getParent(e),this.getModel().isVertex(d)&&this.isCellConnectable(d)&&(e=d));if(e==a||this.model.isEdge(e)||!this.isCellConnectable(e))e=null;d=[];
this.model.beginUpdate();try{var m=null!=e&&this.isSwimlane(e),g=m?null:e;if(null==g&&f){for(var l=a,n=this.getCellGeometry(a);null!=n&&n.relative;)l=this.getModel().getParent(l),n=this.getCellGeometry(l);var p=this.view.getState(l),q=null!=p?p.style:this.getCellStyle(l);if(mxUtils.getValue(q,"part",!1)){var u=this.model.getParent(l);this.model.isVertex(u)&&(l=u)}g=this.duplicateCells([l],!1)[0];n=this.getCellGeometry(g);null!=n&&(n.x=h.x-n.width/2,n.y=h.y-n.height/2);m&&(this.addCells([g],e,null,
-null,null,!0),e=null)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var v=mxEvent.isControlDown(b)&&f||null==e&&null!=m&&m.constructor==mxStackLayout?null:this.insertEdge(this.model.getParent(a),null,"",a,g,this.createCurrentEdgeStyle());if(null!=v&&this.connectionHandler.insertBeforeSource){var t=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=v.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==v.parent&&
-(t=b.parent.getIndex(b),this.model.add(b.parent,v,t))}null==e&&null!=g&&null!=m&&null!=a.parent&&m.constructor==mxStackLayout&&c==mxConstants.DIRECTION_WEST&&(t=a.parent.getIndex(a),this.model.add(a.parent,g,t));null!=v&&d.push(v);null==e&&null!=g&&d.push(g);null==g&&null!=v&&v.geometry.setTerminalPoint(h,!1);null!=v&&this.fireEvent(new mxEventObject("cellsInserted","cells",[v]))}finally{this.model.endUpdate()}return d};
+null,null,!0),e=null)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var v=mxEvent.isControlDown(b)&&f||null==e&&null!=m&&m.constructor==mxStackLayout?null:this.insertEdge(this.model.getParent(a),null,"",a,g,this.createCurrentEdgeStyle());if(null!=v&&this.connectionHandler.insertBeforeSource){var r=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=v.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==v.parent&&
+(r=b.parent.getIndex(b),this.model.add(b.parent,v,r))}null==e&&null!=g&&null!=m&&null!=a.parent&&m.constructor==mxStackLayout&&c==mxConstants.DIRECTION_WEST&&(r=a.parent.getIndex(a),this.model.add(a.parent,g,r));null!=v&&d.push(v);null==e&&null!=g&&d.push(g);null==g&&null!=v&&v.geometry.setTerminalPoint(h,!1);null!=v&&this.fireEvent(new mxEventObject("cellsInserted","cells",[v]))}finally{this.model.endUpdate()}return d};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],d,b;for(b in this.model.cells)if(d=this.model.cells[b],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(a.innerHTML=this.getLabel(d),d=mxUtils.extractTextWithWhitespace([a])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&c.push(d);return c.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var c=a.getAttribute("placeholder"),d=a,b=null;null==b&&null!=d;)null!=d.value&&"object"==typeof d.value&&(b=d.hasAttribute(c)?null!=d.getAttribute(c)?d.getAttribute(c):"":null),d=this.model.getParent(d);return b||""}return a.value.getAttribute("label")||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
@@ -2557,9 +2560,10 @@ null==n?null!=f&&this.isMoveCellsEvent(f,h)&&this.moveSiblings(h,m,k,l):null!=f&
Graph.prototype.moveSiblings=function(a,c,d,b){this.model.beginUpdate();try{var f=this.getCellsBeyond(a.x,a.y,c,!0,!0);for(c=0;c<f.length;c++)if(f[c]!=a.cell){var e=this.view.getState(f[c]),h=this.getCellGeometry(f[c]);null!=e&&null!=h&&(h=h.clone(),h.translate(Math.round(d*Math.max(0,Math.min(1,(e.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))),this.model.setGeometry(f[c],h))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,c,d,b){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var f=c.horizontal;null!=a&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==f&&!c.resizeLast;){var e=this.getCellGeometry(a),h=this.view.getState(a);null!=h&&null!=e&&(e=e.clone(),c.horizontal?e.width+=d+Math.min(0,h.width/this.view.scale-e.width):e.height+=b+Math.min(0,h.height/this.view.scale-e.height),this.model.setGeometry(a,
e));a=this.model.getParent(a);c=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=c.container:"1"==c.container};Graph.prototype.isCellConnectable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return null!=c&&null!=c.connectable?"0"!=c.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
-Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,c,d){d=d||this.getDefaultParent();this.isCellLocked(d)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,c,d){d=d||this.getDefaultParent();return this.isCellLocked(d)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
-Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return this.foldingEnabled&&("1"==c.treeFolding||!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=c.collapsible||!this.isContainer(a)&&"1"==c.collapsible))};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
-Graph.prototype.zoom=function(a,c){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
+Graph.prototype.isLabelMovable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return null!=c&&null!=c.movableLabel?"0"!=c.movableLabel:mxGraph.prototype.isLabelMovable.apply(this,arguments)};Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,c,d){d=d||this.getDefaultParent();this.isCellLocked(d)||mxGraph.prototype.selectCells.apply(this,arguments)};
+Graph.prototype.getSwimlaneAt=function(a,c,d){d=d||this.getDefaultParent();return this.isCellLocked(d)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return this.foldingEnabled&&("1"==c.treeFolding||!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=c.collapsible||!this.isContainer(a)&&"1"==c.collapsible))};
+Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};Graph.prototype.zoom=function(a,c){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};
+Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
Graph.prototype.getTooltipForCell=function(a){var c="";if(mxUtils.isNode(a.value)){var d=a.value.getAttribute("tooltip");if(null!=d)null!=d&&this.isReplacePlaceholders(a)&&(d=this.replacePlaceholders(a,d)),c=this.sanitizeHtml(d);else{d=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&d.push("link");for(var f=0;f<a.length;f++)0>mxUtils.indexOf(d,a[f].nodeName)&&0<a[f].nodeValue.length&&b.push({name:a[f].nodeName,value:a[f].nodeValue});b.sort(function(a,b){return a.name<b.name?
-1:a.name>b.name?1:0});for(f=0;f<b.length;f++)"link"==b[f].name&&this.isCustomLink(b[f].value)||(c+=("link"!=b[f].name?"<b>"+b[f].name+":</b> ":"")+mxUtils.htmlEntities(b[f].value)+"\n");0<c.length&&(c=c.substring(0,c.length-1),mxClient.IS_SVG&&(c='<div style="max-width:360px;">'+c+"</div>"))}}return c};Graph.prototype.stringToBytes=function(a){return Graph.stringToBytes(a)};Graph.prototype.bytesToString=function(a){return Graph.bytesToString(a)};Graph.prototype.compressNode=function(a){return Graph.compressNode(a)};
Graph.prototype.compress=function(a,c){return Graph.compress(a,c)};Graph.prototype.decompress=function(a,c){return Graph.decompress(a,c)};Graph.prototype.zapGremlins=function(a){return Graph.zapGremlins(a)};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;
@@ -2582,8 +2586,8 @@ this.resetActiveArrow()}));return d};HoverIcons.prototype.resetActiveArrow=funct
HoverIcons.prototype.visitNodes=function(a){for(var c=0;c<this.elts.length;c++)null!=this.elts[c]&&a(this.elts[c])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(c){c.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
HoverIcons.prototype.drag=function(a,c,d){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,c,d),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,c=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=c&&c.setHandlesVisible(!1),c=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=c&&"orthogonalEdgeStyle"===
mxUtils.getValue(c.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),c.cell.style=mxUtils.setStyle(c.cell.style,"sourcePortConstraint",a),c.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,c,d){return this.graph.view.getState(this.graph.getCellAt(c,d))};
-HoverIcons.prototype.click=function(a,c,d){var b=d.getEvent(),f=d.getGraphX(),e=d.getGraphY(),f=this.getStateAt(a,f,e);null==f||!this.graph.model.isEdge(f.cell)||mxEvent.isControlDown(b)||f.getVisibleTerminalState(!0)!=a&&f.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,c,this.graph.defaultEdgeLength,b),this.graph.selectCellsForConnectVertex(a,b,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(b)?this.update(this.getState(this.graph.view.getState(a[1]))):
-this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(f.cell),this.reset());d.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
+HoverIcons.prototype.click=function(a,c,d){var b=d.getEvent(),f=d.getGraphX(),e=d.getGraphY(),f=this.getStateAt(a,f,e);null==f||!this.graph.model.isEdge(f.cell)||mxEvent.isControlDown(b)||f.getVisibleTerminalState(!0)!=a&&f.getVisibleTerminalState(!1)!=a?null!=a&&this.graph.selectCellsForConnectVertex(this.graph.connectVertex(a.cell,c,this.graph.defaultEdgeLength,b),b,this):(this.graph.setSelectionCell(f.cell),this.reset());d.consume()};
+HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing);
var c=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),d=null;null!=c&&(a.x-=c.horizontalOffset/2,a.y-=c.verticalOffset/2,a.width+=c.horizontalOffset,a.height+=c.verticalOffset,null!=c.rotationShape&&null!=c.rotationShape.node&&"hidden"!=c.rotationShape.node.style.visibility&&"none"!=c.rotationShape.node.style.display&&null!=c.rotationShape.boundingBox&&(d=c.rotationShape.boundingBox));c=mxUtils.bind(this,function(a,b,c){if(null!=d){var e=new mxRectangle(b,c,a.clientWidth,a.clientHeight);
mxUtils.intersects(e,d)&&(a==this.arrowUp?c-=e.y+e.height-d.y:a==this.arrowRight?b+=d.x+d.width-e.x:a==this.arrowDown?c+=d.y+d.height-e.y:a==this.arrowLeft&&(b-=e.x+e.width-d.x))}a.style.left=b+"px";a.style.top=c+"px";mxUtils.setOpacity(a,this.inactiveOpacity)});c(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(a.y-this.triangleUp.height-this.tolerance));c(this.arrowRight,Math.round(a.x+a.width-this.tolerance),Math.round(this.currentState.getCenterY()-
@@ -2599,15 +2603,15 @@ c,d))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState
HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,b){b=null!=b?b:!0;var d=this.getState(a);null!=d&&b&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=c.apply(this,
arguments);null!=d&&b&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,b){return d.apply(this,arguments)||null!=a.routedPoints&&null!=b.routedPoints&&!mxUtils.equalPoints(b.routedPoints,a.routedPoints)};var b=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){b.apply(this,arguments);this.graph.model.isEdge(a.cell)&&
-1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var b=a.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=a.routedPoints,d=null;if(null!=b&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(b,c,e){var f=new mxPoint(c,e);f.type=b;d.push(f);f=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==f||f.type!=b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var h=
-b[g+1],k=b[g],w=[],r=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(k.x,k.y,r.x,r.y,h.x,h.y)<1*this.scale*this.scale;)h=r,g++,r=b[g+2];for(var c=e(0,k.x,k.y)||c,x=0;x<this.validEdges.length;x++){var y=this.validEdges[x],D=y.absolutePoints;if(null!=D&&mxUtils.intersects(a,y)&&"1"!=y.style.noJump)for(y=0;y<D.length-1;y++){for(var B=D[y+1],E=D[y],r=D[y+2];y<D.length-2&&mxUtils.ptSegDistSq(E.x,E.y,r.x,r.y,B.x,B.y)<1*this.scale*this.scale;)B=r,y++,r=D[y+2];r=mxUtils.intersection(k.x,k.y,h.x,h.y,E.x,E.y,B.x,
-B.y);if(null!=r&&(Math.abs(r.x-k.x)>f||Math.abs(r.y-k.y)>f)&&(Math.abs(r.x-h.x)>f||Math.abs(r.y-h.y)>f)&&(Math.abs(r.x-E.x)>f||Math.abs(r.y-E.y)>f)&&(Math.abs(r.x-B.x)>f||Math.abs(r.y-B.y)>f)){B=r.x-k.x;E=r.y-k.y;r={distSq:B*B+E*E,x:r.x,y:r.y};for(B=0;B<w.length;B++)if(w[B].distSq>r.distSq){w.splice(B,0,r);r=null;break}null==r||0!=w.length&&w[w.length-1].x===r.x&&w[w.length-1].y===r.y||w.push(r)}}}for(y=0;y<w.length;y++)c=e(1,w[y].x,w[y].y)||c}r=b[b.length-1];c=e(0,r.x,r.y)||c}a.routedPoints=d;return c}return!1};
+1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var b=a.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=a.routedPoints,d=null;if(null!=b&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(b,c,e){var g=new mxPoint(c,e);g.type=b;d.push(g);g=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==g||g.type!=b||g.x!=c||g.y!=e},g=.5*this.scale,c=!1,d=[],f=0;f<b.length-1;f++){for(var h=
+b[f+1],k=b[f],w=[],t=b[f+2];f<b.length-2&&mxUtils.ptSegDistSq(k.x,k.y,t.x,t.y,h.x,h.y)<1*this.scale*this.scale;)h=t,f++,t=b[f+2];for(var c=e(0,k.x,k.y)||c,x=0;x<this.validEdges.length;x++){var y=this.validEdges[x],D=y.absolutePoints;if(null!=D&&mxUtils.intersects(a,y)&&"1"!=y.style.noJump)for(y=0;y<D.length-1;y++){for(var B=D[y+1],E=D[y],t=D[y+2];y<D.length-2&&mxUtils.ptSegDistSq(E.x,E.y,t.x,t.y,B.x,B.y)<1*this.scale*this.scale;)B=t,y++,t=D[y+2];t=mxUtils.intersection(k.x,k.y,h.x,h.y,E.x,E.y,B.x,
+B.y);if(null!=t&&(Math.abs(t.x-k.x)>g||Math.abs(t.y-k.y)>g)&&(Math.abs(t.x-h.x)>g||Math.abs(t.y-h.y)>g)&&(Math.abs(t.x-E.x)>g||Math.abs(t.y-E.y)>g)&&(Math.abs(t.x-B.x)>g||Math.abs(t.y-B.y)>g)){B=t.x-k.x;E=t.y-k.y;t={distSq:B*B+E*E,x:t.x,y:t.y};for(B=0;B<w.length;B++)if(w[B].distSq>t.distSq){w.splice(B,0,t);t=null;break}null==t||0!=w.length&&w[w.length-1].x===t.x&&w[w.length-1].y===t.y||w.push(t)}}}for(y=0;y<w.length;y++)c=e(1,w[y].x,w[y].y)||c}t=b[b.length-1];c=e(0,t.x,t.y)||c}a.routedPoints=d;return c}return!1};
var f=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)f.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,
-"jumpStyle","none"),h=!0,k=null,l=null,m=[],r=null;a.begin();for(var x=0;x<this.state.routedPoints.length;x++){var y=this.state.routedPoints[x],D=new mxPoint(y.x/this.scale,y.y/this.scale);0==x?D=b[0]:x==this.state.routedPoints.length-1&&(D=b[b.length-1]);var B=!1;if(null!=k&&1==y.type){var E=this.state.routedPoints[x+1],y=E.x/this.scale-D.x,E=E.y/this.scale-D.y,y=y*y+E*E;null==r&&(r=new mxPoint(D.x-k.x,D.y-k.y),l=Math.sqrt(r.x*r.x+r.y*r.y),0<l?(r.x=r.x*e/l,r.y=r.y*e/l):r=null);y>e*e&&0<l&&(y=k.x-
-D.x,E=k.y-D.y,y=y*y+E*E,y>e*e&&(B=new mxPoint(D.x-r.x,D.y-r.y),y=new mxPoint(D.x+r.x,D.y+r.y),m.push(B),this.addPoints(a,m,c,d,!1,null,h),m=0>Math.round(r.x)||0==Math.round(r.x)&&0>=Math.round(r.y)?1:-1,h=!1,"sharp"==g?(a.lineTo(B.x-r.y*m,B.y+r.x*m),a.lineTo(y.x-r.y*m,y.y+r.x*m),a.lineTo(y.x,y.y)):"arc"==g?(m*=1.3,a.curveTo(B.x-r.y*m,B.y+r.x*m,y.x-r.y*m,y.y+r.x*m,y.x,y.y)):(a.moveTo(y.x,y.y),h=!0),m=[y],B=!0))}else r=null;B||(m.push(D),k=D)}this.addPoints(a,m,c,d,!1,null,h);a.stroke()}};var e=mxGraphView.prototype.updateFloatingTerminalPoint;
-mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)e.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var f=this.getNextPoint(a,c,d),g=this.graph.isOrthogonal(a),h=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=h)var l=Math.cos(-h),m=Math.sin(-h),f=mxUtils.getRotatedPoint(f,l,m,k);l=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);l+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(b,f,0==h&&g,l);0!=h&&(l=Math.cos(h),m=Math.sin(h),f=mxUtils.getRotatedPoint(f,l,m,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(b,
-a[f]);if(null!=g){var h=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||h<d)c=g,d=h}}null!=c&&(e=c)}return e};var h=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=h.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=
+"jumpStyle","none"),h=!0,k=null,l=null,m=[],t=null;a.begin();for(var x=0;x<this.state.routedPoints.length;x++){var y=this.state.routedPoints[x],D=new mxPoint(y.x/this.scale,y.y/this.scale);0==x?D=b[0]:x==this.state.routedPoints.length-1&&(D=b[b.length-1]);var B=!1;if(null!=k&&1==y.type){var E=this.state.routedPoints[x+1],y=E.x/this.scale-D.x,E=E.y/this.scale-D.y,y=y*y+E*E;null==t&&(t=new mxPoint(D.x-k.x,D.y-k.y),l=Math.sqrt(t.x*t.x+t.y*t.y),0<l?(t.x=t.x*e/l,t.y=t.y*e/l):t=null);y>e*e&&0<l&&(y=k.x-
+D.x,E=k.y-D.y,y=y*y+E*E,y>e*e&&(B=new mxPoint(D.x-t.x,D.y-t.y),y=new mxPoint(D.x+t.x,D.y+t.y),m.push(B),this.addPoints(a,m,c,d,!1,null,h),m=0>Math.round(t.x)||0==Math.round(t.x)&&0>=Math.round(t.y)?1:-1,h=!1,"sharp"==g?(a.lineTo(B.x-t.y*m,B.y+t.x*m),a.lineTo(y.x-t.y*m,y.y+t.x*m),a.lineTo(y.x,y.y)):"arc"==g?(m*=1.3,a.curveTo(B.x-t.y*m,B.y+t.x*m,y.x-t.y*m,y.y+t.x*m,y.x,y.y)):(a.moveTo(y.x,y.y),h=!0),m=[y],B=!0))}else t=null;B||(m.push(D),k=D)}this.addPoints(a,m,c,d,!1,null,h);a.stroke()}};var e=mxGraphView.prototype.updateFloatingTerminalPoint;
+mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)e.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var g=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a),h=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=h)var l=Math.cos(-h),m=Math.sin(-h),g=mxUtils.getRotatedPoint(g,l,m,k);l=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);l+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);g=this.getPerimeterPoint(b,g,0==h&&f,l);0!=h&&(l=Math.cos(h),m=Math.sin(h),g=mxUtils.getRotatedPoint(g,l,m,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,g),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;if(null!=a)for(var g=0;g<a.length;g++){var f=this.graph.getConnectionPoint(b,
+a[g]);if(null!=f){var h=(f.x-e.x)*(f.x-e.x)+(f.y-e.y)*(f.y-e.y);if(null==d||h<d)c=f,d=h}}null!=c&&(e=c)}return e};var h=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=h.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=
mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"string"===typeof b&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-1),d=mxUtils.parseXml(Graph.decompress(c));return new mxShape(new mxStencil(d.documentElement))}catch(p){null!=window.console&&console.log("Error in shape: "+p)}}return g.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.getStencil=function(a){var c=mxStencilRegistry.stencils[a];if(null==c&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var d=mxStencilRegistry.getBasenameForStencil(a);if(null!=d){c=mxStencilRegistry.libraries[d];if(null!=c){if(null==mxStencilRegistry.packages[d]){for(var b=0;b<c.length;b++){var f=c[b];if(".xml"==f.toLowerCase().substring(f.length-4,f.length))mxStencilRegistry.loadStencilSet(f,null);else if(".js"==f.toLowerCase().substring(f.length-3,f.length))try{if(mxStencilRegistry.allowEval){var e=
mxUtils.load(f);null!=e&&200<=e.getStatus()&&299>=e.getStatus()&&eval.call(window,e.getText())}}catch(h){null!=window.console&&console.log("error in getStencil:",f,h)}}mxStencilRegistry.packages[d]=1}}else d=d.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+d+".xml",null);c=mxStencilRegistry.stencils[a]}}return c};
@@ -2620,111 +2624,111 @@ g=b.getAttribute("h"),h=null==h?80:parseInt(h,10),g=null==g?80:parseInt(g,10);c(
"#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR="#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=
!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var d=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||d.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=
!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var b in this.graph.currentEdgeStyle)a.style[b]=this.graph.currentEdgeStyle[b];return a};var b=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=b.apply(this,arguments);a.isDashed="1"==
-this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var f=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=f.apply(this,arguments),b=a.getCell;a.getCell=mxUtils.bind(this,function(a){var c=b.apply(this,arguments);this.error=null;return c});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(a)};Graph.prototype.defaultVertexStyle={};
-Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&&(a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&
-(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");null!=this.currentEdgeStyle.orthogonalLoop?a+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?
-a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=
-null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,b){b=null!=b?b:{};for(var c=0;c<a.length;c++){var d=a[c];b[mxObjectIdentity.get(d)]=d.getId();for(var e=this.model.getChildCount(d),f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(d,f)],b)}return b};Graph.prototype.createCellMapping=
-function(a,b,c){c=null!=c?c:{};for(var d in a){var e=b[d];null==c[e]&&(c[e]=a[d].getId()||"")}return c};Graph.prototype.importGraphModel=function(a,b,c,d){b=null!=b?b:0;c=null!=c?c:0;var e=new mxCodec(a.ownerDocument),f=new mxGraphModel;e.decode(a,f);a=[];var e={},g={},h=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=h){var k=this.createCellLookup([f.root]),h=h.slice();this.model.beginUpdate();try{if(1!=h.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<h.length;f++)a=
-a.concat(this.model.getChildren(this.moveCells([h[f]],b,c,!1,this.model.getRoot())[0]));else a=this.moveCells(f.getChildren(h[0]),b,c,!1,this.getDefaultParent()),g[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId();this.createCellMapping(e,k,g);this.updateCustomLinks(g,a);if(d){this.isGridEnabled()&&(b=this.snap(b),c=this.snap(c));var l=this.getBoundingBoxFromGeometry(a,!0);null!=l&&this.moveCells(a,b-l.x,c-l.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var b=
-{},c=this.cloneCells(a,null,b),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<c.length;e++){var f=this.view.getState(a[e]);if(null!=f){var g=this.getCellGeometry(c[e]);null==g||!g.relative||this.model.isEdge(a[e])||d.get(this.model.getParent(a[e]))||(g.relative=!1,g.x=f.x/f.view.scale-f.view.translate.x,g.y=f.y/f.view.scale-f.view.translate.y)}}d=new mxCodec;f=new mxGraphModel;g=f.getChildAt(f.getRoot(),0);for(e=0;e<c.length;e++)f.add(g,c[e]);this.updateCustomLinks(this.createCellMapping(b,
-this.createCellLookup(a)),c);return d.encode(f)};var e=Graph.prototype.moveCells;Graph.prototype.moveCells=function(a,b,c,d,f,g,h){h=null!=h?h:{};var k=e.apply(this,arguments);d&&this.updateCustomLinks(this.createCellMapping(h,this.createCellLookup(a)),k);return k};Graph.prototype.updateCustomLinks=function(a,b){for(var c=0;c<b.length;c++)null!=b[c]&&this.updateCustomLinksForCell(a,b[c])};Graph.prototype.updateCustomLinksForCell=function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,
-b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){var d=[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var f=e[c];d.push(new mxConnectionConstraint(new mxPoint(f[0],f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(aa){}return d}if(null!=a.shape&&null!=a.shape.bounds){f=a.shape.direction;e=a.shape.bounds;c=a.shape.scale;d=e.width/c;e=e.height/c;if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=d,d=e,e=f;c=a.shape.getConstraints(a.style,
-d,e);if(null!=c)return c;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);null!=b&&(b=mxUtils.getValue(b,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,this.setCellStyles(mxConstants.STYLE_ELBOW,
-b,[a]))}};Graph.prototype.isValidRoot=function(a){for(var b=this.model.getChildCount(a),c=0,d=0;d<b;d++){var e=this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||c++)}return 0<c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(b,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(b,
-"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=function(a){var b=
-mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a){var b=this.getModel(),c=[];b.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(b.isEdge(e)){var f=b.getTerminal(e,!0),g=b.getTerminal(e,!1);b.setTerminal(e,g,!0);b.setTerminal(e,f,!1);var h=b.getGeometry(e);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var k=
-h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);h.setTerminalPoint(k,!1);h.setTerminalPoint(l,!0);b.setGeometry(e,h);var z=this.view.getState(e),m=this.view.getState(f),n=this.view.getState(g);if(null!=z){var p=null!=m?this.getConnectionConstraint(z,m,!0):null,q=null!=n?this.getConnectionConstraint(z,n,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,p)}c.push(e)}}else if(b.isVertex(e)&&(h=this.getCellGeometry(e),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=
-h.height/2-h.width/2;var u=h.width;h.width=h.height;h.height=u;b.setGeometry(e,h);var r=this.view.getState(e);if(null!=r){var t=r.style[mxConstants.STYLE_DIRECTION]||"east";"east"==t?t="south":"south"==t?t="west":"west"==t?t="north":"north"==t&&(t="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,t,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;
-a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);if(0<b.length)for(var c=0;c<b.length;c++){var d=this.view.getState(b[c]);null!=d&&null!=d.shape&&null!=d.shape.stencil&&this.stencilHasPlaceholders(d.shape.stencil)?this.removeStateForCell(b[c]):this.isReplacePlaceholders(b[c])&&this.view.invalidate(b[c],
-!1,!1)}}};Graph.prototype.replaceElement=function(a,b){for(var c=a.ownerDocument.createElement(null!=b?b:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=a.innerHTML;a.parentNode.replaceChild(c,a)};Graph.prototype.processElements=function(a,b){if(null!=a)for(var c=a.getElementsByTagName("*"),d=0;d<c.length;d++)b(c[d])};Graph.prototype.updateLabelElements=function(a,b,c){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),
-e=0;e<a.length;e++)if(this.isHtmlLabel(a[e])){var f=this.convertValueToString(a[e]);if(null!=f&&0<f.length){d.innerHTML=f;for(var g=d.getElementsByTagName(null!=c?c:"*"),h=0;h<g.length;h++)b(g[h]);d.innerHTML!=f&&this.cellLabelChanged(a[e],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,b,c){b=Graph.zapGremlins(b);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),
-e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var f=a.value.cloneNode(!0);f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(var d=[],c=0;c<a.length;c++){var e=this.model.getParent(a[c]);null==e||
-b.get(e)||(b.put(e,!0),d.push(e))}for(c=0;c<d.length;c++)if(e=this.view.getState(d[c]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)){var f=mxUtils.getValue(e.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),g=mxUtils.getValue(e.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);if(f==mxConstants.NONE&&g==mxConstants.NONE){f=!0;for(g=0;g<this.model.getChildCount(e.cell)&&f;g++)b.get(this.model.getChildAt(e.cell,g))||(f=!1);f&&a.push(e.cell)}}}mxGraph.prototype.cellsRemoved.apply(this,
-arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var b=[],c=0;c<a.length;c++)if(this.isCellDeletable(a[c])){var d=this.view.getState(a[c]);if(null!=d){var e=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);e==mxConstants.NONE&&d==mxConstants.NONE&&b.push(a[c])}}a=b;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,b){this.setAttributeForCell(a,
-"link",b)};Graph.prototype.setTooltipForCell=function(a,b){this.setAttributeForCell(a,"tooltip",b)};Graph.prototype.getAttributeForCell=function(a,b,c){return null!=a.value&&"object"===typeof a.value?a.value.getAttribute(b)||c:c};Graph.prototype.setAttributeForCell=function(a,b,c){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=c?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,
-d)};Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,b){if(this.isEnabled()){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),
-mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=e||null!=d&&null!=d.text&&null!=d.text.node&&null!=d.text.boundingBox&&(mxUtils.contains(d.text.boundingBox,c.x,c.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_VML&&e==this.view.getCanvas()||
-mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)||(b=this.addText(c.x,c.y,d))}mxGraph.prototype.dblClick.call(this,a,b)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};
-Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,b,c){var d=new mxCell;d.value="Text";d.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
-d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="labelBackgroundColor=#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize=1;",e=this.view.translate,d.geometry.width=40,d.geometry.height=
-20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.addClickHandler=function(a,b,c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getAbsoluteUrl(a[c].getAttribute("href"));
-null!=d&&(a[c].setAttribute("rel",this.linkRelation),a[c].setAttribute("href",d),null!=b&&mxEvent.addGestureListeners(a[c],null,null,b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var b=a.sourceState;if(null==b||null==g.getLinkForCell(b.cell))a=
-g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,b,c){return null==g.getLinkForCell(a.cell)}),b=g.view.getState(a);b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor=
-"move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else{for(c=b.getSource();null!=c&&"a"!=c.nodeName.toLowerCase();)c=c.parentNode;null!=c?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(b,!0,this.currentState),(null==this.currentState||b.getState()!=this.currentState&&null!=b.sourceState||
-!g.intersects(this.currentState,b.getGraphX(),b.getGraphY()))&&this.updateCurrentState(b))}},mouseUp:function(a,d){for(var e=d.getSource(),h=d.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!=
-this.currentLink?(e=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==b||b(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":e?g.linkTarget:"_top",g.openLink(this.currentLink,h),d.consume())):null!=c&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f&&c(d.getEvent()));this.clear()},activate:function(a){this.currentLink=
-g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,
-b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();try{for(var f=this.cloneCells(a,!1,null,!0),g=0;g<a.length;g++){var h=c.getParent(a[g]),k=this.moveCells([f[g]],d,d,!1)[0];e.push(k);if(b)c.add(h,f[g]);else{var l=h.getIndex(a[g]);c.add(h,f[g],l+1)}}}finally{c.endUpdate()}return e};Graph.prototype.insertImage=function(a,b,c){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),
-e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var b=this.cellEditor.textarea.getElementsByTagName("a"),c=[],d=0;d<b.length;d++)c.push(b[d]);
-document.execCommand("createlink",!1,mxUtils.trim(a));b=this.cellEditor.textarea.getElementsByTagName("a");if(b.length==c.length+1)for(d=b.length-1;0<=d;d--)if(b[d]!=c[d-1]){for(b=b[d].getElementsByTagName("a");0<b.length;){for(c=b[0].parentNode;null!=b[0].firstChild;)c.insertBefore(b[0].firstChild,b[0]);c.removeChild(b[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=
-this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;c.push(g)}}if(2<
-c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;h=this.view.scale;e=e/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var l=this.view.getState(this.model.getParent(c[f].cell)),m=this.getCellGeometry(c[f].cell),d=d+k;null!=m&&null!=l&&(m=m.clone(),a?m.x=Math.round(d-m.width/2)-l.origin.x:m.y=Math.round(d-m.height/2)-l.origin.y,this.getModel().setGeometry(c[f].cell,m))}}finally{this.getModel().endUpdate()}}}return b};
-Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h,k,l){var m=this.useCssTransforms;m&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:
-!0;g=null!=g?g:!0;var n=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==n)throw Error(mxResources.get("drawingEmpty"));var z=this.view.scale,p=mxUtils.createXmlDocument(),q=null!=p.createElementNS?p.createElementNS(mxConstants.NS_SVG,"svg"):p.createElement("svg");null!=a&&(null!=q.style?q.style.backgroundColor=a:q.setAttribute("style","background-color:"+a));null==p.createElementNS?(q.setAttribute("xmlns",mxConstants.NS_SVG),q.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):
-q.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/z;var u=Math.max(1,Math.ceil(n.width*a)+2*c)+(l?5:0),N=Math.max(1,Math.ceil(n.height*a)+2*c)+(l?5:0);q.setAttribute("version","1.1");q.setAttribute("width",u+"px");q.setAttribute("height",N+"px");q.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+u+" "+N);p.appendChild(q);var t=null!=p.createElementNS?p.createElementNS(mxConstants.NS_SVG,"g"):p.createElement("g");q.appendChild(t);var r=this.createSvgCanvas(t);
-r.foOffset=e?-.5:0;r.textOffset=e?-.5:0;r.imageOffset=e?-.5:0;r.translate(Math.floor((c/b-n.x)/z),Math.floor((c/b-n.y)/z));var Q=document.createElement("div"),y=r.getAlternateText;r.getAlternateText=function(a,b,c,d,e,f,g,h,k,l,m,n,z){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(Q.innerHTML=f,f=mxUtils.extractTextWithWhitespace(Q.childNodes));for(var p=Math.ceil(2*d/this.state.fontSize),q=[],u=0,r=0;(0==p||u<p)&&r<f.length;){var N=f.charCodeAt(r);if(10==N||13==N){if(0<u)break}else q.push(f.charAt(r)),
-255>N&&u++;r++}q.length<f.length&&1<f.length-q.length&&(f=mxUtils.trim(q.join(""))+"...");return f}catch(sa){return y.apply(this,arguments)}else return y.apply(this,arguments)};var v=this.backgroundImage;if(null!=v){b=z/b;var D=this.view.translate,w=new mxRectangle(D.x*b,D.y*b,v.width*b,v.height*b);mxUtils.intersects(n,w)&&r.image(D.x,D.y,v.width,v.height,v.src,!0)}r.scale(a);r.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var B=h.drawCellState,U=h.getLinkForCellState;h.getLinkForCellState=
-function(a,b){var c=U.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.drawCellState=function(a,b){for(var c=a.view.graph,d=c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!f&&!d&&null!=e;)d=c.isCellSelected(e),e=c.model.getParent(e);(f||d)&&B.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),r);this.updateSvgLinks(q,k,!0);return q}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.updateSvgLinks=
-function(a,b,c){a=a.getElementsByTagName("a");for(var d=0;d<a.length;d++){var e=a[d].getAttribute("href");null==e&&(e=a[d].getAttribute("xlink:href"));null!=e&&(null!=b&&/^https?:\/\//.test(e)?a[d].setAttribute("target",b):c&&this.isCustomLink(e)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();
-b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,b,c){for(;null!=a&&!(0<=mxUtils.indexOf(b,a.nodeName));){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var b=null;if(window.getSelection){if(b=
-window.getSelection(),b.getRangeAt&&b.rangeCount){var c=document.createRange();c.selectNode(a);b.removeAllRanges();b.addRange(c)}}else(b=document.selection)&&"Control"!=b.type&&(a=b.createRange(),a.collapse(!0),c=b.createRange(),c.setEndPoint("StartToStart",a),c.select())};Graph.prototype.insertRow=function(a,b){for(var c=a.tBodies[0],d=c.rows[0].cells,e=0,f=0;f<d.length;f++)var g=d[f].getAttribute("colspan"),e=e+(null!=g?parseInt(g):1);c=c.insertRow(b);for(f=0;f<e;f++)mxUtils.br(c.insertCell(-1));
-return c.cells[0]};Graph.prototype.deleteRow=function(a,b){a.tBodies[0].deleteRow(b)};Graph.prototype.insertColumn=function(a,b){var c=a.tHead;if(null!=c)for(var d=0;d<c.rows.length;d++){var e=document.createElement("th");c.rows[d].appendChild(e);mxUtils.br(e)}c=a.tBodies[0];for(d=0;d<c.rows.length;d++)e=c.rows[d].insertCell(b),mxUtils.br(e);return c.rows[0].cells[0<=b?b:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,b){if(0<=b)for(var c=a.tBodies[0].rows,d=0;d<c.length;d++)c[d].cells.length>
-b&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&"Control"!=b.type&&b.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,b){function c(a,b){a.length>b&&(a=
-a.substring(0,Math.round(b/2))+"..."+a.substring(a.length-Math.round(b/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==b||0==b.length)b=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href",this.getAbsoluteUrl(a));d.setAttribute("title",c(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,c(b,40));this.isCustomLink(a)&&mxEvent.addListener(d,
-"click",mxUtils.bind(this,function(b){this.customLinkClicked(a);mxEvent.consume(b)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);
-null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());
-e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=
-this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.alignText=function(a,b){var c=null!=b&&mxEvent.isShiftDown(b);if(c||null!=window.getSelection&&null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){c||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),
-a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=
-window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(T){}};var h=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));h.apply(this,arguments)};var g=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?
-g.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var k=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){k.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=
-null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var l=mxCellEditor.prototype.installListeners;
-mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&
-0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}l.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,
-function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>"))&&c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(b?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,h=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&h.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&h.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+
-"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=h.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));
-this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var k=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(k=mxUtils.replaceTrailingNewlines(k,"<div><br></div>"));k=this.graph.sanitizeHtml(b?k.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=
-mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&
-this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()}};var m=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,
-mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/c)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-
-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,
-"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",m.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,b){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>"));return c=this.graph.sanitizeHtml(c,!0)};
-mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return b="1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var n=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
-this.toggleViewMode();n.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(z){}};var p=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(p.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,
-mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,
-1)||(b=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};var q=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);q.apply(this,arguments)};mxGraphView.prototype.formatUnitText=function(a){return a?c(a,this.unit):a};mxGraphHandler.prototype.updateHint=
-function(b){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/e-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/e-d.y);e=this.graph.view.unit;this.hint.innerHTML=c(b,e)+", "+c(d,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";
-this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};
-mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,
-"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};var u=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=u.apply(this,
-arguments);return a};mxVertexHandler.prototype.updateHint=function(b){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{b=this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/b),d)+" x "+c(this.roundLength(this.bounds.height/b),d)}b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?
-this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==b&&(b=this.bounds);this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=b.y+b.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var v=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=
-function(a,b){v.apply(this,arguments);null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none")};var t=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(a,b){t.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(b,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));
-var e=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(d.x/f-e.x),e=this.roundLength(d.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(g,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility=
-"hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",
-17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=
-mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
-24,24):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="'+HoverIcons.prototype.arrowFill+'"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;
-mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=
-HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=
-HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=
-!0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};
-if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return null==
-a.getState()&&!mxEvent.isMouseEvent(b)||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};var w=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){w.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&
-(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,b){var c=null!=this.div&&"none"!=this.div.style.display,d=null,e=null,f=null,g=null;null!=this.first&&
-null!=this.currentX&&null!=this.currentY&&(d=this.first.x,e=this.first.y,f=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(f=this.graph.snap(f),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(f)<this.graph.tolerance&&(f=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(c){if(mxEvent.isAltDown(b.getEvent())&&this.graph.isToggleEvent(b.getEvent())){var f=new mxRectangle(this.x,this.y,this.width,this.height),h=
-this.graph.getCells(f.x,f.y,f.width,f.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(b)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(d,e,this.graph.getDefaultParent(),!0,!0),c=0;c<h.length;c++)if(this.graph.isCellMovable(h[c])){var k=this.graph.view.getState(h[c]),l=this.graph.getCellGeometry(h[c]);null!=k&&null!=l&&(l=l.clone(),l.translate(f,g),this.graph.model.setGeometry(h[c],l))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,
-this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,f=this.first.y-c,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),
-this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=
-this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=
-Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),b.consume()}};var r=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);r.apply(this,
-arguments)};var x=(new Date).getTime(),y=0,D=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){D.apply(this,arguments);c!=this.currentTerminalState?(x=(new Date).getTime(),y=0):y=(new Date).getTime()-x;this.currentTerminalState=c};var B=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<y||(null==this.currentTerminalState||
-"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&B.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),
-e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var E=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?
-HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return E.apply(this,arguments)};var A=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return A.apply(this,
+this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var f=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=f.apply(this,arguments),b=a.getCell;a.getCell=mxUtils.bind(this,function(a){var c=b.apply(this,arguments);this.error=null;return c});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",
+orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&&(a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&
+(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");null!=this.currentEdgeStyle.orthogonalLoop?a+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&
+(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+
+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,b){b=null!=b?b:{};for(var c=0;c<a.length;c++){var d=a[c];b[mxObjectIdentity.get(d)]=d.getId();for(var e=this.model.getChildCount(d),g=0;g<e;g++)this.createCellLookup([this.model.getChildAt(d,g)],b)}return b};Graph.prototype.createCellMapping=function(a,b,c){c=null!=c?c:{};for(var d in a){var e=b[d];null==c[e]&&(c[e]=a[d].getId()||"")}return c};
+Graph.prototype.importGraphModel=function(a,b,c,d){b=null!=b?b:0;c=null!=c?c:0;var e=new mxCodec(a.ownerDocument),g=new mxGraphModel;e.decode(a,g);a=[];var e={},f={},h=g.getChildren(this.cloneCell(g.root,this.isCloneInvalidEdges(),e));if(null!=h){var k=this.createCellLookup([g.root]),h=h.slice();this.model.beginUpdate();try{if(1!=h.length||this.isCellLocked(this.getDefaultParent()))for(g=0;g<h.length;g++)a=a.concat(this.model.getChildren(this.moveCells([h[g]],b,c,!1,this.model.getRoot())[0]));else a=
+this.moveCells(g.getChildren(h[0]),b,c,!1,this.getDefaultParent()),f[g.getChildAt(g.root,0).getId()]=this.getDefaultParent().getId();this.createCellMapping(e,k,f);this.updateCustomLinks(f,a);if(d){this.isGridEnabled()&&(b=this.snap(b),c=this.snap(c));var l=this.getBoundingBoxFromGeometry(a,!0);null!=l&&this.moveCells(a,b-l.x,c-l.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var b={},c=this.cloneCells(a,null,b),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],
+!0);for(e=0;e<c.length;e++){var g=this.view.getState(a[e]);if(null!=g){var f=this.getCellGeometry(c[e]);null==f||!f.relative||this.model.isEdge(a[e])||d.get(this.model.getParent(a[e]))||(f.relative=!1,f.x=g.x/g.view.scale-g.view.translate.x,f.y=g.y/g.view.scale-g.view.translate.y)}}d=new mxCodec;g=new mxGraphModel;f=g.getChildAt(g.getRoot(),0);for(e=0;e<c.length;e++)g.add(f,c[e]);this.updateCustomLinks(this.createCellMapping(b,this.createCellLookup(a)),c);return d.encode(g)};var e=Graph.prototype.moveCells;
+Graph.prototype.moveCells=function(a,b,c,d,g,f,h){h=null!=h?h:{};var k=e.apply(this,arguments);d&&this.updateCustomLinks(this.createCellMapping(h,this.createCellLookup(a)),k);return k};Graph.prototype.updateCustomLinks=function(a,b){for(var c=0;c<b.length;c++)null!=b[c]&&this.updateCustomLinksForCell(a,b[c])};Graph.prototype.updateCustomLinksForCell=function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){var d=
+[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var g=e[c];d.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0,null,3<g.length?g[3]:0,4<g.length?g[4]:0))}}catch(aa){}return d}if(null!=a.shape&&null!=a.shape.bounds){g=a.shape.direction;e=a.shape.bounds;c=a.shape.scale;d=e.width/c;e=e.height/c;if(g==mxConstants.DIRECTION_NORTH||g==mxConstants.DIRECTION_SOUTH)g=d,d=e,e=g;c=a.shape.getConstraints(a.style,d,e);if(null!=c)return c;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;
+if(null!=a.shape.constraints)return a.shape.constraints}}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);null!=b&&(b=mxUtils.getValue(b,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,this.setCellStyles(mxConstants.STYLE_ELBOW,b,[a]))}};Graph.prototype.isValidRoot=function(a){for(var b=this.model.getChildCount(a),c=0,d=0;d<b;d++){var e=
+this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||c++)}return 0<c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(b,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(b,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,
+arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=function(a){var b=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&
+(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a){var b=this.getModel(),c=[];b.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(b.isEdge(e)){var g=b.getTerminal(e,!0),f=b.getTerminal(e,!1);b.setTerminal(e,f,!0);b.setTerminal(e,g,!1);var h=b.getGeometry(e);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var k=h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);h.setTerminalPoint(k,!1);h.setTerminalPoint(l,!0);b.setGeometry(e,
+h);var z=this.view.getState(e),m=this.view.getState(g),n=this.view.getState(f);if(null!=z){var p=null!=m?this.getConnectionConstraint(z,m,!0):null,q=null!=n?this.getConnectionConstraint(z,n,!1):null;this.setConnectionConstraint(e,g,!0,q);this.setConnectionConstraint(e,f,!1,p)}c.push(e)}}else if(b.isVertex(e)&&(h=this.getCellGeometry(e),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var u=h.width;h.width=h.height;h.height=u;b.setGeometry(e,h);var t=this.view.getState(e);
+if(null!=t){var r=t.style[mxConstants.STYLE_DIRECTION]||"east";"east"==r?r="south":"south"==r?r="west":"west"==r?r="north":"north"==r&&(r="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,r,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,
+arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);if(0<b.length)for(var c=0;c<b.length;c++){var d=this.view.getState(b[c]);null!=d&&null!=d.shape&&null!=d.shape.stencil&&this.stencilHasPlaceholders(d.shape.stencil)?this.removeStateForCell(b[c]):this.isReplacePlaceholders(b[c])&&this.view.invalidate(b[c],!1,!1)}}};Graph.prototype.replaceElement=function(a,b){for(var c=a.ownerDocument.createElement(null!=
+b?b:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=a.innerHTML;a.parentNode.replaceChild(c,a)};Graph.prototype.processElements=function(a,b){if(null!=a)for(var c=a.getElementsByTagName("*"),d=0;d<c.length;d++)b(c[d])};Graph.prototype.updateLabelElements=function(a,b,c){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),e=0;e<a.length;e++)if(this.isHtmlLabel(a[e])){var g=this.convertValueToString(a[e]);
+if(null!=g&&0<g.length){d.innerHTML=g;for(var f=d.getElementsByTagName(null!=c?c:"*"),h=0;h<f.length;h++)b(f[h]);d.innerHTML!=g&&this.cellLabelChanged(a[e],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,b,c){b=Graph.zapGremlins(b);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&
+e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var g=a.value.cloneNode(!0);g.setAttribute("label",b);b=g}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(var d=[],c=0;c<a.length;c++){var e=this.model.getParent(a[c]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}for(c=0;c<d.length;c++)if(e=this.view.getState(d[c]),
+null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var g=!0,f=0;f<this.model.getChildCount(e.cell)&&g;f++)b.get(this.model.getChildAt(e.cell,f))||(g=!1);g&&a.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var b=[],c=0;c<a.length;c++)this.isCellDeletable(a[c])&&this.isTransparentState(this.view.getState(a[c]))&&b.push(a[c]);a=b;mxGraph.prototype.removeCellsAfterUngroup.apply(this,
+arguments)};Graph.prototype.setLinkForCell=function(a,b){this.setAttributeForCell(a,"link",b)};Graph.prototype.setTooltipForCell=function(a,b){this.setAttributeForCell(a,"tooltip",b)};Graph.prototype.getAttributeForCell=function(a,b,c){return null!=a.value&&"object"===typeof a.value?a.value.getAttribute(b)||c:c};Graph.prototype.setAttributeForCell=function(a,b,c){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",
+a.value||""));null!=c?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=
+function(a,b){if(this.isEnabled()){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=e||null!=d&&null!=d.text&&null!=d.text.node&&null!=d.text.boundingBox&&(mxUtils.contains(d.text.boundingBox,c.x,c.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&
+(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_VML&&e==this.view.getCanvas()||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)||(b=this.addText(c.x,c.y,d))}mxGraph.prototype.dblClick.call(this,a,b)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,
+d.x*e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,
+b,c){var d=new mxCell;d.value="Text";d.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="labelBackgroundColor=#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),g=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-e.x)/
+g),Math.round((b-e.y)/g))}else d.style+="autosize=1;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.addClickHandler=function(a,b,c){var d=mxUtils.bind(this,function(){var a=
+this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getAbsoluteUrl(a[c].getAttribute("href"));null!=d&&(a[c].setAttribute("rel",this.linkRelation),a[c].setAttribute("href",d),null!=b&&mxEvent.addGestureListeners(a[c],null,null,b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,g=this.getTolerance(),f=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(f,a,4):null,startX:0,
+startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var b=a.sourceState;if(null==b||null==f.getLinkForCell(b.cell))a=f.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,b,c){return null==f.getLinkForCell(a.cell)}),b=f.view.getState(a);b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=f.container.scrollLeft;
+this.scrollTop=f.container.scrollTop;null==this.currentLink&&"auto"==f.container.style.overflow&&(f.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(f.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>g||d>g)&&this.clear()}}else{for(c=b.getSource();null!=c&&"a"!=c.nodeName.toLowerCase();)c=c.parentNode;null!=c?this.clear():(null!=f.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&
+f.tooltipHandler.reset(b,!0,this.currentState),(null==this.currentState||b.getState()!=this.currentState&&null!=b.sourceState||!f.intersects(this.currentState,b.getGraphX(),b.getGraphY()))&&this.updateCurrentState(b))}},mouseUp:function(a,d){for(var e=d.getSource(),h=d.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-f.container.scrollLeft)<g&&Math.abs(this.scrollTop-f.container.scrollTop)<g&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&
+((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!=this.currentLink?(e=f.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==b||b(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":e?f.linkTarget:"_top",f.openLink(this.currentLink,h),d.consume())):null!=c&&!d.isConsumed()&&Math.abs(this.scrollLeft-f.container.scrollLeft)<g&&Math.abs(this.scrollTop-f.container.scrollTop)<
+g&&Math.abs(this.startX-d.getGraphX())<g&&Math.abs(this.startY-d.getGraphY())<g&&c(d.getEvent()));this.clear()},activate:function(a){this.currentLink=f.getAbsoluteUrl(f.getLinkForCell(a.cell));null!=this.currentLink&&(f.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=f.container&&(f.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=f.tooltipHandler&&f.tooltipHandler.hide()}};
+f.click=function(a){};f.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();try{for(var g=this.cloneCells(a,!1,null,!0),f=0;f<a.length;f++){var h=c.getParent(a[f]),k=this.moveCells([g[f]],d,d,!1)[0];e.push(k);if(b)c.add(h,g[f]);else{var l=h.getIndex(a[f]);c.add(h,g[f],l+1)}}}finally{c.endUpdate()}return e};
+Graph.prototype.insertImage=function(a,b,c){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],g=0;g<d.length;g++)e.push(d[g]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(g=a.length-1;0<=g;g--)if(0==g||a[g]!=e[g-1]){a[g].setAttribute("width",b);a[g].setAttribute("height",c);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==
+a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var b=this.cellEditor.textarea.getElementsByTagName("a"),c=[],d=0;d<b.length;d++)c.push(b[d]);document.execCommand("createlink",!1,mxUtils.trim(a));b=this.cellEditor.textarea.getElementsByTagName("a");if(b.length==c.length+1)for(d=b.length-1;0<=d;d--)if(b[d]!=c[d-1]){for(b=b[d].getElementsByTagName("a");0<b.length;){for(c=b[0].parentNode;null!=b[0].firstChild;)c.insertBefore(b[0].firstChild,b[0]);c.removeChild(b[0])}break}}else document.execCommand("createlink",
+!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,g=0;g<b.length;g++)if(this.getModel().isVertex(b[g])){var f=this.view.getState(b[g]);
+if(null!=f){var h=a?f.getCenterX():f.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;c.push(f)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});f=this.view.translate;h=this.view.scale;e=e/h-(a?f.x:f.y);d=d/h-(a?f.x:f.y);this.getModel().beginUpdate();try{for(var k=(d-e)/(c.length-1),d=e,g=1;g<c.length-1;g++){var l=this.view.getState(this.model.getParent(c[g].cell)),m=this.getCellGeometry(c[g].cell),d=d+k;null!=m&&null!=l&&(m=m.clone(),a?m.x=Math.round(d-m.width/2)-l.origin.x:
+m.y=Math.round(d-m.height/2)-l.origin.y,this.getModel().setGeometry(c[g].cell,m))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,g,f,h,k,l){var m=this.useCssTransforms;m&&
+(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;g=null!=g?g:!0;f=null!=f?f:!0;var n=g||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==n)throw Error(mxResources.get("drawingEmpty"));var z=this.view.scale,p=mxUtils.createXmlDocument(),q=null!=p.createElementNS?p.createElementNS(mxConstants.NS_SVG,"svg"):p.createElement("svg");null!=a&&(null!=q.style?q.style.backgroundColor=a:q.setAttribute("style",
+"background-color:"+a));null==p.createElementNS?(q.setAttribute("xmlns",mxConstants.NS_SVG),q.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):q.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/z;var u=Math.max(1,Math.ceil(n.width*a)+2*c)+(l?5:0),M=Math.max(1,Math.ceil(n.height*a)+2*c)+(l?5:0);q.setAttribute("version","1.1");q.setAttribute("width",u+"px");q.setAttribute("height",M+"px");q.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+u+" "+M);p.appendChild(q);
+var t=null!=p.createElementNS?p.createElementNS(mxConstants.NS_SVG,"g"):p.createElement("g");q.appendChild(t);var r=this.createSvgCanvas(t);r.foOffset=e?-.5:0;r.textOffset=e?-.5:0;r.imageOffset=e?-.5:0;r.translate(Math.floor((c/b-n.x)/z),Math.floor((c/b-n.y)/z));var Q=document.createElement("div"),y=r.getAlternateText;r.getAlternateText=function(a,b,c,d,e,g,f,h,k,l,m,n,z){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?g=g.innerText:(Q.innerHTML=g,g=mxUtils.extractTextWithWhitespace(Q.childNodes));
+for(var p=Math.ceil(2*d/this.state.fontSize),q=[],u=0,r=0;(0==p||u<p)&&r<g.length;){var M=g.charCodeAt(r);if(10==M||13==M){if(0<u)break}else q.push(g.charAt(r)),255>M&&u++;r++}q.length<g.length&&1<g.length-q.length&&(g=mxUtils.trim(q.join(""))+"...");return g}catch(sa){return y.apply(this,arguments)}else return y.apply(this,arguments)};var v=this.backgroundImage;if(null!=v){b=z/b;var D=this.view.translate,w=new mxRectangle(D.x*b,D.y*b,v.width*b,v.height*b);mxUtils.intersects(n,w)&&r.image(D.x,D.y,
+v.width,v.height,v.src,!0)}r.scale(a);r.textEnabled=f;h=null!=h?h:this.createSvgImageExport();var B=h.drawCellState,T=h.getLinkForCellState;h.getLinkForCellState=function(a,b){var c=T.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.drawCellState=function(a,b){for(var c=a.view.graph,d=c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!g&&!d&&null!=e;)d=c.isCellSelected(e),e=c.model.getParent(e);(g||d)&&B.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),
+r);this.updateSvgLinks(q,k,!0);return q}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.updateSvgLinks=function(a,b,c){a=a.getElementsByTagName("a");for(var d=0;d<a.length;d++){var e=a[d].getAttribute("href");null==e&&(e=a[d].getAttribute("xlink:href"));null!=e&&(null!=b&&/^https?:\/\//.test(e)?a[d].setAttribute("target",b):c&&this.isCustomLink(e)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);
+a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,b,c){for(;null!=a&&!(0<=mxUtils.indexOf(b,
+a.nodeName));){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var b=null;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){var c=document.createRange();c.selectNode(a);b.removeAllRanges();b.addRange(c)}}else(b=document.selection)&&"Control"!=b.type&&(a=b.createRange(),a.collapse(!0),c=b.createRange(),c.setEndPoint("StartToStart",a),c.select())};Graph.prototype.insertRow=function(a,b){for(var c=a.tBodies[0],d=c.rows[0].cells,e=0,g=0;g<
+d.length;g++)var f=d[g].getAttribute("colspan"),e=e+(null!=f?parseInt(f):1);c=c.insertRow(b);for(g=0;g<e;g++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(a,b){a.tBodies[0].deleteRow(b)};Graph.prototype.insertColumn=function(a,b){var c=a.tHead;if(null!=c)for(var d=0;d<c.rows.length;d++){var e=document.createElement("th");c.rows[d].appendChild(e);mxUtils.br(e)}c=a.tBodies[0];for(d=0;d<c.rows.length;d++)e=c.rows[d].insertCell(b),mxUtils.br(e);return c.rows[0].cells[0<=
+b?b:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,b){if(0<=b)for(var c=a.tBodies[0].rows,d=0;d<c.length;d++)c[d].cells.length>b&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&
+"Control"!=b.type&&b.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,b){function c(a,b){a.length>b&&(a=a.substring(0,Math.round(b/2))+"..."+a.substring(a.length-Math.round(b/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==b||0==b.length)b=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href",this.getAbsoluteUrl(a));d.setAttribute("title",c(this.isCustomLink(a)?this.getLinkTitle(a):
+a,80));null!=this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,c(b,40));this.isCustomLink(a)&&mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){this.customLinkClicked(a);mxEvent.consume(b)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
+function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,
+g,f){a==mxEvent.MOUSE_DOWN&&(g=this.updateMouseEvent(g),b=this.isCellSelected(g.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&
+this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.alignText=function(a,b){var c=null!=b&&mxEvent.isShiftDown(b);if(c||null!=window.getSelection&&
+null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){c||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(U){}};var h=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));h.apply(this,arguments)};var g=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?g.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var k=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){k.apply(this,
+arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var l=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
+a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}l.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>"))&&c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=
+function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(b?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),
+b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,h=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&h.push("underline");
+(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&h.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=h.join(" ");this.textarea.style.fontWeight=g?"bold":"normal";this.textarea.style.fontStyle=f?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=
+e;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var k=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(k=mxUtils.replaceTrailingNewlines(k,
+"<div><br></div>"));k=this.graph.sanitizeHtml(b?k.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=
+mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()}};var m=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
+null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=
+Math.round((this.bounds.width-4)/c)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-
+this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",m.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=
+function(a,b){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>"));return c=this.graph.sanitizeHtml(c,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML,
+!0);return b="1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var n=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();n.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(z){}};var p=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,
+b){this.graph.getModel().beginUpdate();try{p.apply(this,arguments),""==b&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,
+mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};var q=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,g){mxEvent.isAltDown(g)&&(e=null);q.apply(this,arguments)};mxGraphView.prototype.formatUnitText=
+function(a){return a?c(a,this.unit):a};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/e-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/e-d.y);e=this.graph.view.unit;this.hint.innerHTML=c(b,e)+", "+c(d,e);this.hint.style.left=this.pBounds.x+this.currentDx+
+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+
+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};var u=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+
+b,a.y=this.sizers[0].bounds.height+b):a=u.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{b=this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/b),d)+" x "+c(this.roundLength(this.bounds.height/b),d)}b=
+mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==b&&(b=this.bounds);this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=b.y+b.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display=
+"")};var v=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){v.apply(this,arguments);null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none")};var r=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(a,b){r.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=
+function(b,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,f=this.roundLength(d.x/g-e.x),e=this.roundLength(d.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(f,g)+", "+c(e,g);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML=
+"["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+
+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
+new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+
+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',24,24):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,
+5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="'+HoverIcons.prototype.arrowFill+'"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=
+HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);
+mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,
+(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.parentHighlightEnabled=
+!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||
+0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)||
+mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};var w=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){w.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==
+a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,b){var c=null!=this.div&&"none"!=this.div.style.display,d=null,e=null,g=null,f=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&
+(d=this.first.x,e=this.first.y,g=(this.currentX-d)/this.graph.view.scale,f=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(g=this.graph.snap(g),f=this.graph.snap(f),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&(g=0),Math.abs(f)<this.graph.tolerance&&(f=0))));this.reset();if(c){if(mxEvent.isAltDown(b.getEvent())&&this.graph.isToggleEvent(b.getEvent())){var g=new mxRectangle(this.x,this.y,this.width,this.height),h=this.graph.getCells(g.x,g.y,g.width,g.height);
+this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(b)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(d,e,this.graph.getDefaultParent(),!0,!0),c=0;c<h.length;c++)if(this.graph.isCellMovable(h[c])){var k=this.graph.view.getState(h[c]),l=this.graph.getCellGeometry(h[c]);null!=k&&null!=l&&(l=l.clone(),l.translate(g,f),this.graph.model.setGeometry(h[c],l))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(g,
+b.getEvent());b.consume()}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,g=this.first.y-c,f=this.graph.tolerance;if(null!=this.div||Math.abs(e)>f||Math.abs(g)>f)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+
+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+
+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=
+0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),b.consume()}};var t=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);t.apply(this,arguments)};var x=(new Date).getTime(),y=0,D=mxEdgeHandler.prototype.updatePreviewState;
+mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){D.apply(this,arguments);c!=this.currentTerminalState?(x=(new Date).getTime(),y=0):y=(new Date).getTime()-x;this.currentTerminalState=c};var B=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<y||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&
+B.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:
+null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var E=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:
+b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return E.apply(this,arguments)};var A=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return A.apply(this,
arguments)};var G=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=G.apply(this,arguments),b=[],c=0;c<a.length;c++)"1"!=mxUtils.getValue(a[c].style,"part","0")&&b.push(a[c]);return b};var J=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=
a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):J.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||
2<=this.state.width||2<=this.state.height)&&H.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(this.state.style,
@@ -2735,14 +2739,14 @@ function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),thi
this.updateLinkHint(c,d);if(null!=c||null!=d&&0<d.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(b,c){try{if(null==b&&(null==c||0==c.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=b||null!=c&&0<c.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));
this.linkHint.innerHTML="";if(null!=b&&(this.linkHint.appendChild(this.graph.createLinkForHint(b)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document.createElement("img");d.setAttribute("src",Editor.editImage);d.setAttribute("title",mxResources.get("editLink"));d.setAttribute("width","11");d.setAttribute("height","11");d.style.marginLeft="10px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,
function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));var e=document.createElement("img");e.setAttribute("src",Dialog.prototype.clearImage);e.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));e.setAttribute("width","13");e.setAttribute("height","10");e.style.marginLeft="4px";e.style.marginBottom="-1px";e.style.cursor="pointer";this.linkHint.appendChild(e);mxEvent.addListener(e,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,
-null);mxEvent.consume(a)}))}if(null!=c)for(d=0;d<c.length;d++){var f=document.createElement("div");f.style.marginTop=null!=b||0<d?"6px":"0px";f.appendChild(this.graph.createLinkForHint(c[d].getAttribute("href"),mxUtils.getTextContent(c[d])));this.linkHint.appendChild(f)}}}catch(ia){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var R=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){R.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,
+null);mxEvent.consume(a)}))}if(null!=c)for(d=0;d<c.length;d++){var g=document.createElement("div");g.style.marginTop=null!=b||0<d?"6px":"0px";g.appendChild(this.graph.createLinkForHint(c[d].getAttribute("href"),mxUtils.getTextContent(c[d])));this.linkHint.appendChild(g)}}}catch(ia){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var R=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){R.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,
function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(b,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
a();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var b=this.graph.getLinkForCell(this.state.cell),c=this.graph.getLinksForState(this.state);if(null!=b||null!=c&&0<c.length)this.updateLinkHint(b,c),this.redrawHandles()};var S=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){S.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,
function(){return this.graph.connectionHandler.isEnabled()})};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");K.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),b=new mxRectangle(this.state.x,
this.state.y-22,this.state.width+24,this.state.height+22),c=mxUtils.getBoundingBox(b,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=c?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,b=null!=this.state.text?this.state.text.boundingBox:null;null==c&&(c=this.state);c=c.y+c.height;null!=b&&(c=Math.max(c,b.y+b.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(c+
this.verticalOffset/2+Editor.hintOffset)+"px"}};var I=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){I.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),
-this.editingHandler=null)};var M=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(M.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+
-"px"}};var U=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){U.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var da=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),
+this.editingHandler=null)};var N=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(N.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+
+"px"}};var T=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){T.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var da=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),
this.changeHandler=null)}}();Format=function(a,c){this.editorUi=a;this.container=c};Format.prototype.labelIndex=0;Format.prototype.currentIndex=0;Format.prototype.showCloseButton=!0;Format.prototype.inactiveTabBackgroundColor="#f1f3f4";Format.prototype.roundableShapes="label rectangle internalStorage corner parallelogram swimlane triangle trapezoid ext step tee process link rhombus offPageConnector loopLimit hexagon manualInput curlyBracket singleArrow callout doubleArrow flexArrow card umlLifeline".split(" ");
Format.prototype.init=function(){var a=this.editorUi.editor,c=a.graph;this.update=mxUtils.bind(this,function(a,b){this.clearSelectionState();this.refresh()});c.getSelectionModel().addListener(mxEvent.CHANGE,this.update);c.addListener(mxEvent.EDITING_STARTED,this.update);c.addListener(mxEvent.EDITING_STOPPED,this.update);c.getModel().addListener(mxEvent.CHANGE,this.update);c.addListener(mxEvent.ROOT,mxUtils.bind(this,function(){this.refresh()}));a.addListener("autosaveChanged",mxUtils.bind(this,function(){this.refresh()}));
this.refresh()};Format.prototype.clearSelectionState=function(){this.selectionState=null};Format.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};Format.prototype.createSelectionState=function(){for(var a=this.editorUi.editor.graph.getSelectionCells(),c=this.initSelectionState(),d=0;d<a.length;d++)this.updateSelectionStateForCell(c,a[d],a);return c};
@@ -2764,19 +2768,19 @@ if(f)k.style.borderLeftWidth="0px";else{b.style.borderLeftWidth="0px";mxUtils.wr
d=d.cloneNode(!1);d.style.display="none";this.panels.push(new ArrangePanel(this,a,d));this.container.appendChild(d);c(k,b,g++);c(l,d,g++)}}};BaseFormatPanel=function(a,c,d){this.format=a;this.editorUi=c;this.container=d;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
BaseFormatPanel.prototype.getSelectionState=function(){for(var a=this.editorUi.editor.graph,c=a.getSelectionCells(),d=null,b=0;b<c.length;b++){var f=a.view.getState(c[b]);if(null!=f&&(f=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null),null!=f))if(null==d)d=f;else if(d!=f)return null}return d};
BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,h,g){e=null!=e?e:"";g=null!=g?g:!1;var k=this.editorUi,l=k.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,n=!1,p=mxUtils.bind(this,function(p){var q=g?parseFloat(a.value):parseInt(a.value);isNaN(q)||c!=mxConstants.STYLE_ROTATION||(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(f,Math.max(b,isNaN(q)?d:q));if(l.cellEditor.isContentEditing()&&h)n||(n=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),h(q),a.value=q+e,
-n=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{var v=l.getSelectionCells();l.setCellStyles(c,q,v);c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=q+"px";a.removeAttribute("size")});for(var t=0;t<v.length;t++)0==l.model.getChildCount(v[t])&&l.autoSizeCell(v[t],!1);k.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",v))}finally{l.getModel().endUpdate()}}a.value=
+n=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{var v=l.getSelectionCells();l.setCellStyles(c,q,v);c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=q+"px";a.removeAttribute("size")});for(var r=0;r<v.length;r++)0==l.model.getChildCount(v[r])&&l.autoSizeCell(v[r],!1);k.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",v))}finally{l.getModel().endUpdate()}}a.value=
q+e;mxEvent.consume(p)});h&&l.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",p);mxEvent.addListener(a,"blur",p);return p};
BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.className="geFormatSection";a.style.padding="12px 0px 12px 18px";return a};BaseFormatPanel.prototype.createTitle=function(a){var c=document.createElement("div");c.style.padding="0px 0px 6px 0px";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.width="200px";c.style.fontWeight="bold";mxUtils.write(c,a);return c};
BaseFormatPanel.prototype.createStepper=function(a,c,d,b,f,e,h){d=null!=d?d:1;b=null!=b?b:8;if(mxClient.IS_QUIRKS)b-=2;else if(mxClient.IS_MT||8<=document.documentMode)b+=1;var g=document.createElement("div");mxUtils.setPrefixedStyle(g.style,"borderRadius","3px");g.style.border="1px solid rgb(192, 192, 192)";g.style.position="absolute";var k=document.createElement("div");k.style.borderBottom="1px solid rgb(192, 192, 192)";k.style.position="relative";k.style.height=b+"px";k.style.width="10px";k.className=
-"geBtnUp";g.appendChild(k);var l=k.cloneNode(!1);l.style.border="none";l.style.height=b+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addListener(l,"click",function(b){""==a.value&&(a.value=e||"2");var f=h?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"0");var f=h?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var m=null;
+"geBtnUp";g.appendChild(k);var l=k.cloneNode(!1);l.style.border="none";l.style.height=b+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addListener(l,"click",function(b){""==a.value&&(a.value=e||"2");var g=h?parseFloat(a.value):parseInt(a.value);isNaN(g)||(a.value=g-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"0");var g=h?parseFloat(a.value):parseInt(a.value);isNaN(g)||(a.value=g+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var m=null;
mxEvent.addGestureListeners(g,function(a){if(mxClient.IS_QUIRKS||8==document.documentMode)m=document.selection.createRange();mxEvent.consume(a)},null,function(a){if(null!=m){try{m.select()}catch(p){}m=null;mxEvent.consume(a)}})}return g};
BaseFormatPanel.prototype.createOption=function(a,c,d,b){var f=document.createElement("div");f.style.padding="6px 0px 1px 0px";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.width="200px";f.style.height=mxClient.IS_QUIRKS?"27px":"18px";var e=document.createElement("input");e.setAttribute("type","checkbox");e.style.margin="0px 6px 0px 0px";f.appendChild(e);var h=document.createElement("span");mxUtils.write(h,a);f.appendChild(h);var g=!1,k=c(),l=function(a){g||(g=!0,a?(e.setAttribute("checked",
"checked"),e.defaultChecked=!0,e.checked=!0):(e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1),k!=a&&(k=a,c()!=k&&d(k)),g=!1)};mxEvent.addListener(f,"click",function(a){if("disabled"!=e.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==f||a==h)e.checked=!e.checked;l(e.checked)}});l(k);null!=b&&(b.install(l),this.listeners.push(b));return f};
BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,h,g){b=null!=b?"null"==b?null:b:"1";f=null!=f?"null"==f?null:f:"0";var k=this.editorUi,l=k.editor.graph;return this.createOption(a,function(){var a=l.view.getState(l.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,d)!=f:null},function(a){g&&l.stopEditing();if(null!=h)h.funct();else{l.getModel().beginUpdate();try{a=a?b:f,l.setCellStyles(c,a,l.getSelectionCells()),null!=e&&e(l.getSelectionCells(),a),k.fireEvent(new mxEventObject("styleChanged",
"keys",[c],"values",[a],"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}},{install:function(a){this.listener=function(){var b=l.view.getState(l.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,d)!=f)};l.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){l.getModel().removeListener(this.listener)}})};
-BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,h){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height=mxClient.IS_QUIRKS?"27px":"18px";var k=document.createElement("input");k.setAttribute("type","checkbox");k.style.margin="0px 6px 0px 0px";h||g.appendChild(k);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=c(),n=!1,p=null,q=function(a,f,g){if(!n){n=
+BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,h){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height=mxClient.IS_QUIRKS?"27px":"18px";var k=document.createElement("input");k.setAttribute("type","checkbox");k.style.margin="0px 6px 0px 0px";h||g.appendChild(k);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=c(),n=!1,p=null,q=function(a,g,f){if(!n){n=
!0;a=/(^#?[a-zA-Z0-9]*$)/.test(a)?a:b;p.innerHTML='<div style="width:'+(mxClient.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+mxUtils.htmlEntities(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>';if(mxClient.IS_QUIRKS||8==document.documentMode)p.firstChild.style.margin="0px";null!=a&&a!=mxConstants.NONE?(k.setAttribute("checked","checked"),k.defaultChecked=!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1);p.style.display=k.checked||
-h?"":"none";null!=e&&e(a);f||(m=a,(g||h||c()!=m)&&d(m));n=!1}},p=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(m,function(a){q(a,null,!0)});mxEvent.consume(a)}));p.style.position="absolute";p.style.marginTop="-4px";p.style.right=mxClient.IS_QUIRKS?"0px":"20px";p.style.height="22px";p.className="geColorBtn";p.style.display=k.checked||h?"":"none";g.appendChild(p);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==k||"INPUT"!=a.nodeName)a!=k&&(k.checked=
+h?"":"none";null!=e&&e(a);g||(m=a,(f||h||c()!=m)&&d(m));n=!1}},p=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(m,function(a){q(a,null,!0)});mxEvent.consume(a)}));p.style.position="absolute";p.style.marginTop="-4px";p.style.right=mxClient.IS_QUIRKS?"0px":"20px";p.style.height="22px";p.className="geColorBtn";p.style.display=k.checked||h?"":"none";g.appendChild(p);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==k||"INPUT"!=a.nodeName)a!=k&&(k.checked=
!k.checked),k.checked||null==m||m==mxConstants.NONE||b==mxConstants.NONE||(b=m),q(k.checked?b:mxConstants.NONE)});q(m,!0);null!=f&&(f.install(q),this.listeners.push(f));return g};
BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,h=e.editor.graph;return this.createColorOption(a,function(){var a=h.view.getState(h.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){h.getModel().beginUpdate();try{null!=f&&f(a),h.setCellStyles(c,a,h.getSelectionCells()),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",h.getSelectionCells()))}finally{h.getModel().endUpdate()}},d||mxConstants.NONE,
{install:function(a){this.listener=function(){var b=h.view.getState(h.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,null))};h.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){h.getModel().removeListener(this.listener)}},b)};
@@ -2815,50 +2819,50 @@ BaseFormatPanel.prototype.getUnitStep=function(){switch(this.editorUi.editor.gra
ArrangePanel.prototype.addGeometry=function(a){var c=this,d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createPanel();e.style.paddingBottom="8px";var h=document.createElement("div");h.style.position="absolute";h.style.width="50px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("size"));e.appendChild(h);var g,k,l,m,n=this.addUnitInput(e,this.getUnit(),84,44,function(){g.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),
p=this.addUnitInput(e,this.getUnit(),20,44,function(){k.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),q=document.createElement("div");q.className="geSprite geSprite-fit";q.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");q.style.position="relative";q.style.cursor="pointer";q.style.marginTop="-3px";q.style.border="0px";q.style.left="52px";mxUtils.setOpacity(q,50);mxEvent.addListener(q,"mouseenter",function(){mxUtils.setOpacity(q,
100)});mxEvent.addListener(q,"mouseleave",function(){mxUtils.setOpacity(q,50)});mxEvent.addListener(q,"click",function(){d.actions.get("autosize").funct()});e.appendChild(q);this.addLabel(e,mxResources.get("width"),84);this.addLabel(e,mxResources.get("height"),20);mxUtils.br(e);h=document.createElement("div");h.style.paddingTop="8px";h.style.paddingRight="20px";h.style.whiteSpace="nowrap";h.style.textAlign="right";var u=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,
-null,"fixed","null");u.style.width="100%";h.appendChild(u);e.appendChild(h);var v=u.getElementsByTagName("input")[0];this.addKeyHandler(n,x);this.addKeyHandler(p,x);g=this.addGeometryHandler(n,function(a,b){0<a.width&&(b=Math.max(1,c.fromUnit(b)),v.checked&&(a.height=Math.round(a.height*b*100/a.width)/100),a.width=b)});k=this.addGeometryHandler(p,function(a,b){0<a.height&&(b=Math.max(1,c.fromUnit(b)),v.checked&&(a.width=Math.round(a.width*b*100/a.height)/100),a.height=b)});a.appendChild(e);var t=
-this.createPanel();t.style.paddingBottom="30px";h=document.createElement("div");h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("position"));t.appendChild(h);var w=this.addUnitInput(t,this.getUnit(),84,44,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),r=this.addUnitInput(t,this.getUnit(),20,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());
-mxUtils.br(t);this.addLabel(t,mxResources.get("left"),84);this.addLabel(t,mxResources.get("top"),20);var x=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();if(f.containsLabel||f.vertices.length!=b.getSelectionCount()||null==f.width||null==f.height)e.style.display="none";else{e.style.display="";if(d||document.activeElement!=n)n.value=this.inUnit(f.width)+(""==f.width?"":" "+this.getUnit());if(d||document.activeElement!=p)p.value=this.inUnit(f.height)+(""==f.height?"":" "+this.getUnit())}if(f.vertices.length==
-b.getSelectionCount()&&null!=f.x&&null!=f.y){t.style.display="";if(d||document.activeElement!=w)w.value=this.inUnit(f.x)+(""==f.x?"":" "+this.getUnit());if(d||document.activeElement!=r)r.value=this.inUnit(f.y)+(""==f.y?"":" "+this.getUnit())}else t.style.display="none"});this.addKeyHandler(w,x);this.addKeyHandler(r,x);b.getModel().addListener(mxEvent.CHANGE,x);this.listeners.push({destroy:function(){b.getModel().removeListener(x)}});x();l=this.addGeometryHandler(w,function(a,b){b=c.fromUnit(b);a.relative?
-a.offset.x=b:a.x=b});m=this.addGeometryHandler(r,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});a.appendChild(t)};
+null,"fixed","null");u.style.width="100%";h.appendChild(u);e.appendChild(h);var v=u.getElementsByTagName("input")[0];this.addKeyHandler(n,x);this.addKeyHandler(p,x);g=this.addGeometryHandler(n,function(a,b){0<a.width&&(b=Math.max(1,c.fromUnit(b)),v.checked&&(a.height=Math.round(a.height*b*100/a.width)/100),a.width=b)});k=this.addGeometryHandler(p,function(a,b){0<a.height&&(b=Math.max(1,c.fromUnit(b)),v.checked&&(a.width=Math.round(a.width*b*100/a.height)/100),a.height=b)});a.appendChild(e);var r=
+this.createPanel();r.style.paddingBottom="30px";h=document.createElement("div");h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("position"));r.appendChild(h);var w=this.addUnitInput(r,this.getUnit(),84,44,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),t=this.addUnitInput(r,this.getUnit(),20,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());
+mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);var x=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();if(f.containsLabel||f.vertices.length!=b.getSelectionCount()||null==f.width||null==f.height)e.style.display="none";else{e.style.display="";if(d||document.activeElement!=n)n.value=this.inUnit(f.width)+(""==f.width?"":" "+this.getUnit());if(d||document.activeElement!=p)p.value=this.inUnit(f.height)+(""==f.height?"":" "+this.getUnit())}if(f.vertices.length==
+b.getSelectionCount()&&null!=f.x&&null!=f.y){r.style.display="";if(d||document.activeElement!=w)w.value=this.inUnit(f.x)+(""==f.x?"":" "+this.getUnit());if(d||document.activeElement!=t)t.value=this.inUnit(f.y)+(""==f.y?"":" "+this.getUnit())}else r.style.display="none"});this.addKeyHandler(w,x);this.addKeyHandler(t,x);b.getModel().addListener(mxEvent.CHANGE,x);this.listeners.push({destroy:function(){b.getModel().removeListener(x)}});x();l=this.addGeometryHandler(w,function(a,b){b=c.fromUnit(b);a.relative?
+a.offset.x=b:a.x=b});m=this.addGeometryHandler(t,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});a.appendChild(r)};
ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" "+e.getUnit();else if(g!=f){b.getModel().beginUpdate();try{for(var h=b.getSelectionCells(),l=0;l<h.length;l++)if(b.getModel().isVertex(h[l])){var m=b.getCellGeometry(h[l]);null!=m&&(m=m.clone(),c(m,g),b.getModel().setGeometry(h[l],m))}}finally{b.getModel().endUpdate()}f=g;a.value=g+" "+e.getUnit()}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null,e=this;
mxEvent.addListener(a,"blur",d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(isNaN(e))a.value=f+" pt";else if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),k=0;k<g.length;k++)if(b.getModel().isEdge(g[k])){var l=b.getCellGeometry(g[k]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[k],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
ArrangePanel.prototype.addEdgeGeometry=function(a){function c(a){var c=parseInt(n.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)&&(b.setCellStyles("width",c,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[c],"cells",b.getSelectionCells())));n.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createPanel(),
-h=document.createElement("div");h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("width"));e.appendChild(h);var g,k,l,m,n=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(n,r);mxEvent.addListener(n,"blur",c);mxEvent.addListener(n,"change",c);a.appendChild(e);var p=this.createPanel();p.style.paddingBottom="30px";h=document.createElement("div");h.style.position="absolute";
-h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"Start");p.appendChild(h);var q=this.addUnitInput(p,"pt",84,44,function(){l.apply(this,arguments)}),u=this.addUnitInput(p,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(p);this.addLabel(p,mxResources.get("left"),84);this.addLabel(p,mxResources.get("top"),20);a.appendChild(p);this.addKeyHandler(q,r);this.addKeyHandler(u,r);var v=this.createPanel();v.style.paddingBottom="30px";h=document.createElement("div");
-h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"End");v.appendChild(h);var t=this.addUnitInput(v,"pt",84,44,function(){g.apply(this,arguments)}),w=this.addUnitInput(v,"pt",20,44,function(){k.apply(this,arguments)});mxUtils.br(v);this.addLabel(v,mxResources.get("left"),84);this.addLabel(v,mxResources.get("top"),20);a.appendChild(v);this.addKeyHandler(t,r);this.addKeyHandler(w,r);var r=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
+h=document.createElement("div");h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("width"));e.appendChild(h);var g,k,l,m,n=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(n,t);mxEvent.addListener(n,"blur",c);mxEvent.addListener(n,"change",c);a.appendChild(e);var p=this.createPanel();p.style.paddingBottom="30px";h=document.createElement("div");h.style.position="absolute";
+h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"Start");p.appendChild(h);var q=this.addUnitInput(p,"pt",84,44,function(){l.apply(this,arguments)}),u=this.addUnitInput(p,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(p);this.addLabel(p,mxResources.get("left"),84);this.addLabel(p,mxResources.get("top"),20);a.appendChild(p);this.addKeyHandler(q,t);this.addKeyHandler(u,t);var v=this.createPanel();v.style.paddingBottom="30px";h=document.createElement("div");
+h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"End");v.appendChild(h);var r=this.addUnitInput(v,"pt",84,44,function(){g.apply(this,arguments)}),w=this.addUnitInput(v,"pt",20,44,function(){k.apply(this,arguments)});mxUtils.br(v);this.addLabel(v,mxResources.get("left"),84);this.addLabel(v,mxResources.get("top"),20);a.appendChild(v);this.addKeyHandler(r,t);this.addKeyHandler(w,t);var t=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
a=b.getSelectionCell();if("link"==f.style.shape||"flexArrow"==f.style.shape){if(e.style.display="",d||document.activeElement!=n)d=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),n.value=d+" pt"}else e.style.display="none";1==b.getSelectionCount()&&b.model.isEdge(a)?(d=b.model.getGeometry(a),null!=d.sourcePoint&&null==b.model.getTerminal(a,!0)?(q.value=d.sourcePoint.x,u.value=d.sourcePoint.y):p.style.display="none",null!=d.targetPoint&&null==b.model.getTerminal(a,
-!1)?(t.value=d.targetPoint.x,w.value=d.targetPoint.y):v.style.display="none"):(p.style.display="none",v.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(u,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(t,function(a,b){a.targetPoint.x=b});k=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,r);this.listeners.push({destroy:function(){b.getModel().removeListener(r)}});
-r()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
+!1)?(r.value=d.targetPoint.x,w.value=d.targetPoint.y):v.style.display="none"):(p.style.display="none",v.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(u,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(r,function(a,b){a.targetPoint.x=b});k=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,t);this.listeners.push({destroy:function(){b.getModel().removeListener(t)}});
+t()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
TextFormatPanel.prototype.addFont=function(a){function c(a,b){mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?a.style.filter=b?"progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#c5ecff', EndColorStr='#87d4fb', GradientType=0)":"":a.style.backgroundImage=b?"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="18px";e.style.paddingTop="10px";e.style.paddingBottom=
"6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";mxClient.IS_QUIRKS&&(e.style.display="block");if(b.cellEditor.isContentEditing()){var h=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",h,null,!0);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow=
"hidden";g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";g=g.getElementsByTagName("div")[0];g.style.cssFloat="right";a.appendChild(h)}a.appendChild(e);h=this.createPanel();h.style.marginTop="8px";h.style.borderTop="1px solid #c0c0c0";h.style.paddingTop="6px";h.style.paddingBottom="6px";var k=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e,null,!0);k.style.color="rgb(112, 112, 112)";k.style.whiteSpace="nowrap";k.style.overflow=
"hidden";k.style.margin="0px";this.addArrow(k);k.style.width="192px";k.style.height="15px";g=e.cloneNode(!1);g.style.marginLeft="-3px";var l=this.editorUi.toolbar.addItems(["bold","italic","underline"],g,!0);l[0].setAttribute("title",mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");l[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");l[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+
")");var m=this.editorUi.toolbar.addItems(["vertical"],g,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(g);this.styleButtons(l);this.styleButtons([m]);var n=e.cloneNode(!1);n.style.marginLeft="-3px";n.style.paddingBottom="0px";var p=function(a){return function(){return a()}},q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_LEFT,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],
[mxConstants.ALIGN_LEFT])),n),u=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_CENTER,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),n),v=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],
-[mxConstants.ALIGN_RIGHT])),n);this.styleButtons([q,u,v]);if(b.cellEditor.isContentEditing()){var t=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},g);this.styleButtons([t]);t.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
-t.firstChild.style.backgroundPosition="2px 2px";t.firstChild.style.backgroundSize="18px 18px";this.styleButtons([t])}var w=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),n),r=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),n),x=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([w,r,x]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(n);var y,D,B,E,A,G,J;b.cellEditor.isContentEditing()?(w.style.display="none",r.style.display="none",x.style.display="none",m.style.display="none",B=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==B.style.opacity&&document.execCommand("justifyfull",
+[mxConstants.ALIGN_RIGHT])),n);this.styleButtons([q,u,v]);if(b.cellEditor.isContentEditing()){var r=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},g);this.styleButtons([r]);r.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
+r.firstChild.style.backgroundPosition="2px 2px";r.firstChild.style.backgroundSize="18px 18px";this.styleButtons([r])}var w=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),n),t=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),n),x=this.editorUi.toolbar.addButton("geSprite-bottom",
+mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([w,t,x]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(n);var y,D,B,E,A,G,J;b.cellEditor.isContentEditing()?(w.style.display="none",t.style.display="none",x.style.display="none",m.style.display="none",B=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==B.style.opacity&&document.execCommand("justifyfull",
!1,null)},n),B.style.marginRight="9px",B.style.opacity=1,this.styleButtons([B,y=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},n),D=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},n)]),y.style.marginLeft="9px",p=n.cloneNode(!1),p.style.paddingTop="4px",n=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",
!1,null)},p),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode()},p)],this.styleButtons(n),n[n.length-2].style.marginLeft="9px",mxClient.IS_QUIRKS&&(mxUtils.br(a),p.style.height="40"),a.appendChild(p)):(l[2].style.marginRight="9px",v.style.marginRight="9px");n=e.cloneNode(!1);n.style.marginLeft=
-"0px";n.style.paddingTop="8px";n.style.paddingBottom="4px";n.style.fontWeight="normal";mxUtils.write(n,mxResources.get("position"));var H=document.createElement("select");H.style.position="absolute";H.style.right="20px";H.style.width="97px";H.style.marginTop="-2px";for(var t="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),L={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,
+"0px";n.style.paddingTop="8px";n.style.paddingBottom="4px";n.style.fontWeight="normal";mxUtils.write(n,mxResources.get("position"));var H=document.createElement("select");H.style.position="absolute";H.style.right="20px";H.style.width="97px";H.style.marginTop="-2px";for(var r="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),L={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,
mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],topRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM],left:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE],center:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE],bottomLeft:[mxConstants.ALIGN_LEFT,
-mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},p=0;p<t.length;p++){var F=document.createElement("option");F.setAttribute("value",t[p]);mxUtils.write(F,mxResources.get(t[p]));H.appendChild(F)}n.appendChild(H);t=e.cloneNode(!1);t.style.marginLeft="0px";t.style.paddingTop=
-"4px";t.style.paddingBottom="4px";t.style.fontWeight="normal";mxUtils.write(t,mxResources.get("writingDirection"));var P=document.createElement("select");P.style.position="absolute";P.style.right="20px";P.style.width="97px";P.style.marginTop="-2px";for(var F=["automatic","leftToRight","rightToLeft"],R={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<F.length;p++){var S=document.createElement("option");S.setAttribute("value",F[p]);mxUtils.write(S,
-mxResources.get(F[p]));P.appendChild(S)}t.appendChild(P);b.isEditing()||(a.appendChild(n),mxEvent.addListener(H,"change",function(a){b.getModel().beginUpdate();try{var c=L[H.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),
-a.appendChild(t),mxEvent.addListener(P,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,R[P.value],b.getSelectionCells());mxEvent.consume(a)}));var K=document.createElement("input");K.style.textAlign="right";K.style.marginTop="4px";mxClient.IS_QUIRKS||(K.style.position="absolute",K.style.right="32px");K.style.width="46px";K.style.height=mxClient.IS_QUIRKS?"21px":"17px";g.appendChild(K);var I=null,n=this.installInputHandler(K,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,
+mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},p=0;p<r.length;p++){var F=document.createElement("option");F.setAttribute("value",r[p]);mxUtils.write(F,mxResources.get(r[p]));H.appendChild(F)}n.appendChild(H);r=e.cloneNode(!1);r.style.marginLeft="0px";r.style.paddingTop=
+"4px";r.style.paddingBottom="4px";r.style.fontWeight="normal";mxUtils.write(r,mxResources.get("writingDirection"));var P=document.createElement("select");P.style.position="absolute";P.style.right="20px";P.style.width="97px";P.style.marginTop="-2px";for(var F=["automatic","leftToRight","rightToLeft"],R={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<F.length;p++){var S=document.createElement("option");S.setAttribute("value",F[p]);mxUtils.write(S,
+mxResources.get(F[p]));P.appendChild(S)}r.appendChild(P);b.isEditing()||(a.appendChild(n),mxEvent.addListener(H,"change",function(a){b.getModel().beginUpdate();try{var c=L[H.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),
+a.appendChild(r),mxEvent.addListener(P,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,R[P.value],b.getSelectionCells());mxEvent.consume(a)}));var K=document.createElement("input");K.style.textAlign="right";K.style.marginTop="4px";mxClient.IS_QUIRKS||(K.style.position="absolute",K.style.right="32px");K.style.width="46px";K.style.height=mxClient.IS_QUIRKS?"21px":"17px";g.appendChild(K);var I=null,n=this.installInputHandler(K,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,
1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var c=function(c,e){null!=b.cellEditor.textarea&&c!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(c)&&(e||d.containsNode(c,!0))&&("FONT"==c.nodeName?(c.removeAttribute("size"),c.style.fontSize=a+"px"):mxUtils.getCurrentStyle(c).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(c.parentNode).fontSize!=a+"px"?c.style.fontSize=a+"px":c.style.fontSize=""))},d=window.getSelection(),e=0<d.rangeCount?d.getRangeAt(0).commonAncestorContainer:
-b.cellEditor.textarea;e!=b.cellEditor.textarea&&e.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(e=0;e<f.length;e++)c(f[e])}K.value=a+" pt"}else if(window.getSelection||document.selection)if(c=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},f=null,document.selection?f=document.selection.createRange().parentElement():
-(d=window.getSelection(),0<d.rangeCount&&(f=d.getRangeAt(0).commonAncestorContainer)),null!=f&&c(b.cellEditor.textarea,f))for(I=a,document.execCommand("fontSize",!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++)if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=I+"px";window.setTimeout(function(){K.value=I+" pt";I=null},0);break}},!0),n=this.createStepper(K,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=K.style.display;n.style.marginTop=
-"4px";mxClient.IS_QUIRKS||(n.style.right="20px");g.appendChild(n);g=k.getElementsByTagName("div")[0];g.style.cssFloat="right";var M=null,U="#ffffff",da=null,z="#000000",N=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return U},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){M=a},destroy:function(){M=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),
-mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,function(a){b.updateLabelElements(b.getSelectionCells(),function(a){a.style.backgroundColor=null})});N.style.fontWeight="bold";var Q=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");Q.style.fontWeight="bold";g=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return z},function(a){if(mxClient.IS_FF){for(var c=b.cellEditor.textarea.getElementsByTagName("font"),
-d=[],e=0;e<c.length;e++)d.push({node:c[e],color:c[e].getAttribute("color")});document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent");a=b.cellEditor.textarea.getElementsByTagName("font");for(e=0;e<a.length;e++)if(e>=d.length||a[e]!=d[e].node||a[e]==d[e].node&&a[e].getAttribute("color")!=d[e].color){d=a[e].firstChild;if(null!=d&&"A"==d.nodeName&&null==d.nextSibling&&null!=d.firstChild){a[e].parentNode.insertBefore(d,a[e]);for(c=d.firstChild;null!=c;){var f=c.nextSibling;a[e].appendChild(c);
-c=f}d.appendChild(a[e])}break}}else document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent")},"#000000",{install:function(a){da=a},destroy:function(){da=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"#000000",function(a){N.style.display=null==a||a==mxConstants.NONE?"none":"";Q.style.display=N.style.display},function(a){null==a||a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,"1",b.getSelectionCells()):b.setCellStyles(mxConstants.STYLE_NOLABEL,
-null,b.getSelectionCells());b.updateLabelElements(b.getSelectionCells(),function(a){a.removeAttribute("color");a.style.color=null})});g.style.fontWeight="bold";h.appendChild(g);h.appendChild(N);b.cellEditor.isContentEditing()||h.appendChild(Q);a.appendChild(h);h=this.createPanel();h.style.paddingTop="2px";h.style.paddingBottom="4px";g=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0);g.style.fontWeight="bold";f.containsLabel||f.autoSize||
-0!=f.edges.length||h.appendChild(g);g=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,d.actions.get("formattedText"));g.style.fontWeight="bold";h.appendChild(g);g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="28px";g.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.width="70px";n.style.marginTop="0px";n.style.fontWeight="bold";mxUtils.write(n,mxResources.get("spacing"));g.appendChild(n);var T,V,ia,
-aa,W,ea=this.addUnitInput(g,"pt",91,44,function(){T.apply(this,arguments)}),ca=this.addUnitInput(g,"pt",20,44,function(){V.apply(this,arguments)});mxUtils.br(g);this.addLabel(g,mxResources.get("top"),91);this.addLabel(g,mxResources.get("global"),20);mxUtils.br(g);mxUtils.br(g);var fa=this.addUnitInput(g,"pt",162,44,function(){ia.apply(this,arguments)}),ga=this.addUnitInput(g,"pt",91,44,function(){aa.apply(this,arguments)}),ba=this.addUnitInput(g,"pt",20,44,function(){W.apply(this,arguments)});mxUtils.br(g);
+b.cellEditor.textarea;e!=b.cellEditor.textarea&&e.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var g=e.getElementsByTagName("*");c(e);for(e=0;e<g.length;e++)c(g[e])}K.value=a+" pt"}else if(window.getSelection||document.selection)if(c=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},g=null,document.selection?g=document.selection.createRange().parentElement():
+(d=window.getSelection(),0<d.rangeCount&&(g=d.getRangeAt(0).commonAncestorContainer)),null!=g&&c(b.cellEditor.textarea,g))for(I=a,document.execCommand("fontSize",!1,"4"),g=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<g.length;e++)if("4"==g[e].getAttribute("size")){g[e].removeAttribute("size");g[e].style.fontSize=I+"px";window.setTimeout(function(){K.value=I+" pt";I=null},0);break}},!0),n=this.createStepper(K,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=K.style.display;n.style.marginTop=
+"4px";mxClient.IS_QUIRKS||(n.style.right="20px");g.appendChild(n);g=k.getElementsByTagName("div")[0];g.style.cssFloat="right";var N=null,T="#ffffff",da=null,z="#000000",M=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return T},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){N=a},destroy:function(){N=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),
+mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,function(a){b.updateLabelElements(b.getSelectionCells(),function(a){a.style.backgroundColor=null})});M.style.fontWeight="bold";var Q=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");Q.style.fontWeight="bold";g=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return z},function(a){if(mxClient.IS_FF){for(var c=b.cellEditor.textarea.getElementsByTagName("font"),
+d=[],e=0;e<c.length;e++)d.push({node:c[e],color:c[e].getAttribute("color")});document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent");a=b.cellEditor.textarea.getElementsByTagName("font");for(e=0;e<a.length;e++)if(e>=d.length||a[e]!=d[e].node||a[e]==d[e].node&&a[e].getAttribute("color")!=d[e].color){d=a[e].firstChild;if(null!=d&&"A"==d.nodeName&&null==d.nextSibling&&null!=d.firstChild){a[e].parentNode.insertBefore(d,a[e]);for(c=d.firstChild;null!=c;){var g=c.nextSibling;a[e].appendChild(c);
+c=g}d.appendChild(a[e])}break}}else document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent")},"#000000",{install:function(a){da=a},destroy:function(){da=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"#000000",function(a){M.style.display=null==a||a==mxConstants.NONE?"none":"";Q.style.display=M.style.display},function(a){null==a||a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,"1",b.getSelectionCells()):b.setCellStyles(mxConstants.STYLE_NOLABEL,
+null,b.getSelectionCells());b.updateLabelElements(b.getSelectionCells(),function(a){a.removeAttribute("color");a.style.color=null})});g.style.fontWeight="bold";h.appendChild(g);h.appendChild(M);b.cellEditor.isContentEditing()||h.appendChild(Q);a.appendChild(h);h=this.createPanel();h.style.paddingTop="2px";h.style.paddingBottom="4px";g=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0);g.style.fontWeight="bold";f.containsLabel||f.autoSize||
+0!=f.edges.length||h.appendChild(g);g=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,d.actions.get("formattedText"));g.style.fontWeight="bold";h.appendChild(g);g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="28px";g.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.width="70px";n.style.marginTop="0px";n.style.fontWeight="bold";mxUtils.write(n,mxResources.get("spacing"));g.appendChild(n);var U,V,ia,
+aa,W,ea=this.addUnitInput(g,"pt",91,44,function(){U.apply(this,arguments)}),ca=this.addUnitInput(g,"pt",20,44,function(){V.apply(this,arguments)});mxUtils.br(g);this.addLabel(g,mxResources.get("top"),91);this.addLabel(g,mxResources.get("global"),20);mxUtils.br(g);mxUtils.br(g);var fa=this.addUnitInput(g,"pt",162,44,function(){ia.apply(this,arguments)}),ga=this.addUnitInput(g,"pt",91,44,function(){aa.apply(this,arguments)}),ba=this.addUnitInput(g,"pt",20,44,function(){W.apply(this,arguments)});mxUtils.br(g);
this.addLabel(g,mxResources.get("left"),162);this.addLabel(g,mxResources.get("bottom"),91);this.addLabel(g,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var Z=null,ja=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(a){var c=""==a.value?120:parseInt(a.value),c=Math.max(0,isNaN(c)?120:c);null!=Z&&(b.cellEditor.restoreSelection(Z),Z=null);for(var d=b.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;
null!=d&&d==b.cellEditor.textarea&&null!=b.cellEditor.textarea.firstChild&&("P"!=b.cellEditor.textarea.firstChild.nodeName&&(b.cellEditor.textarea.innerHTML="<p>"+b.cellEditor.textarea.innerHTML+"</p>"),d=b.cellEditor.textarea.firstChild);null!=d&&null!=b.cellEditor.textarea&&d!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(d)&&(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){ja=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(Z=b.cellEditor.saveSelection())});
mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(Z=b.cellEditor.saveSelection())});a.value="120 %"}));h=e.cloneNode(!1);h.style.paddingLeft="0px";g=this.editorUi.toolbar.addItems(["link","image"],h,!0);n=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),function(){document.execCommand("inserthorizontalrule",!1)},h),this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-table",mxResources.get("table"),
@@ -2872,17 +2876,17 @@ function(c){var d=null==G||null!=a&&mxEvent.isShiftDown(a)?A:G;b.processElements
d.showDialog(a.container,300,80,!0,!0);a.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=A&&A.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=A&&A.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=A&&A.setAttribute("align","right")},e)];this.styleButtons(n);n[2].style.marginRight="9px";mxClient.IS_QUIRKS&&
(mxUtils.br(h),mxUtils.br(h));h.appendChild(e);a.appendChild(h);E=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(g);var Y=mxUtils.bind(this,function(a,b,d){f=this.format.getSelectionState();a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(l[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);c(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);
k.firstChild.nodeValue=mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);c(m,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=K)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),K.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_LEFT);c(u,a==mxConstants.ALIGN_CENTER);c(v,a==mxConstants.ALIGN_RIGHT);
-a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(w,a==mxConstants.ALIGN_TOP);c(r,a==mxConstants.ALIGN_MIDDLE);c(x,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);b=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);H.value=a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&
+a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(w,a==mxConstants.ALIGN_TOP);c(t,a==mxConstants.ALIGN_MIDDLE);c(x,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);b=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);H.value=a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&
b==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(f.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?P.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?
P.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(P.value="automatic");if(d||document.activeElement!=ca)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),ca.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ea)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_TOP,0)),ea.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ba)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_RIGHT,0)),ba.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=
-ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=fa)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,0)),fa.value=isNaN(a)?"":a+" pt"});V=this.installInputHandler(ca,mxConstants.STYLE_SPACING,2,-999,999," pt");T=this.installInputHandler(ea,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");W=this.installInputHandler(ba,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");aa=this.installInputHandler(ga,
+ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=fa)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,0)),fa.value=isNaN(a)?"":a+" pt"});V=this.installInputHandler(ca,mxConstants.STYLE_SPACING,2,-999,999," pt");U=this.installInputHandler(ea,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");W=this.installInputHandler(ba,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");aa=this.installInputHandler(ga,
mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ia=this.installInputHandler(fa,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(K,Y);this.addKeyHandler(ca,Y);this.addKeyHandler(ea,Y);this.addKeyHandler(ba,Y);this.addKeyHandler(ga,Y);this.addKeyHandler(fa,Y);b.getModel().addListener(mxEvent.CHANGE,Y);this.listeners.push({destroy:function(){b.getModel().removeListener(Y)}});Y();if(b.cellEditor.isContentEditing()){var ka=!1,e=function(){ka||(ka=!0,window.setTimeout(function(){for(var a=
b.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a){var d=function(a,b){if(null!=a&&null!=b){if(a==b)return!0;if(a.length>b.length+1)return a.substring(a.length-b.length-1,a.length)=="-"+b}return!1},e=function(c){if(null!=b.getParentByName(a,c,b.cellEditor.textarea))return!0;for(var d=a;null!=d&&1==d.childNodes.length;)if(d=d.childNodes[0],d.nodeName==c)return!0;return!1},g=function(a){a=null!=a?a.fontSize:null;return null!=a&&"px"==a.substring(a.length-
2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},h=function(a,b,c){return null!=c.style&&null!=b?(b=b.lineHeight,null!=c.style.lineHeight&&"%"==c.style.lineHeight.substring(c.style.lineHeight.length-1)?parseInt(c.style.lineHeight)/100:"px"==b.substring(b.length-2)?parseFloat(b)/a:parseInt(b)):""};a==b.cellEditor.textarea&&1==b.cellEditor.textarea.children.length&&b.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.cellEditor.textarea.firstChild);var m=mxUtils.getCurrentStyle(a),
n=g(m),p=h(n,m,a),r=a.getElementsByTagName("*");if(0<r.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var t=window.getSelection(),w=0;w<r.length;w++)if(t.containsNode(r[w],!0)){temp=mxUtils.getCurrentStyle(r[w]);var n=Math.max(g(temp),n),x=h(n,temp,r[w]);if(x!=p||isNaN(x))p=""}null!=m&&(c(l[0],"bold"==m.fontWeight||400<m.fontWeight||e("B")||e("STRONG")),c(l[1],"italic"==m.fontStyle||e("I")||e("EM")),c(l[2],e("U")),c(D,e("SUP")),c(y,e("SUB")),b.cellEditor.isTableSelected()?(c(B,
d(m.textAlign,"justify")),c(q,d(m.textAlign,"left")),c(u,d(m.textAlign,"center")),c(v,d(m.textAlign,"right"))):(e=b.cellEditor.align||mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),d(m.textAlign,"justify")?(c(B,d(m.textAlign,"justify")),c(q,!1),c(u,!1),c(v,!1)):(c(B,!1),c(q,e==mxConstants.ALIGN_LEFT),c(u,e==mxConstants.ALIGN_CENTER),c(v,e==mxConstants.ALIGN_RIGHT))),A=b.getParentByName(a,"TABLE",b.cellEditor.textarea),J=null==A?null:b.getParentByName(a,"TR",A),G=null==
A?null:b.getParentByNames(a,["TD","TH"],A),E.style.display=null!=A?"":"none",document.activeElement!=K&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=I?(a.removeAttribute("size"),a.style.fontSize=I+" pt",I=null):K.value=isNaN(n)?"":n+" pt",x=parseFloat(p),isNaN(x)?ja.value="100 %":ja.value=Math.round(100*x)+" %"),d=m.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+
-("0"+Number(d).toString(16)).substr(-2)}),n=m.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),null!=da&&(z="#"==d.charAt(0)?d:"#000000",da(z,!0)),null!=M&&(U="#"==n.charAt(0)?n:null,M(U,!0)),null!=k.firstChild&&(m=m.fontFamily,"'"==m.charAt(0)&&(m=m.substring(1)),"'"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1)),'"'==
+("0"+Number(d).toString(16)).substr(-2)}),n=m.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),null!=da&&(z="#"==d.charAt(0)?d:"#000000",da(z,!0)),null!=N&&(T="#"==n.charAt(0)?n:null,N(T,!0)),null!=k.firstChild&&(m=m.fontFamily,"'"==m.charAt(0)&&(m=m.substring(1)),"'"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1)),'"'==
m.charAt(0)&&(m=m.substring(1)),'"'==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1)),k.firstChild.nodeValue=m))}ka=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(b.cellEditor.textarea,"DOMSubtreeModified",e);mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,"mouseup",e);mxEvent.addListener(b.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});
e()}return a};StyleFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();a.containsLabel||(a.containsImage&&1==a.vertices.length&&"image"==a.style.shape&&null!=a.style.image&&"data:image/svg+xml;"==a.style.image.substring(0,19)&&this.container.appendChild(this.addSvgStyles(this.createPanel())),a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel())),this.container.appendChild(this.addStroke(this.createPanel())),this.container.appendChild(this.addLineJumps(this.createPanel())),
@@ -2899,7 +2903,7 @@ null==a||a==mxConstants.NONE?"none":""}),e="image"==d.style.shape?mxConstants.ST
e=0;e<g.length;e++){var k=document.createElement("option");k.setAttribute("value",g[e]);mxUtils.write(k,mxResources.get(g[e]));b.appendChild(k)}f.appendChild(b);var l=mxUtils.bind(this,function(){d=this.format.getSelectionState();var c=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH);""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);f.style.display=!d.fill||d.containsImage||
null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?"none":""});c.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){c.getModel().removeListener(l)}});l();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,c.getSelectionCells());mxEvent.consume(a)});a.appendChild(h);a.appendChild(f);h=this.getCustomColors();for(e=0;e<h.length;e++)a.appendChild(this.createCellColorOption(h[e].title,h[e].key,h[e].defaultValue));
return a};StyleFormatPanel.prototype.getCustomColors=function(){var a=[];"swimlane"==this.format.getSelectionState().style.shape&&a.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return a};
-StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(t.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));t.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(w.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
+StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(r.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));r.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(w.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));w.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var h=document.createElement("div");h.style.fontWeight=
"bold";var g=document.createElement("select");g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var k=["sharp","rounded","curved"],l=0;l<k.length;l++){var m=document.createElement("option");m.setAttribute("value",k[l]);mxUtils.write(m,mxResources.get(k[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];"rounded"==g.value?d=["1",null]:
"curved"==g.value&&(d=[null,"1"]);for(var e=0;e<c.length;e++)f.setCellStyles(c[e],d[e],f.getSelectionCells());b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var n="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,k="image"==e.style.shape?mxResources.get("border"):mxResources.get("line"),k=this.createCellColorOption(k,
@@ -2909,9 +2913,9 @@ null]).setAttribute("title",mxResources.get("dashed"));q(a,75,"dotted",[mxConsta
v=this.editorUi.toolbar.addMenuFunctionInContainer(u,"geSprite-connection",mxResources.get("connection"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],
["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",mxResources.get("link"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,
null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),m=this.editorUi.toolbar.addMenuFunctionInContainer(u,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){q(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));q(a,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));
-q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),k=p.cloneNode(!1),t=document.createElement("input");t.style.textAlign="right";
-t.style.marginTop="2px";t.style.width="41px";t.setAttribute("title",mxResources.get("linewidth"));p.appendChild(t);var w=t.cloneNode(!0);u.appendChild(w);var r=this.createStepper(t,c,1,9);r.style.display=t.style.display;r.style.marginTop="2px";p.appendChild(r);var x=this.createStepper(w,d,1,9);x.style.display=w.style.display;x.style.marginTop="2px";u.appendChild(x);mxClient.IS_QUIRKS?(t.style.height="17px",w.style.height="17px"):(t.style.position="absolute",t.style.right="32px",t.style.height="15px",
-r.style.right="20px",w.style.position="absolute",w.style.right="32px",w.style.height="15px",x.style.right="20px");mxEvent.addListener(t,"blur",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(w,"blur",d);mxEvent.addListener(w,"change",d);mxClient.IS_QUIRKS&&(mxUtils.br(k),mxUtils.br(k));var y=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",
+q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),k=p.cloneNode(!1),r=document.createElement("input");r.style.textAlign="right";
+r.style.marginTop="2px";r.style.width="41px";r.setAttribute("title",mxResources.get("linewidth"));p.appendChild(r);var w=r.cloneNode(!0);u.appendChild(w);var t=this.createStepper(r,c,1,9);t.style.display=r.style.display;t.style.marginTop="2px";p.appendChild(t);var x=this.createStepper(w,d,1,9);x.style.display=w.style.display;x.style.marginTop="2px";u.appendChild(x);mxClient.IS_QUIRKS?(r.style.height="17px",w.style.height="17px"):(r.style.position="absolute",r.style.right="32px",r.style.height="15px",
+t.style.right="20px",w.style.position="absolute",w.style.right="32px",w.style.height="15px",x.style.right="20px");mxEvent.addListener(r,"blur",c);mxEvent.addListener(r,"change",c);mxEvent.addListener(w,"blur",d);mxEvent.addListener(w,"change",d);mxClient.IS_QUIRKS&&(mxUtils.br(k),mxUtils.br(k));var y=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",
[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,
mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",
@@ -2938,13 +2942,13 @@ mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstant
0],"geIcon geSprite geSprite-enddiamondtrans",null,!1).setAttribute("title",mxResources.get("diamond")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_DIAMOND_THIN,0],"geIcon geSprite geSprite-endthindiamondtrans",null,!1).setAttribute("title",mxResources.get("diamondThin")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["dash",0],"geIcon geSprite geSprite-enddash",null,!1),this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERone",0],"geIcon geSprite geSprite-enderone",
null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
-"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(v,8);this.addArrow(y);this.addArrow(D);this.addArrow(B);r=this.addArrow(l,
-9);r.className="geIcon";r.style.width="84px";x=this.addArrow(m,9);x.className="geIcon";x.style.width="22px";var E=document.createElement("div");E.style.width="85px";E.style.height="1px";E.style.borderBottom="1px solid "+this.defaultStrokeColor;E.style.marginBottom="9px";r.appendChild(E);var A=document.createElement("div");A.style.width="23px";A.style.height="1px";A.style.borderBottom="1px solid "+this.defaultStrokeColor;A.style.marginBottom="9px";x.appendChild(A);l.style.height="15px";m.style.height=
+"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(v,8);this.addArrow(y);this.addArrow(D);this.addArrow(B);t=this.addArrow(l,
+9);t.className="geIcon";t.style.width="84px";x=this.addArrow(m,9);x.className="geIcon";x.style.width="22px";var E=document.createElement("div");E.style.width="85px";E.style.height="1px";E.style.borderBottom="1px solid "+this.defaultStrokeColor;E.style.marginBottom="9px";t.appendChild(E);var A=document.createElement("div");A.style.width="23px";A.style.height="1px";A.style.borderBottom="1px solid "+this.defaultStrokeColor;A.style.marginBottom="9px";x.appendChild(A);l.style.height="15px";m.style.height=
"15px";v.style.height="15px";y.style.height="17px";D.style.marginLeft="3px";D.style.height="17px";B.style.marginLeft="3px";B.style.height="17px";a.appendChild(h);a.appendChild(u);a.appendChild(p);l=p.cloneNode(!1);l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));
-l.appendChild(m);var G,J,H=this.addUnitInput(l,"pt",74,33,function(){G.apply(this,arguments)}),L=this.addUnitInput(l,"pt",20,33,function(){J.apply(this,arguments)});mxUtils.br(l);r=document.createElement("div");r.style.height="8px";l.appendChild(r);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var F,P,R=this.addUnitInput(l,"pt",74,33,function(){F.apply(this,arguments)}),S=this.addUnitInput(l,"pt",20,33,function(){P.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,
+l.appendChild(m);var G,J,H=this.addUnitInput(l,"pt",74,33,function(){G.apply(this,arguments)}),L=this.addUnitInput(l,"pt",20,33,function(){J.apply(this,arguments)});mxUtils.br(l);t=document.createElement("div");t.style.height="8px";l.appendChild(t);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var F,P,R=this.addUnitInput(l,"pt",74,33,function(){F.apply(this,arguments)}),S=this.addUnitInput(l,"pt",20,33,function(){P.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,
mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);h=h.cloneNode(!1);h.style.fontWeight="normal";h.style.position="relative";h.style.paddingLeft="16px";h.style.marginBottom="2px";h.style.marginTop="6px";h.style.borderWidth="0px";h.style.paddingBottom="18px";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,
-mxResources.get("perimeter"));h.appendChild(m);var K,I=this.addUnitInput(h,"pt",20,41,function(){K.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(k),mxClient.IS_QUIRKS&&(mxUtils.br(a),mxUtils.br(a)),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(h));var M=mxUtils.bind(this,function(a,c,d){function h(a,c,d,f){d=d.getElementsByTagName("div")[0];d.className=b.getCssClassForMarker(f,e.style.shape,a,c);"geSprite geSprite-noarrow"==
-d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter="none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px");return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,n,null);if(d||document.activeElement!=t)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),t.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=
+mxResources.get("perimeter"));h.appendChild(m);var K,I=this.addUnitInput(h,"pt",20,41,function(){K.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(k),mxClient.IS_QUIRKS&&(mxUtils.br(a),mxUtils.br(a)),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(h));var N=mxUtils.bind(this,function(a,c,d){function h(a,c,d,g){d=d.getElementsByTagName("div")[0];d.className=b.getCssClassForMarker(g,e.style.shape,a,c);"geSprite geSprite-noarrow"==
+d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter="none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px");return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,n,null);if(d||document.activeElement!=r)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),r.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=
w)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),w.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?E.style.borderBottom="1px dashed "+
this.defaultStrokeColor:E.style.borderBottom="1px dotted "+this.defaultStrokeColor:E.style.borderBottom="1px solid "+this.defaultStrokeColor;A.style.borderBottom=E.style.borderBottom;a=y.getElementsByTagName("div")[0];c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||
"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";v.getElementsByTagName("div")[0].className="link"==
@@ -2952,7 +2956,7 @@ e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite
"endFill","1"),B,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(y,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(D,30),mxUtils.setOpacity(B,30)):(mxUtils.setOpacity(D,100),mxUtils.setOpacity(B,100));if(d||document.activeElement!=
S)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),S.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=R)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),R.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=L)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),L.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=R)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,
0)),H.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=I)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),I.value=isNaN(a)?"":a+" pt"});P=this.installInputHandler(S,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");F=this.installInputHandler(R,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");J=this.installInputHandler(L,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");G=this.installInputHandler(H,mxConstants.STYLE_TARGET_PERIMETER_SPACING,
-0,-999,999," pt");K=this.installInputHandler(I,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,M);this.addKeyHandler(S,M);this.addKeyHandler(R,M);this.addKeyHandler(L,M);this.addKeyHandler(H,M);this.addKeyHandler(I,M);f.getModel().addListener(mxEvent.CHANGE,M);this.listeners.push({destroy:function(){f.getModel().removeListener(M)}});M();return a};
+0,-999,999," pt");K=this.installInputHandler(I,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(r,N);this.addKeyHandler(S,N);this.addKeyHandler(R,N);this.addKeyHandler(L,N);this.addKeyHandler(H,N);this.addKeyHandler(I,N);f.getModel().addListener(mxEvent.CHANGE,N);this.listeners.push({destroy:function(){f.getModel().removeListener(N)}});N();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var c=this.format.getSelectionState();if(Graph.lineJumpsEnabled&&0<c.edges.length&&0==c.vertices.length&&c.lineJumps){a.style.padding="8px 0px 24px 18px";var d=this.editorUi,b=d.editor.graph,f=document.createElement("div");f.style.position="absolute";f.style.fontWeight="bold";f.style.width="80px";mxUtils.write(f,mxResources.get("lineJumps"));a.appendChild(f);var e=document.createElement("select");e.style.position="absolute";e.style.marginTop="-2px";
e.style.right="76px";e.style.width="62px";for(var f=["none","arc","gap","sharp"],h=0;h<f.length;h++){var g=document.createElement("option");g.setAttribute("value",f[h]);mxUtils.write(g,mxResources.get(f[h]));e.appendChild(g)}mxEvent.addListener(e,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",e.value,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var k,l=this.addUnitInput(a,"pt",22,33,function(){k.apply(this,arguments)});k=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
@@ -2979,19 +2983,19 @@ function(){b.set(d.pageFormat)});var f=function(){b.set(d.pageFormat)};c.addList
DiagramFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()}));c.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")");c.style.width="202px";c.style.marginBottom="2px";a.appendChild(c);mxUtils.br(a);c=mxUtils.button(mxResources.get("clearDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearDefaultStyle").funct()}));
c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function f(){mxCylinder.call(this)}function e(){mxActor.call(this)}function h(){mxCylinder.call(this)}function g(){mxActor.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function n(){mxActor.call(this)}function p(){mxActor.call(this)}function q(){mxActor.call(this)}function u(a,b){this.canvas=
a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,u.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,u.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,u.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,u.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,u.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,u.prototype.arcTo)}function v(){mxRectangleShape.call(this)}function t(){mxRectangleShape.call(this)}function w(){mxActor.call(this)}function r(){mxActor.call(this)}function x(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function D(){mxRectangleShape.call(this)}function B(){mxCylinder.call(this)}function E(){mxShape.call(this)}function A(){mxShape.call(this)}
-function G(){mxEllipse.call(this)}function J(){mxShape.call(this)}function H(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function F(){mxShape.call(this)}function P(){mxShape.call(this)}function R(){mxShape.call(this)}function S(){mxShape.call(this)}function K(){mxShape.call(this)}function I(){mxCylinder.call(this)}function M(){mxRectangleShape.call(this)}function U(){mxDoubleEllipse.call(this)}function da(){mxDoubleEllipse.call(this)}function z(){mxArrowConnector.call(this);this.spacing=
-0}function N(){mxArrowConnector.call(this);this.spacing=0}function Q(){mxActor.call(this)}function T(){mxRectangleShape.call(this)}function V(){mxActor.call(this)}function ia(){mxActor.call(this)}function aa(){mxActor.call(this)}function W(){mxActor.call(this)}function ea(){mxActor.call(this)}function ca(){mxActor.call(this)}function fa(){mxActor.call(this)}function ga(){mxActor.call(this)}function ba(){mxActor.call(this)}function Z(){mxActor.call(this)}function ja(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}
-function ka(){mxEllipse.call(this)}function X(){mxRhombus.call(this)}function Aa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Ca(){mxEllipse.call(this)}function va(){mxEllipse.call(this)}function wa(){mxActor.call(this)}function oa(){mxActor.call(this)}function pa(){mxActor.call(this)}function na(){mxConnector.call(this)}function Ga(a,b,c,d,e,f,g,h,k,l){g+=k;var C=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(C.x-e-g,C.y-f-g,2*g,2*g);l?a.fillAndStroke():
-a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.darkOpacity=0;a.prototype.darkOpacity2=0;a.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),C=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));a.translate(b,c);a.begin();a.moveTo(0,
-0);a.lineTo(d-f,0);a.lineTo(d,f);a.lineTo(d,e);a.lineTo(f,e);a.lineTo(0,e-f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-f,0),a.lineTo(d,f),a.lineTo(f,f),a.close(),a.fill()),0!=C&&(a.setFillAlpha(Math.abs(C)),a.setFillColor(0>C?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(f,f),a.lineTo(f,e),a.lineTo(0,e-f),a.close(),a.fill()),a.begin(),a.moveTo(f,
-e),a.lineTo(f,f),a.lineTo(0,0),a.moveTo(f,f),a.lineTo(d,f),a.end(),a.stroke())};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",a);var Da=Math.tan(mxUtils.toRadians(30)),ma=(.5-Da)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/Da);a.translate((d-b)/2,(e-b)/
-2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ma);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ma)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",c);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+Da));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ma)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ma)*b),a.lineTo(.5*b,(1-ma)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ma),a.lineTo(b,.25*b),a.lineTo(b,
-.75*b),a.lineTo(.5*b,(1-ma)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",d);mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),
-a.begin()),a.translate(0,-b);f||(a.moveTo(0,b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};b.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",b);mxUtils.extend(f,mxCylinder);f.prototype.size=30;f.prototype.darkOpacity=0;f.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-f,0);a.lineTo(d,f);a.lineTo(d,e);a.lineTo(0,e);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-f,0),a.lineTo(d-f,f),a.lineTo(d,f),a.close(),a.fill()),a.begin(),a.moveTo(d-f,0),a.lineTo(d-f,f),a.lineTo(d,
-f),a.end(),a.stroke())};mxCellRenderer.registerShape("note",f);mxUtils.extend(e,mxActor);e.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,.5*e,d,0);a.quadTo(.5*d,e/2,d,e);a.quadTo(d/2,.5*e,0,e);a.quadTo(.5*d,e/2,0,0);a.end()};mxCellRenderer.registerShape("switch",e);mxUtils.extend(h,mxCylinder);h.prototype.tabWidth=60;h.prototype.tabHeight=20;h.prototype.tabPosition="right";h.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);f?"left"==g?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==g?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.registerShape("folder",h);mxUtils.extend(g,
+this.canvas.curveTo=mxUtils.bind(this,u.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,u.prototype.arcTo)}function v(){mxRectangleShape.call(this)}function r(){mxRectangleShape.call(this)}function w(){mxActor.call(this)}function t(){mxActor.call(this)}function x(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function D(){mxRectangleShape.call(this)}function B(){mxCylinder.call(this)}function E(){mxShape.call(this)}function A(){mxShape.call(this)}
+function G(){mxEllipse.call(this)}function J(){mxShape.call(this)}function H(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function F(){mxShape.call(this)}function P(){mxShape.call(this)}function R(){mxShape.call(this)}function S(){mxShape.call(this)}function K(){mxShape.call(this)}function I(){mxCylinder.call(this)}function N(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function da(){mxDoubleEllipse.call(this)}function z(){mxArrowConnector.call(this);this.spacing=
+0}function M(){mxArrowConnector.call(this);this.spacing=0}function Q(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function V(){mxActor.call(this)}function ia(){mxActor.call(this)}function aa(){mxActor.call(this)}function W(){mxActor.call(this)}function ea(){mxActor.call(this)}function ca(){mxActor.call(this)}function fa(){mxActor.call(this)}function ga(){mxActor.call(this)}function ba(){mxActor.call(this)}function Z(){mxActor.call(this)}function ja(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}
+function ka(){mxEllipse.call(this)}function X(){mxRhombus.call(this)}function Aa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Ca(){mxEllipse.call(this)}function va(){mxEllipse.call(this)}function wa(){mxActor.call(this)}function oa(){mxActor.call(this)}function pa(){mxActor.call(this)}function na(){mxConnector.call(this)}function Ga(a,b,c,d,e,g,f,h,k,l){f+=k;var C=d.clone();d.x-=e*(2*f+k);d.y-=g*(2*f+k);e*=f+k;g*=f+k;return function(){a.ellipse(C.x-e-f,C.y-g-f,2*f,2*f);l?a.fillAndStroke():
+a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.darkOpacity=0;a.prototype.darkOpacity2=0;a.prototype.paintVertexShape=function(a,b,c,d,e){var g=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),C=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));a.translate(b,c);a.begin();a.moveTo(0,
+0);a.lineTo(d-g,0);a.lineTo(d,g);a.lineTo(d,e);a.lineTo(g,e);a.lineTo(0,e-g);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-g,0),a.lineTo(d,g),a.lineTo(g,g),a.close(),a.fill()),0!=C&&(a.setFillAlpha(Math.abs(C)),a.setFillColor(0>C?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(g,g),a.lineTo(g,e),a.lineTo(0,e-g),a.close(),a.fill()),a.begin(),a.moveTo(g,
+e),a.lineTo(g,g),a.lineTo(0,0),a.moveTo(g,g),a.lineTo(d,g),a.end(),a.stroke())};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",a);var Da=Math.tan(mxUtils.toRadians(30)),ma=(.5-Da)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/Da);a.translate((d-b)/2,(e-b)/
+2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ma);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ma)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",c);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,g){b=Math.min(d,e/(.5+Da));g?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ma)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ma)*b),a.lineTo(.5*b,(1-ma)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ma),a.lineTo(b,.25*b),a.lineTo(b,
+.75*b),a.lineTo(.5*b,(1-ma)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",d);mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,b,c,d,e,g){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(g&&null!=this.fill||!g&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),g||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),g||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),g||(a.stroke(),
+a.begin()),a.translate(0,-b);g||(a.moveTo(0,b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};b.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",b);mxUtils.extend(f,mxCylinder);f.prototype.size=30;f.prototype.darkOpacity=0;f.prototype.paintVertexShape=function(a,b,c,d,e){var g=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-g,0);a.lineTo(d,g);a.lineTo(d,e);a.lineTo(0,e);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-g,0),a.lineTo(d-g,g),a.lineTo(d,g),a.close(),a.fill()),a.begin(),a.moveTo(d-g,0),a.lineTo(d-g,g),a.lineTo(d,
+g),a.end(),a.stroke())};mxCellRenderer.registerShape("note",f);mxUtils.extend(e,mxActor);e.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,.5*e,d,0);a.quadTo(.5*d,e/2,d,e);a.quadTo(d/2,.5*e,0,e);a.quadTo(.5*d,e/2,0,0);a.end()};mxCellRenderer.registerShape("switch",e);mxUtils.extend(h,mxCylinder);h.prototype.tabWidth=60;h.prototype.tabHeight=20;h.prototype.tabPosition="right";h.prototype.redrawPath=function(a,b,c,d,e,g){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var f=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);g?"left"==f?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==f?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.registerShape("folder",h);mxUtils.extend(g,
mxActor);g.prototype.size=30;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("card",g);mxUtils.extend(k,mxActor);k.prototype.size=
.4;k.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};k.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||
this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-2*b,d)}return a};mxCellRenderer.registerShape("tape",k);mxUtils.extend(l,mxActor);l.prototype.size=.3;l.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};l.prototype.redrawPath=function(a,b,c,
@@ -3000,92 +3004,92 @@ function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=2*mxUtils.get
2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",m);mxUtils.extend(n,mxActor);n.prototype.size=.2;n.prototype.isRoundable=function(){return!0};n.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,
e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("trapezoid",n);mxUtils.extend(p,mxActor);p.prototype.size=.5;p.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,
e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",p);mxUtils.extend(q,mxActor);q.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",q);u.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=
-b;this.firstX=a;this.firstY=b};u.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};u.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};u.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};u.prototype.arcTo=function(a,b,c,d,
-e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};u.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),C=this.defaultVariation;5>g&&(g=5,C/=3);for(var h=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,
-d=d/f,e=e/f,f=0;f<g;f++){var k=(Math.random()-.5)*C;this.originalLineTo.call(this.canvas,h*f+this.lastX-k*e,c*f+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};u.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};
+b;this.firstX=a;this.firstY=b};u.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};u.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};u.prototype.curveTo=function(a,b,c,d,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};u.prototype.arcTo=function(a,b,c,d,
+e,g,f){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=f};u.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),g=Math.sqrt(d*d+e*e);if(2>g){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(g/10),C=this.defaultVariation;5>f&&(f=5,C/=3);for(var h=c(a-this.lastX)*d/f,c=c(b-this.lastY)*e/f,
+d=d/g,e=e/g,g=0;g<f;g++){var k=(Math.random()-.5)*C;this.originalLineTo.call(this.canvas,h*g+this.lastX-k*e,c*g+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};u.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};
var La=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new u(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));La.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ma=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==
-this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ma.apply(this,arguments)};var Na=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Na.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||
-(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f)),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),
-a.lineTo(b,c+f),a.quadTo(b,c,b+f,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};var Oa=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Oa.apply(this,arguments)};mxUtils.extend(v,mxRectangleShape);v.prototype.size=.1;v.prototype.isHtmlAllowed=function(){return!1};v.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,
+this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ma.apply(this,arguments)};var Na=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Na.apply(this,arguments);else{var g=!0;null!=this.style&&(g="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(g||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)g||null!=this.fill&&this.fill!=mxConstants.NONE||
+(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?g=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.min(d*g,e*g)),a.moveTo(b+g,c),a.lineTo(b+d-g,c),a.quadTo(b+d,c,b+d,c+g),a.lineTo(b+d,c+e-g),a.quadTo(b+d,c+e,b+d-g,c+e),a.lineTo(b+g,c+e),a.quadTo(b,c+e,b,c+e-g),
+a.lineTo(b,c+g),a.quadTo(b,c,b+g,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};var Oa=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Oa.apply(this,arguments)};mxUtils.extend(v,mxRectangleShape);v.prototype.size=.1;v.prototype.isHtmlAllowed=function(){return!1};v.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,
!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var b=a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(b*e,c*e));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};v.prototype.paintForeground=
-function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",v);mxUtils.extend(t,
-mxRectangleShape);t.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};t.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",t);mxUtils.extend(w,mxHexagon);w.prototype.size=30;w.prototype.position=.5;w.prototype.position2=.5;w.prototype.base=20;w.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};w.prototype.isRoundable=
-function(){return!0};w.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
-this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,f+h),e-c),new mxPoint(g,e),new mxPoint(Math.max(0,f),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",w);mxUtils.extend(r,mxActor);r.prototype.size=.2;r.prototype.fixedSize=20;r.prototype.isRoundable=function(){return!0};r.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("step",r);mxUtils.extend(x,mxHexagon);x.prototype.size=.25;x.prototype.isRoundable=function(){return!0};x.prototype.redrawPath=
+function(a,b,c,d,e){var g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(d*f,e*f));g=Math.round(g);a.begin();a.moveTo(b+g,c);a.lineTo(b+g,c+e);a.moveTo(b+d-g,c);a.lineTo(b+d-g,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",v);mxUtils.extend(r,
+mxRectangleShape);r.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};r.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",r);mxUtils.extend(w,mxHexagon);w.prototype.size=30;w.prototype.position=.5;w.prototype.position2=.5;w.prototype.base=20;w.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};w.prototype.isRoundable=
+function(){return!0};w.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
+this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,g+h),e-c),new mxPoint(f,e),new mxPoint(Math.max(0,g),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",w);mxUtils.extend(t,mxActor);t.prototype.size=.2;t.prototype.fixedSize=20;t.prototype.isRoundable=function(){return!0};t.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("step",t);mxUtils.extend(x,mxHexagon);x.prototype.size=.25;x.prototype.isRoundable=function(){return!0};x.prototype.redrawPath=
function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,.5*e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",x);mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.paintForeground=function(a,
-b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",y);var Ha=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+
-b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){Ha.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),Ha.apply(this,[a,b,c,d,e]))}};mxUtils.extend(D,mxRectangleShape);D.prototype.isHtmlAllowed=function(){return!1};D.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,
-this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};D.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+
-f]];if(null!=g){var h=this.style["symbol"+f+"Align"],C=this.style["symbol"+f+"VerticalAlign"],k=this.style["symbol"+f+"Width"],l=this.style["symbol"+f+"Height"],xa=this.style["symbol"+f+"Spacing"]||0,Fa=this.style["symbol"+f+"VSpacing"]||xa,m=this.style["symbol"+f+"ArcSpacing"];null!=m&&(m*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),xa+=m,Fa+=m);var m=b,ta=c,m=h==mxConstants.ALIGN_CENTER?m+(d-k)/2:h==mxConstants.ALIGN_RIGHT?m+(d-k-xa):m+xa,ta=C==mxConstants.ALIGN_MIDDLE?ta+(e-l)/2:C==
-mxConstants.ALIGN_BOTTOM?ta+(e-l-Fa):ta+Fa;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,m,ta,k,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",D);mxUtils.extend(B,mxCylinder);B.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",
+b,c,d,e){var g=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+g);a.lineTo(b+d/2,c+e-g);a.moveTo(b+g,c+e/2);a.lineTo(b+d-g,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",y);var Ha=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+
+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){Ha.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=g;c+=g;d-=2*g;e-=2*g;0<d&&0<e&&(a.setShadow(!1),Ha.apply(this,[a,b,c,d,e]))}};mxUtils.extend(D,mxRectangleShape);D.prototype.isHtmlAllowed=function(){return!1};D.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,
+this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};D.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=g;c+=g;d-=2*g;e-=2*g;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var g=0,f;do{f=mxCellRenderer.defaultShapes[this.style["symbol"+
+g]];if(null!=f){var h=this.style["symbol"+g+"Align"],C=this.style["symbol"+g+"VerticalAlign"],k=this.style["symbol"+g+"Width"],l=this.style["symbol"+g+"Height"],xa=this.style["symbol"+g+"Spacing"]||0,Fa=this.style["symbol"+g+"VSpacing"]||xa,m=this.style["symbol"+g+"ArcSpacing"];null!=m&&(m*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),xa+=m,Fa+=m);var m=b,ta=c,m=h==mxConstants.ALIGN_CENTER?m+(d-k)/2:h==mxConstants.ALIGN_RIGHT?m+(d-k-xa):m+xa,ta=C==mxConstants.ALIGN_MIDDLE?ta+(e-l)/2:C==
+mxConstants.ALIGN_BOTTOM?ta+(e-l-Fa):ta+Fa;a.save();h=new f;h.style=this.style;f.prototype.paintVertexShape.call(h,a,m,ta,k,l);a.restore()}g++}while(null!=f)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",D);mxUtils.extend(B,mxCylinder);B.prototype.redrawPath=function(a,b,c,d,e,g){g?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",
B);mxUtils.extend(E,mxShape);E.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",E);mxUtils.extend(A,mxShape);A.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};A.prototype.paintBackground=
function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",A);mxUtils.extend(G,mxEllipse);G.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",
G);mxUtils.extend(J,mxShape);J.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",J);mxUtils.extend(H,mxShape);H.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};H.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,
e/8,d,7*e/8);a.fillAndStroke()};H.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",H);mxUtils.extend(L,mxRectangleShape);L.prototype.size=40;L.prototype.isHtmlAllowed=function(){return!1};L.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};L.prototype.paintBackground=
-function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=L&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed(!0),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};L.prototype.paintForeground=
-function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",L);mxUtils.extend(F,mxShape);F.prototype.width=60;F.prototype.height=30;F.prototype.corner=10;F.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,
-"height",this.height)*this.scale))};F.prototype.paintBackground=function(a,b,c,d,e){var f=this.corner,g=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(b,c,d,e),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=
-mxConstants.NONE?(this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b,c,d,e,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(b,c);a.lineTo(b+g,c);a.lineTo(b+g,c+Math.max(0,h-1.5*f));a.lineTo(b+Math.max(0,g-f),c+h);a.lineTo(b,c+h);a.close();a.fillAndStroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",F);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=L.prototype.size;
+function(a,b,c,d,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=mxUtils.getValue(this.style,"participant");null==f||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,g):(f=this.state.view.graph.cellRenderer.getShape(f),null!=f&&f!=L&&(f=new f,f.apply(this.state),a.save(),f.paintVertexShape(a,b,c,d,g),a.restore()));g<e&&(a.setDashed(!0),a.begin(),a.moveTo(b+d/2,c+g),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};L.prototype.paintForeground=
+function(a,b,c,d,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,g))};mxCellRenderer.registerShape("umlLifeline",L);mxUtils.extend(F,mxShape);F.prototype.width=60;F.prototype.height=30;F.prototype.corner=10;F.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,
+"height",this.height)*this.scale))};F.prototype.paintBackground=function(a,b,c,d,e){var g=this.corner,f=Math.min(d,Math.max(g,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(e,Math.max(1.5*g,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(b,c,d,e),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=
+mxConstants.NONE?(this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b,c,d,e,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(b,c);a.lineTo(b+f,c);a.lineTo(b+f,c+Math.max(0,h-1.5*g));a.lineTo(b+Math.max(0,f-g),c+h);a.lineTo(b,c+h);a.close();a.fillAndStroke();a.begin();a.moveTo(b+f,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",F);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=L.prototype.size;
null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);
mxPerimeter.BackbonePerimeter=function(a,b,c,d){d=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;null!=b.style.backboneSize&&(d+=parseFloat(b.style.backboneSize)*b.view.scale/2-1);if("south"==b.style[mxConstants.STYLE_DIRECTION]||"north"==b.style[mxConstants.STYLE_DIRECTION])return c.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));c.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),
a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,b,c,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(b.style,"size",w.prototype.size))*b.view.scale))),b.style),b,c,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e=m.prototype.size;
-null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.x,g=a.y,h=a.width,k=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g),new mxPoint(f+h,g+e),new mxPoint(f+h,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g)]):(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+e,g),new mxPoint(f+h,g),new mxPoint(f+h-e,g+k),new mxPoint(f,
-g+k),new mxPoint(f+e,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.x<f||c.x>f+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.x,g=a.y,h=a.width,k=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;
-b==mxConstants.DIRECTION_EAST?(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+e,g),new mxPoint(f+h-e,g),new mxPoint(f+h,g+k),new mxPoint(f,g+k),new mxPoint(f+e,g)]):b==mxConstants.DIRECTION_WEST?(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g),new mxPoint(f+h,g),new mxPoint(f+h-e,g+k),new mxPoint(f+e,g+k),new mxPoint(f,g)]):b==mxConstants.DIRECTION_NORTH?(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g+e),new mxPoint(f+h,g),new mxPoint(f+h,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g+e)]):(e=k*Math.max(0,
-Math.min(1,e)),g=[new mxPoint(f,g),new mxPoint(f+h,g+e),new mxPoint(f+h,g+k-e),new mxPoint(f,g+k),new mxPoint(f,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.x<f||c.x>f+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?r.prototype.fixedSize:r.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,
-"size",f));var g=a.x,h=a.y,k=a.width,C=a.height,l=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(g+k-e,h),new mxPoint(g+k,a),new mxPoint(g+k-e,h+C),new mxPoint(g,h+C),new mxPoint(g+e,a),new mxPoint(g,h)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,
-Math.min(1,f)),h=[new mxPoint(g+e,h),new mxPoint(g+k,h),new mxPoint(g+k-e,a),new mxPoint(g+k,h+C),new mxPoint(g+e,h+C),new mxPoint(g,a),new mxPoint(g+e,h)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(C,f)):C*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h+e),new mxPoint(l,h),new mxPoint(g+k,h+e),new mxPoint(g+k,h+C),new mxPoint(l,h+C-e),new mxPoint(g,h+C),new mxPoint(g,h+e)]):(e=e?Math.max(0,Math.min(C,f)):C*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(l,h+e),new mxPoint(g+
-k,h),new mxPoint(g+k,h+C-e),new mxPoint(l,h+C),new mxPoint(g,h+C-e),new mxPoint(g,h)]);l=new mxPoint(l,a);d&&(c.x<g||c.x>g+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(h,l,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=x.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.x,g=a.y,h=a.width,k=a.height,C=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,
-mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(C,g),new mxPoint(f+h,g+e),new mxPoint(f+h,g+k-e),new mxPoint(C,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g+e),new mxPoint(C,g)]):(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+e,g),new mxPoint(f+h-e,g),new mxPoint(f+h,a),new mxPoint(f+h-e,g+k),new mxPoint(f+e,g+k),new mxPoint(f,a),new mxPoint(f+e,g)]);C=new mxPoint(C,a);d&&(c.x<f||c.x>f+
-h?C.y=c.y:C.x=c.x);return mxUtils.getPerimeterPoint(g,C,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",P);mxUtils.extend(R,mxShape);R.prototype.size=
-10;R.prototype.inset=2;R.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",R);mxUtils.extend(S,mxShape);S.prototype.paintBackground=
-function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",S);mxUtils.extend(K,mxShape);K.prototype.inset=2;K.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.ellipse(0,f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",
-K);mxUtils.extend(I,mxCylinder);I.prototype.jettyWidth=32;I.prototype.jettyHeight=12;I.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),
-a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",I);mxUtils.extend(M,mxRectangleShape);M.prototype.paintForeground=function(a,b,c,d,e){var f=d/2,g=e/2,h=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,h,!0);a.stroke();
-mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",M);mxUtils.extend(U,mxDoubleEllipse);U.prototype.outerStroke=!0;U.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",U);mxUtils.extend(da,U);da.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",
-da);mxUtils.extend(z,mxArrowConnector);z.prototype.defaultWidth=4;z.prototype.isOpenEnded=function(){return!0};z.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};z.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",z);mxUtils.extend(N,mxArrowConnector);N.prototype.defaultWidth=10;N.prototype.defaultArrowWidth=20;N.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+
-mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};N.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};N.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",N);mxUtils.extend(Q,mxActor);Q.prototype.size=30;Q.prototype.isRoundable=function(){return!0};Q.prototype.redrawPath=function(a,b,
-c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",Q);mxUtils.extend(T,mxRectangleShape);T.prototype.dx=20;T.prototype.dy=20;T.prototype.isHtmlAllowed=function(){return!1};T.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,
-arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));g=Math.max(f,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+f);a.lineTo(b+d,c+f);a.end();a.stroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+g,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",
-T);mxUtils.extend(V,mxActor);V.prototype.dx=20;V.prototype.dy=20;V.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,
-e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("corner",V);mxUtils.extend(ia,mxActor);ia.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.lineTo(0,e);a.end();a.moveTo(d,0);a.lineTo(d,e);a.end();a.moveTo(0,e/2);a.lineTo(d,e/2);a.end()};mxCellRenderer.registerShape("crossbar",ia);mxUtils.extend(aa,mxActor);aa.prototype.dx=20;aa.prototype.dy=20;aa.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));
-c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("tee",aa);mxUtils.extend(W,mxActor);W.prototype.arrowWidth=
-.3;W.prototype.arrowSize=.2;W.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),
-new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",W);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",W.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",W.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,
-e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(ca,mxActor);ca.prototype.size=.1;ca.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-
+null!=b&&(e=mxUtils.getValue(b.style,"size",e));var g=a.x,f=a.y,h=a.width,k=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=k*Math.max(0,Math.min(1,e)),f=[new mxPoint(g,f),new mxPoint(g+h,f+e),new mxPoint(g+h,f+k),new mxPoint(g,f+k-e),new mxPoint(g,f)]):(e=h*Math.max(0,Math.min(1,e)),f=[new mxPoint(g+e,f),new mxPoint(g+h,f),new mxPoint(g+h-e,f+k),new mxPoint(g,
+f+k),new mxPoint(g+e,f)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.x<g||c.x>g+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var g=a.x,f=a.y,h=a.width,k=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;
+b==mxConstants.DIRECTION_EAST?(e=h*Math.max(0,Math.min(1,e)),f=[new mxPoint(g+e,f),new mxPoint(g+h-e,f),new mxPoint(g+h,f+k),new mxPoint(g,f+k),new mxPoint(g+e,f)]):b==mxConstants.DIRECTION_WEST?(e=h*Math.max(0,Math.min(1,e)),f=[new mxPoint(g,f),new mxPoint(g+h,f),new mxPoint(g+h-e,f+k),new mxPoint(g+e,f+k),new mxPoint(g,f)]):b==mxConstants.DIRECTION_NORTH?(e=k*Math.max(0,Math.min(1,e)),f=[new mxPoint(g,f+e),new mxPoint(g+h,f),new mxPoint(g+h,f+k),new mxPoint(g,f+k-e),new mxPoint(g,f+e)]):(e=k*Math.max(0,
+Math.min(1,e)),f=[new mxPoint(g,f),new mxPoint(g+h,f+e),new mxPoint(g+h,f+k-e),new mxPoint(g,f+k),new mxPoint(g,f)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.x<g||c.x>g+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),g=e?t.prototype.fixedSize:t.prototype.size;null!=b&&(g=mxUtils.getValue(b.style,
+"size",g));var f=a.x,h=a.y,k=a.width,C=a.height,l=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),h=[new mxPoint(f,h),new mxPoint(f+k-e,h),new mxPoint(f+k,a),new mxPoint(f+k-e,h+C),new mxPoint(f,h+C),new mxPoint(f+e,a),new mxPoint(f,h)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,
+Math.min(1,g)),h=[new mxPoint(f+e,h),new mxPoint(f+k,h),new mxPoint(f+k-e,a),new mxPoint(f+k,h+C),new mxPoint(f+e,h+C),new mxPoint(f,a),new mxPoint(f+e,h)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(C,g)):C*Math.max(0,Math.min(1,g)),h=[new mxPoint(f,h+e),new mxPoint(l,h),new mxPoint(f+k,h+e),new mxPoint(f+k,h+C),new mxPoint(l,h+C-e),new mxPoint(f,h+C),new mxPoint(f,h+e)]):(e=e?Math.max(0,Math.min(C,g)):C*Math.max(0,Math.min(1,g)),h=[new mxPoint(f,h),new mxPoint(l,h+e),new mxPoint(f+
+k,h),new mxPoint(f+k,h+C-e),new mxPoint(l,h+C),new mxPoint(f,h+C-e),new mxPoint(f,h)]);l=new mxPoint(l,a);d&&(c.x<f||c.x>f+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(h,l,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=x.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var g=a.x,f=a.y,h=a.width,k=a.height,C=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,
+mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=k*Math.max(0,Math.min(1,e)),f=[new mxPoint(C,f),new mxPoint(g+h,f+e),new mxPoint(g+h,f+k-e),new mxPoint(C,f+k),new mxPoint(g,f+k-e),new mxPoint(g,f+e),new mxPoint(C,f)]):(e=h*Math.max(0,Math.min(1,e)),f=[new mxPoint(g+e,f),new mxPoint(g+h-e,f),new mxPoint(g+h,a),new mxPoint(g+h-e,f+k),new mxPoint(g+e,f+k),new mxPoint(g,a),new mxPoint(g+e,f)]);C=new mxPoint(C,a);d&&(c.x<g||c.x>g+
+h?C.y=c.y:C.x=c.x);return mxUtils.getPerimeterPoint(f,C,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.paintBackground=function(a,b,c,d,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-g)/2,0,g,g);a.fillAndStroke();a.begin();a.moveTo(d/2,g);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",P);mxUtils.extend(R,mxShape);R.prototype.size=
+10;R.prototype.inset=2;R.prototype.paintBackground=function(a,b,c,d,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,g+f);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-g)/2-f,g/2);a.quadTo((d-g)/2-f,g+f,d/2,g+f);a.quadTo((d+g)/2+f,g+f,(d+g)/2+f,g/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",R);mxUtils.extend(S,mxShape);S.prototype.paintBackground=
+function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",S);mxUtils.extend(K,mxShape);K.prototype.inset=2;K.prototype.paintBackground=function(a,b,c,d,e){var g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.ellipse(0,g,d-2*g,e-2*g);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",
+K);mxUtils.extend(I,mxCylinder);I.prototype.jettyWidth=32;I.prototype.jettyHeight=12;I.prototype.redrawPath=function(a,b,c,d,e,g){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,h=.3*e-b/2,k=.7*e-b/2;g?(a.moveTo(c,h),a.lineTo(f,h),a.lineTo(f,h+b),a.lineTo(c,h+b),a.moveTo(c,k),a.lineTo(f,k),a.lineTo(f,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),
+a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",I);mxUtils.extend(N,mxRectangleShape);N.prototype.paintForeground=function(a,b,c,d,e){var g=d/2,f=e/2,h=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+g,c),new mxPoint(b+d,c+f),new mxPoint(b+g,c+e),new mxPoint(b,c+f)],this.isRounded,h,!0);a.stroke();
+mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",N);mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(a,b,c,d,e){var g=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+g,c+g,d-2*g,e-2*g),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",T);mxUtils.extend(da,T);da.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",
+da);mxUtils.extend(z,mxArrowConnector);z.prototype.defaultWidth=4;z.prototype.isOpenEnded=function(){return!0};z.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};z.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",z);mxUtils.extend(M,mxArrowConnector);M.prototype.defaultWidth=10;M.prototype.defaultArrowWidth=20;M.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+
+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};M.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};M.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",M);mxUtils.extend(Q,mxActor);Q.prototype.size=30;Q.prototype.isRoundable=function(){return!0};Q.prototype.redrawPath=function(a,b,
+c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",Q);mxUtils.extend(U,mxRectangleShape);U.prototype.dx=20;U.prototype.dy=20;U.prototype.isHtmlAllowed=function(){return!1};U.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,
+arguments);var g=0;if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(d*f,e*f));f=Math.max(g,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+g);a.lineTo(b+d,c+g);a.end();a.stroke();a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",
+U);mxUtils.extend(V,mxActor);V.prototype.dx=20;V.prototype.dy=20;V.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,
+e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("corner",V);mxUtils.extend(ia,mxActor);ia.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.lineTo(0,e);a.end();a.moveTo(d,0);a.lineTo(d,e);a.end();a.moveTo(0,e/2);a.lineTo(d,e/2);a.end()};mxCellRenderer.registerShape("crossbar",ia);mxUtils.extend(aa,mxActor);aa.prototype.dx=20;aa.prototype.dy=20;aa.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));
+c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("tee",aa);mxUtils.extend(W,mxActor);W.prototype.arrowWidth=
+.3;W.prototype.arrowSize=.2;W.prototype.redrawPath=function(a,b,c,d,e){var g=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-g)/2;var g=c+g,f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,g),
+new mxPoint(0,g)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("singleArrow",W);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,b,c,d,e){var g=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",W.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",W.prototype.arrowSize))));c=(e-g)/2;var g=c+g,f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,
+e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,g),new mxPoint(b,g),new mxPoint(b,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(ca,mxActor);ca.prototype.size=.1;ca.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-
2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",ca);mxUtils.extend(fa,mxActor);fa.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",fa);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(ba,mxActor);ba.prototype.size=
20;ba.prototype.isRoundable=function(){return!0};ba.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",ba);mxUtils.extend(Z,mxActor);Z.prototype.size=
.375;Z.prototype.isRoundable=function(){return!0};Z.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",Z);mxUtils.extend(ja,mxEllipse);ja.prototype.paintVertexShape=
function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",ja);mxUtils.extend(Y,mxEllipse);Y.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",
Y);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ka);mxUtils.extend(X,mxRhombus);X.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);
a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",X);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",Aa);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,
-b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(Ca,mxEllipse);Ca.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);
+b,c,d,e){var g=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,g);a.lineTo(b+10,g-5);a.moveTo(b,g);a.lineTo(b+10,g+5);a.moveTo(b,g);a.lineTo(b+d,g);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,g);a.lineTo(b+d-10,g-5);a.moveTo(b+d,g);a.lineTo(b+d-10,g+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(Ca,mxEllipse);Ca.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);
null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),a.begin(),a.moveTo(b,c),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(b,c-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",Ca);mxUtils.extend(va,
mxEllipse);va.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",va);mxUtils.extend(wa,mxActor);wa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,
-e);a.close();a.end()};mxCellRenderer.registerShape("delay",wa);mxUtils.extend(oa,mxActor);oa.prototype.size=.2;oa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.registerShape("cross",
+e);a.close();a.end()};mxCellRenderer.registerShape("delay",wa);mxUtils.extend(oa,mxActor);oa.prototype.size=.2;oa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var g=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-g)/2;c=b+g;var f=(d-g)/2,g=f+g;a.moveTo(0,b);a.lineTo(f,b);a.lineTo(f,0);a.lineTo(g,0);a.lineTo(g,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(g,c);a.lineTo(g,e);a.lineTo(f,e);a.lineTo(f,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.registerShape("cross",
oa);mxUtils.extend(pa,mxActor);pa.prototype.size=.25;pa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.registerShape("display",pa);mxUtils.extend(na,mxConnector);na.prototype.origPaintEdgeShape=na.prototype.paintEdgeShape;na.prototype.paintEdgeShape=function(a,b,c){for(var d=
-[],e=0;e<b.length;e++)d.push(mxUtils.clone(b[e]));var e=a.state.dashed,f=a.state.fixDash;na.prototype.origPaintEdgeShape.apply(this,[a,d,c]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(e,f),na.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",na);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),C=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-C/2,d.y-C/2+m/2);a.lineTo(d.x+C/2-3*m/2,d.y-3*C/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,
-l){var m=e*(g+k+1),C=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-C/2,d.y-C/2+m/2);a.lineTo(d.x+C/2-3*m/2,d.y-3*C/2-m/2);a.moveTo(d.x-m/2+C/2,d.y-C/2-m/2);a.lineTo(d.x-C/2-3*m/2,d.y-3*C/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Ga);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),C=Ga.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){C.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*n+e*k,m.y-2*p+f*k);a.moveTo(m.x-
-n-p+f*k,m.y-p+n-e*k);a.lineTo(m.x+p-n-f*k,m.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),C=f*(g+k+1),n=d.clone();d.x-=m;d.y-=C;return function(){a.begin();a.moveTo(n.x-C,n.y+m);a.quadTo(d.x-C,d.y+m,d.x,d.y);a.quadTo(d.x+C,d.y-m,n.x+C,n.y-m);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,
-m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,m){f*=h+l;g*=h+l;var C=e.clone();return function(){b.begin();b.moveTo(C.x,C.y);k?b.lineTo(C.x-f-g/a,C.y-g+f/a):b.lineTo(C.x+g/a-f,C.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ia=function(a,b,c){return qa(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*
-a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},qa=function(a,b,c,d,e){return O(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-
-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,m=g.y-l.y,C=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,C,h/C,m/C,l,g,d,f)})},la=function(a){return function(b){return[O(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",W.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",W.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-
+[],e=0;e<b.length;e++)d.push(mxUtils.clone(b[e]));var e=a.state.dashed,g=a.state.fixDash;na.prototype.origPaintEdgeShape.apply(this,[a,d,c]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(e,g),na.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",na);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
+StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,g,f,h,k,l){var m=e*(f+k+1),C=g*(f+k+1);return function(){a.begin();a.moveTo(d.x-m/2-C/2,d.y-C/2+m/2);a.lineTo(d.x+C/2-3*m/2,d.y-3*C/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,g,f,h,k,
+l){var m=e*(f+k+1),C=g*(f+k+1);return function(){a.begin();a.moveTo(d.x-m/2-C/2,d.y-C/2+m/2);a.lineTo(d.x+C/2-3*m/2,d.y-3*C/2-m/2);a.moveTo(d.x-m/2+C/2,d.y-C/2-m/2);a.lineTo(d.x-C/2-3*m/2,d.y-3*C/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Ga);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,g,f,h,k,l){var m=d.clone(),C=Ga.apply(this,arguments),n=e*(f+2*k),p=g*(f+2*k);return function(){C.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-g*k);a.lineTo(m.x-2*n+e*k,m.y-2*p+g*k);a.moveTo(m.x-
+n-p+g*k,m.y-p+n-e*k);a.lineTo(m.x+p-n-g*k,m.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,g,f,h,k,l){var m=e*(f+k+1),C=g*(f+k+1),n=d.clone();d.x-=m;d.y-=C;return function(){a.begin();a.moveTo(n.x-C,n.y+m);a.quadTo(d.x-C,d.y+m,d.x,d.y);a.quadTo(d.x+C,d.y-m,n.x+C,n.y-m);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,g,f,h,k,l){b=e*k*1.118;c=g*k*1.118;e*=f+k;g*=f+k;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-g-c;return function(){a.begin();a.moveTo(m.x,
+m.y);h?a.lineTo(m.x-e-g/2,m.y-g+e/2):a.lineTo(m.x+g/2-e,m.y-g-e/2);a.lineTo(m.x-e,m.y-g);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,g,f,h,k,l,m){g*=h+l;f*=h+l;var C=e.clone();return function(){b.begin();b.moveTo(C.x,C.y);k?b.lineTo(C.x-g-f/a,C.y-f+g/a):b.lineTo(C.x+f/a-g,C.y-f-g/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ia=function(a,b,c){return qa(a,["width"],b,function(b,d,e,g,f){f=a.shape.getEdgeWidth()*
+a.view.scale+c;return new mxPoint(g.x+d*b/4+e*f/2,g.y+e*b/4-d*f/2)},function(b,d,e,g,f,h){b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,f.x,f.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},qa=function(a,b,c,d,e){return O(a,b,function(b){var e=a.absolutePoints,g=e.length-1;b=a.view.translate;var f=a.view.scale,h=c?e[0]:e[g],e=c?e[1]:e[g-1],g=e.x-h.x,k=e.y-h.y,l=Math.sqrt(g*g+k*k),h=d.call(this,l,g/l,k/l,h,e);return new mxPoint(h.x/f-b.x,h.y/f-b.y)},function(b,d,g){var f=a.absolutePoints,h=f.length-
+1;b=a.view.translate;var k=a.view.scale,l=c?f[0]:f[h],f=c?f[1]:f[h-1],h=f.x-l.x,m=f.y-l.y,C=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,C,h/C,m/C,l,f,d,g)})},la=function(a){return function(b){return[O(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",W.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",W.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-
c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Ea=function(a,b,c){return function(d){var e=[O(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,
-c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ha(d));return e}},ua=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[O(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ha(f));return g}},Ja=function(a){return function(b){var c=[O(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=
+c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ha(d));return e}},ua=function(a,b,c,d,e){c=null!=c?c:1;return function(g){var f=[O(g,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,
+"fixedSize","0"):null;a=f?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));f&&!mxEvent.isAltDown(d.getEvent())&&(a=g.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ha(g));return f}},Ja=function(a){return function(b){var c=[O(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=
Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ha(b));return c}},ra=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b}},ha=function(a,b){return O(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=
-Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},O=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},sa={link:function(a){return[Ia(a,!0,10),
-Ia(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(qa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+
-d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-
-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(qa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*
-a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||
-(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(qa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-
-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*
-c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(qa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*
-a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/
+Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},O=function(a,b,c,d,e,g){var f=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);f.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};f.getPosition=c;f.setPosition=d;f.ignoreGrid=null!=e?e:!0;if(g){var h=f.positionChanged;f.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return f},sa={link:function(a){return[Ia(a,!0,10),
+Ia(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(qa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,g){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(g+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+
+d*(g+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,g,f,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,f.x,f.y,h.x,h.y));d=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-
+parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(qa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,g){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(g+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(g+a.shape.strokewidth*
+a.view.scale)-c*b/2)},function(c,d,e,g,f,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,f.x,f.y,h.x,h.y));d=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||
+(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(qa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,g){b=(a.shape.getEdgeWidth()-
+a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(g+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(g+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,g,f,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,f.x,f.y,h.x,h.y));d=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*
+c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(qa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,g){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*
+a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(g+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(g+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,g,f,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,f.x,f.y,h.x,h.y));d=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/
a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},
swimlane:function(a){var b=[O(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,
Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ha(a,c/2))}return b},label:ra(),ext:ra(),rectangle:ra(),triangle:ra(),rhombus:ra(),umlLifeline:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",L.prototype.size))));return new mxPoint(a.getCenterX(),
@@ -3097,16 +3101,16 @@ mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},dataStorage:function(a){r
c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));mxUtils.getValue(this.state.style,"base",w.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",w.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),O(a,["position2"],function(a){var b=Math.max(0,Math.min(1,
mxUtils.getValue(this.state.style,"position2",w.prototype.position2)));return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),O(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,
"base",w.prototype.base)));return new mxPoint(a.x+Math.min(a.width,c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},internalStorage:function(a){var b=[O(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,
-"dx",T.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",T.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},corner:function(a){return[O(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,
+"dx",U.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",U.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},corner:function(a){return[O(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,
"dx",V.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",V.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[O(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",aa.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"dy",aa.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:la(1),doubleArrow:la(.5),folder:function(a){return[O(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",h.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"tabHeight",h.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",h.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",h.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[O(a,
["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=
-Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:ua(r.prototype.size,!0,null,!0,r.prototype.fixedSize),hexagon:ua(x.prototype.size,!0,.5,!0),curlyBracket:ua(p.prototype.size,!1),display:ua(pa.prototype.size,
+Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:ua(t.prototype.size,!0,null,!0,t.prototype.fixedSize),hexagon:ua(x.prototype.size,!0,.5,!0),curlyBracket:ua(p.prototype.size,!1),display:ua(pa.prototype.size,
!1),cube:Ea(1,a.prototype.size,!1),card:Ea(.5,g.prototype.size,!0),loopLimit:Ea(.5,ba.prototype.size,!0),trapezoid:Ja(.5),parallelogram:Ja(1)};Graph.createHandle=O;Graph.handleFactory=sa;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=sa[a];null==a&&null!=this.state.shape&&
this.state.shape.isRoundable()&&(a=sa[mxConstants.SHAPE_RECTANGLE]);if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=sa[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ya=new mxPoint(1,0),za=new mxPoint(1,
-0),la=mxUtils.toRadians(-30),ya=mxUtils.getRotatedPoint(ya,Math.cos(la),Math.sin(la)),la=mxUtils.toRadians(-150),za=mxUtils.getRotatedPoint(za,Math.cos(la),Math.sin(la));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=ya.x,l=ya.y,
-m=za.x,n=za.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);
+0),la=mxUtils.toRadians(-30),ya=mxUtils.getRotatedPoint(ya,Math.cos(la),Math.sin(la)),la=mxUtils.toRadians(-150),za=mxUtils.getRotatedPoint(za,Math.cos(la),Math.sin(la));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var g=a.view;d=null!=d&&0<d.length?d[0]:null;var f=a.absolutePoints,h=f[0],f=f[f.length-1];null!=d&&(d=g.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==f&&null!=c&&(f=new mxPoint(c.getCenterX(),c.getCenterY()));var k=ya.x,l=ya.y,
+m=za.x,n=za.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=f&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(f.x-h.x)/2,h.y+(f.y-h.y)/2));a(d.x,d.y,!0);a(f.x,f.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);
var Pa=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Pa.apply(this,arguments)};c.prototype.constraints=[];d.prototype.getConstraints=function(a,b,c){a=[];var d=Math.tan(mxUtils.toRadians(30)),e=(.5-d)/2,d=Math.min(b,c/(.5+d));b=(b-d)/2;c=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b+.5*d,c+d*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+(1-e)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.75*d));return a};w.prototype.getConstraints=function(a,b,c){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
@@ -3122,7 +3126,7 @@ Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(n
h.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,e)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),e))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,e)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,.25*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};T.prototype.constraints=mxRectangleShape.prototype.constraints;ca.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;
+0),!1,null,0,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};U.prototype.constraints=mxRectangleShape.prototype.constraints;ca.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;
ka.prototype.constraints=mxEllipse.prototype.constraints;va.prototype.constraints=mxEllipse.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.min(b,c/2),e=Math.min(b-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};ba.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=
mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
@@ -3130,7 +3134,7 @@ mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxC
1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];I.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];e.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,
-1),!1)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];r.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),
+1),!1)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];t.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),
!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=
[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,
@@ -3145,10 +3149,10 @@ mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxC
1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];W.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",this.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-e),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-e),c-d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,c-d));return a};ea.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",W.prototype.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",W.prototype.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,b-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};oa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.min(c,b),e=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(c-e)/2,f=d+e,g=(b-e)/2,e=g+e;a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c));a.push(new mxConnectionConstraint(new mxPoint(.5,
-1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(b+e),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};L.prototype.constraints=
+0),!1,null,b-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};oa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.min(c,b),e=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(c-e)/2,g=d+e,f=(b-e)/2,e=f+e;a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,f,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,c));a.push(new mxConnectionConstraint(new mxPoint(.5,
+1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,g));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(b+e),g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*f,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};L.prototype.constraints=
null;fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,
.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];S.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){b.escape();var c=b.getDeletableCells(b.getSelectionCells());if(null!=c&&0<c.length){var d=b.selectParentAfterDelete?b.model.getParents(c):null;b.removeCells(c,a);if(null!=d){a=[];for(c=0;c<d.length;c++)b.model.contains(d[c])&&(b.model.isVertex(d[c])||b.model.isEdge(d[c]))&&a.push(d[c]);b.setSelectionCells(a)}}}var c=this.editorUi,d=c.editor,b=d.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",
@@ -3156,7 +3160,7 @@ function(){b.openLink(c.getUrl())});this.addAction("open...",function(){window.o
": "+m.message)}}));c.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=f;this.addAction("save",function(){c.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=f;this.addAction("saveAs...",function(){c.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=f;this.addAction("export...",function(){c.showDialog((new ExportDialog(c)).container,300,296,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(c);c.showDialog(a.container,
620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){c.showDialog((new PageSetupDialog(c)).container,320,220,!0,!0)}).isEnabled=f;this.addAction("print...",function(){c.showDialog((new PrintDialog(c)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(b,null,10,10)});this.addAction("undo",function(){c.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){c.redo()},null,"sprite-redo",mxClient.IS_WIN?
Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){mxClipboard.cut(b)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{mxClipboard.copy(b)}catch(g){c.handleError(g)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&mxClipboard.paste(b)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){b.getModel().beginUpdate();
-try{var c=mxClipboard.paste(b);if(null!=c){a=!0;for(var d=0;d<c.length&&a;d++)a=a&&b.model.isEdge(c[d]);var e=b.view.translate,f=b.view.scale,g=e.x,h=e.y,e=null;if(1==c.length&&a){var u=b.getCellGeometry(c[0]);null!=u&&(e=u.getTerminalPoint(!0))}e=null!=e?e:b.getBoundingBoxFromGeometry(c,a);if(null!=e){var v=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g)),t=Math.round(b.snap(b.popupMenuHandler.triggerY/f-h));b.cellsMoved(c,v-e.x,t-e.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("copySize",
+try{var c=mxClipboard.paste(b);if(null!=c){a=!0;for(var d=0;d<c.length&&a;d++)a=a&&b.model.isEdge(c[d]);var e=b.view.translate,g=b.view.scale,f=e.x,h=e.y,e=null;if(1==c.length&&a){var u=b.getCellGeometry(c[0]);null!=u&&(e=u.getTerminalPoint(!0))}e=null!=e?e:b.getBoundingBoxFromGeometry(c,a);if(null!=e){var v=Math.round(b.snap(b.popupMenuHandler.triggerX/g-f)),r=Math.round(b.snap(b.popupMenuHandler.triggerY/g-h));b.cellsMoved(c,v-e.x,r-e.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("copySize",
function(a){a=b.getSelectionCell();b.isEnabled()&&null!=a&&b.getModel().isVertex(a)&&(a=b.getCellGeometry(a),null!=a&&(c.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(a){if(b.isEnabled()&&!b.isSelectionEmpty()&&null!=c.copiedSize){b.getModel().beginUpdate();try{var d=b.getSelectionCells();for(a=0;a<d.length;a++)if(b.getModel().isVertex(d[a])){var e=b.getCellGeometry(d[a]);null!=e&&(e=e.clone(),e.width=c.copiedSize.width,e.height=
c.copiedSize.height,b.getModel().setGeometry(d[a],e))}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{b.setSelectionCells(b.duplicateCells())}catch(g){c.handleError(g)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),
function(){b.turnShapes(b.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){b.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){b.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){b.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){b.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!b.isSelectionEmpty()){b.getModel().beginUpdate();
@@ -3166,7 +3170,7 @@ function(){1==b.getSelectionCount()?b.setCellStyles("container","1"):b.setSelect
null,null,"F2/Enter");this.addAction("editData...",function(){var a=b.getSelectionCell()||b.getModel().getRoot();c.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=c.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),d="";if(mxUtils.isNode(b.value)){var e=b.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(c,mxResources.get("editTooltip")+":",d,function(c){a.setTooltipForCell(b,c)});c.showDialog(d.container,
320,200,!0,!0);d.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=b.getLinkForCell(b.getSelectionCell());null!=a&&b.openLink(a)});this.addAction("editLink...",function(){var a=c.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),d=a.getLinkForCell(b)||"";c.showLinkDialog(d,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(b,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+
"...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(b.clearSelection(),c.actions.get("image").funct())})).isEnabled=f;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&c.showLinkDialog("",mxResources.get("insert"),function(a,c){a=mxUtils.trim(a);if(0<a.length){var d=null,e=b.getLinkTitle(a);null!=c&&0<c.length&&(d=c[0].iconUrl,e=c[0].name||c[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&
-(e=e.substring(0,30)+"..."));var f=b.getFreeInsertPoint(),d=new mxCell(e,new mxGeometry(f.x,f.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=d?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+d:"spacing=10;"));d.vertex=!0;b.setLinkForCell(d,a);b.cellSizeUpdated(d,!0);b.getModel().beginUpdate();try{d=b.addCell(d),b.fireEvent(new mxEventObject("cellsInserted","cells",[d]))}finally{b.getModel().endUpdate()}b.setSelectionCell(d);b.scrollCellToVisible(b.getSelectionCell())}})})).isEnabled=
+(e=e.substring(0,30)+"..."));var g=b.getFreeInsertPoint(),d=new mxCell(e,new mxGeometry(g.x,g.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=d?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+d:"spacing=10;"));d.vertex=!0;b.setLinkForCell(d,a);b.cellSizeUpdated(d,!0);b.getModel().beginUpdate();try{d=b.addCell(d),b.fireEvent(new mxEventObject("cellsInserted","cells",[d]))}finally{b.getModel().endUpdate()}b.setSelectionCell(d);b.scrollCellToVisible(b.getSelectionCell())}})})).isEnabled=
f;this.addAction("link...",mxUtils.bind(this,function(){var a=c.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var b=a.getSelectedElement(),d=a.getParentByName(b,"A",a.cellEditor.textarea),e="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var f=b.getElementsByTagName("a"),h=0;h<f.length&&null==d;h++)f[h].textContent==b.textContent&&(d=f[h]);null!=d&&"A"==d.nodeName&&(e=d.getAttribute("href")||"",a.selectNode(d));var q=a.cellEditor.saveSelection();c.showLinkDialog(e,mxResources.get("apply"),
mxUtils.bind(this,function(b){a.cellEditor.restoreSelection(q);null!=b&&a.insertLink(b)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=f;this.addAction("autosize",function(){var a=b.getSelectionCells();if(null!=a){b.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var d=a[c];if(b.getModel().getChildCount(d))b.updateGroupBounds([d],20);else{var e=b.view.getState(d),f=b.getCellGeometry(d);b.getModel().isVertex(d)&&null!=e&&null!=e.text&&
null!=f&&b.isWrapping(d)?(f=f.clone(),f.height=e.text.boundingBox.height/b.view.scale,b.getModel().setGeometry(d,f)):b.updateCellSize(d)}}}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=b.getView().getState(b.getSelectionCell());if(null!=a){b.stopEditing();a="1"==a.style.html?null:"1";b.getModel().beginUpdate();try{for(var d=b.getSelectionCells(),e=0;e<d.length;e++)if(state=b.getView().getState(d[e]),null!=state){var f=mxUtils.getValue(state.style,
@@ -3217,9 +3221,9 @@ null,mxUtils.bind(this,function(){this.customFontSizes=[]}),b);c.addSeparator(b)
b);c.addItem(mxResources.get("middle"),null,function(){a.alignCells(mxConstants.ALIGN_MIDDLE)},b);c.addItem(mxResources.get("bottomAlign"),null,function(){a.alignCells(mxConstants.ALIGN_BOTTOM)},b)})));this.put("distribute",new Menu(mxUtils.bind(this,function(c,b){c.addItem(mxResources.get("horizontal"),null,function(){a.distributeCells(!0)},b);c.addItem(mxResources.get("vertical"),null,function(){a.distributeCells(!1)},b)})));this.put("layout",new Menu(mxUtils.bind(this,function(c,b){var d=mxUtils.bind(this,
function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),function(a){b(parseFloat(a))},mxResources.get("spacing"));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()});c.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var b=new mxHierarchicalLayout(a,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(function(){var c=a.getSelectionCells();b.execute(a.getDefaultParent(),0==c.length?null:c)},!0)}),b);c.addItem(mxResources.get("verticalFlow"),
null,mxUtils.bind(this,function(){var b=new mxHierarchicalLayout(a,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(function(){var c=a.getSelectionCells();b.execute(a.getDefaultParent(),0==c.length?null:c)},!0)}),b);c.addSeparator(b);c.addItem(mxResources.get("horizontalTree"),null,mxUtils.bind(this,function(){var b=a.getSelectionCell(),c=null;null==b||0==a.getModel().getChildCount(b)?0==a.getModel().getEdgeCount(b)&&(c=a.findTreeRoots(a.getDefaultParent())):c=a.findTreeRoots(b);null!=c&&
-0<c.length&&(b=c[0]);if(null!=b){var f=new mxCompactTreeLayout(a,!0);f.edgeRouting=!1;f.levelDistance=30;d(f.levelDistance,mxUtils.bind(this,function(c){f.levelDistance=c;this.editorUi.executeLayout(function(){f.execute(a.getDefaultParent(),b)},!0)}))}}),b);c.addItem(mxResources.get("verticalTree"),null,mxUtils.bind(this,function(){var b=a.getSelectionCell(),c=null;null==b||0==a.getModel().getChildCount(b)?0==a.getModel().getEdgeCount(b)&&(c=a.findTreeRoots(a.getDefaultParent())):c=a.findTreeRoots(b);
-null!=c&&0<c.length&&(b=c[0]);if(null!=b){var f=new mxCompactTreeLayout(a,!1);f.edgeRouting=!1;f.levelDistance=30;d(f.levelDistance,mxUtils.bind(this,function(c){f.levelDistance=c;this.editorUi.executeLayout(function(){f.execute(a.getDefaultParent(),b)},!0)}))}}),b);c.addItem(mxResources.get("radialTree"),null,mxUtils.bind(this,function(){var b=a.getSelectionCell(),c=null;null==b||0==a.getModel().getChildCount(b)?0==a.getModel().getEdgeCount(b)&&(c=a.findTreeRoots(a.getDefaultParent())):c=a.findTreeRoots(b);
-null!=c&&0<c.length&&(b=c[0]);if(null!=b){var f=new mxRadialTreeLayout(a,!1);f.levelDistance=80;f.autoRadius=!0;d(f.levelDistance,mxUtils.bind(this,function(c){f.levelDistance=c;this.editorUi.executeLayout(function(){f.execute(a.getDefaultParent(),b);a.isSelectionEmpty()||(b=a.getModel().getParent(b),a.getModel().isVertex(b)&&a.updateGroupBounds([b],2*a.gridSize,!0))},!0)}))}}),b);c.addSeparator(b);c.addItem(mxResources.get("organic"),null,mxUtils.bind(this,function(){var b=new mxFastOrganicLayout(a);
+0<c.length&&(b=c[0]);if(null!=b){var g=new mxCompactTreeLayout(a,!0);g.edgeRouting=!1;g.levelDistance=30;d(g.levelDistance,mxUtils.bind(this,function(c){g.levelDistance=c;this.editorUi.executeLayout(function(){g.execute(a.getDefaultParent(),b)},!0)}))}}),b);c.addItem(mxResources.get("verticalTree"),null,mxUtils.bind(this,function(){var b=a.getSelectionCell(),c=null;null==b||0==a.getModel().getChildCount(b)?0==a.getModel().getEdgeCount(b)&&(c=a.findTreeRoots(a.getDefaultParent())):c=a.findTreeRoots(b);
+null!=c&&0<c.length&&(b=c[0]);if(null!=b){var g=new mxCompactTreeLayout(a,!1);g.edgeRouting=!1;g.levelDistance=30;d(g.levelDistance,mxUtils.bind(this,function(c){g.levelDistance=c;this.editorUi.executeLayout(function(){g.execute(a.getDefaultParent(),b)},!0)}))}}),b);c.addItem(mxResources.get("radialTree"),null,mxUtils.bind(this,function(){var b=a.getSelectionCell(),c=null;null==b||0==a.getModel().getChildCount(b)?0==a.getModel().getEdgeCount(b)&&(c=a.findTreeRoots(a.getDefaultParent())):c=a.findTreeRoots(b);
+null!=c&&0<c.length&&(b=c[0]);if(null!=b){var g=new mxRadialTreeLayout(a,!1);g.levelDistance=80;g.autoRadius=!0;d(g.levelDistance,mxUtils.bind(this,function(c){g.levelDistance=c;this.editorUi.executeLayout(function(){g.execute(a.getDefaultParent(),b);a.isSelectionEmpty()||(b=a.getModel().getParent(b),a.getModel().isVertex(b)&&a.updateGroupBounds([b],2*a.gridSize,!0))},!0)}))}}),b);c.addSeparator(b);c.addItem(mxResources.get("organic"),null,mxUtils.bind(this,function(){var b=new mxFastOrganicLayout(a);
d(b.forceConstant,mxUtils.bind(this,function(c){b.forceConstant=c;this.editorUi.executeLayout(function(){var c=a.getSelectionCell();if(null==c||0==a.getModel().getChildCount(c))c=a.getDefaultParent();b.execute(c);a.getModel().isVertex(c)&&a.updateGroupBounds([c],2*a.gridSize,!0)},!0)}))}),b);c.addItem(mxResources.get("circle"),null,mxUtils.bind(this,function(){var b=new mxCircleLayout(a);this.editorUi.executeLayout(function(){var c=a.getSelectionCell();if(null==c||0==a.getModel().getChildCount(c))c=
a.getDefaultParent();b.execute(c);a.getModel().isVertex(c)&&a.updateGroupBounds([c],2*a.gridSize,!0)},!0)}),b)})));this.put("navigation",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"home - exitGroup enterGroup - expand collapse - collapsible".split(" "),b)})));this.put("arrange",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["toFront","toBack","-"],b);this.addSubmenu("direction",a,b);this.addMenuItems(a,["turn","-"],b);this.addSubmenu("align",a,b);this.addSubmenu("distribute",
a,b);a.addSeparator(b);this.addSubmenu("navigation",a,b);this.addSubmenu("insert",a,b);this.addSubmenu("layout",a,b);this.addMenuItems(a,"- group ungroup removeFromGroup - clearWaypoints autosize".split(" "),b)}))).isEnabled=c;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["insertLink","insertImage"],b)})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,(null!=this.editorUi.format?["formatPanel"]:[]).concat("outline layers - pageView pageScale - scrollbars tooltips - grid guides - connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),
@@ -3309,52 +3313,52 @@ ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,fu
ColorDialog.addRecentColor=function(a,c){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=c&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var c=document.createElement("div");c.setAttribute("align","center");var d=document.createElement("h3");mxUtils.write(d,mxResources.get("about")+" GraphEditor");c.appendChild(d);d=document.createElement("img");d.style.border="0px";d.setAttribute("width","176");d.setAttribute("width","151");d.setAttribute("src",IMAGE_PATH+"/logo.png");c.appendChild(d);mxUtils.br(c);mxUtils.write(c,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(c);d=document.createElement("a");d.setAttribute("href",
"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},FilenameDialog=function(a,c,d,b,f,e,h,g,k,l,m,n){k=null!=k?k:!0;var p,q,u=document.createElement("table"),v=document.createElement("tbody");u.style.marginTop="8px";p=document.createElement("tr");q=document.createElement("td");
-q.style.whiteSpace="nowrap";q.style.fontSize="10pt";q.style.width="120px";mxUtils.write(q,(f||mxResources.get("filename"))+":");p.appendChild(q);var t=document.createElement("input");t.setAttribute("value",c||"");t.style.marginLeft="4px";t.style.width=null!=n?n+"px":"180px";var w=mxUtils.button(d,function(){if(null==e||e(t.value))k&&a.hideDialog(),b(t.value)});w.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==h)if(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
-mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=u.parentNode;if(null!=a){var b=null;mxEvent.addListener(a,"dragleave",function(a){null!=b&&(b.style.backgroundColor="",b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,"dragover",mxUtils.bind(this,function(a){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=t,b.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,
-function(a){null!=b&&(b.style.backgroundColor="",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(t.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),w.click());a.stopPropagation();a.preventDefault()}))}}};q=document.createElement("td");q.style.whiteSpace="nowrap";q.appendChild(t);p.appendChild(q);if(null!=f||null==h)v.appendChild(p),null!=m&&q.appendChild(FilenameDialog.createTypeHint(a,t,m));null!=h&&(p=document.createElement("tr"),q=document.createElement("td"),
-q.colSpan=2,q.appendChild(h),p.appendChild(q),v.appendChild(p));p=document.createElement("tr");q=document.createElement("td");q.colSpan=2;q.style.paddingTop="20px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});c.className="geBtn";a.editor.cancelFirst&&q.appendChild(c);null!=g&&(d=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),d.className="geBtn",q.appendChild(d));mxEvent.addListener(t,
+q.style.whiteSpace="nowrap";q.style.fontSize="10pt";q.style.width="120px";mxUtils.write(q,(f||mxResources.get("filename"))+":");p.appendChild(q);var r=document.createElement("input");r.setAttribute("value",c||"");r.style.marginLeft="4px";r.style.width=null!=n?n+"px":"180px";var w=mxUtils.button(d,function(){if(null==e||e(r.value))k&&a.hideDialog(),b(r.value)});w.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==h)if(r.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
+mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=u.parentNode;if(null!=a){var b=null;mxEvent.addListener(a,"dragleave",function(a){null!=b&&(b.style.backgroundColor="",b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,"dragover",mxUtils.bind(this,function(a){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=r,b.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.style.backgroundColor="",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(r.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),w.click());a.stopPropagation();a.preventDefault()}))}}};q=document.createElement("td");q.style.whiteSpace="nowrap";q.appendChild(r);p.appendChild(q);if(null!=f||null==h)v.appendChild(p),null!=m&&q.appendChild(FilenameDialog.createTypeHint(a,r,m));null!=h&&(p=document.createElement("tr"),q=document.createElement("td"),
+q.colSpan=2,q.appendChild(h),p.appendChild(q),v.appendChild(p));p=document.createElement("tr");q=document.createElement("td");q.colSpan=2;q.style.paddingTop="20px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});c.className="geBtn";a.editor.cancelFirst&&q.appendChild(c);null!=g&&(d=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),d.className="geBtn",q.appendChild(d));mxEvent.addListener(r,
"keypress",function(a){13==a.keyCode&&w.click()});q.appendChild(w);a.editor.cancelFirst||q.appendChild(c);p.appendChild(q);v.appendChild(p);u.appendChild(v);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,c,d){var b=document.createElement("img");b.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(b,70);var f=function(){b.setAttribute("src",Editor.helpImage);b.setAttribute("title",mxResources.get("help"));for(var a=0;a<d.length;a++)if(0<d[a].ext.length&&c.value.substring(c.value.length-d[a].ext.length-1)=="."+d[a].ext){b.setAttribute("src",
mxClient.imageBasePath+"/warning.png");b.setAttribute("title",mxResources.get(d[a].title));break}};mxEvent.addListener(c,"keyup",f);mxEvent.addListener(c,"change",f);mxEvent.addListener(b,"click",function(c){var d=b.getAttribute("title");b.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=d&&a.showError(null,d,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
mxEvent.consume(c)});f();return b};
-var TextareaDialog=function(a,c,d,b,f,e,h,g,k,l,m,n,p,q){h=null!=h?h:300;g=null!=g?g:120;l=null!=l?l:!1;var u,v,t=document.createElement("table"),w=document.createElement("tbody");u=document.createElement("tr");v=document.createElement("td");v.style.fontSize="10pt";v.style.width="100px";mxUtils.write(v,c);u.appendChild(v);w.appendChild(u);u=document.createElement("tr");v=document.createElement("td");var r=document.createElement("textarea");m&&r.setAttribute("wrap","off");r.setAttribute("spellcheck",
-"false");r.setAttribute("autocorrect","off");r.setAttribute("autocomplete","off");r.setAttribute("autocapitalize","off");mxUtils.write(r,d||"");r.style.resize="none";r.style.width=h+"px";r.style.height=g+"px";this.textarea=r;this.init=function(){r.focus();r.scrollTop=0};v.appendChild(r);u.appendChild(v);w.appendChild(u);u=document.createElement("tr");v=document.createElement("td");v.style.paddingTop="14px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");null!=p&&(c=mxUtils.button(mxResources.get("help"),
-function(){a.editor.graph.openLink(p)}),c.className="geBtn",v.appendChild(c));if(null!=q)for(c=0;c<q.length;c++)(function(a,b){var c=mxUtils.button(a,function(a){b(a,r)});c.className="geBtn";v.appendChild(c)})(q[c][0],q[c][1]);e=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&v.appendChild(e);null!=k&&k(v,r);null!=b&&(k=mxUtils.button(n||mxResources.get("apply"),function(){l||a.hideDialog();b(r.value)}),k.className="geBtn gePrimaryBtn",
-v.appendChild(k));a.editor.cancelFirst||v.appendChild(e);u.appendChild(v);w.appendChild(u);t.appendChild(w);this.container=t},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";
+var TextareaDialog=function(a,c,d,b,f,e,h,g,k,l,m,n,p,q){h=null!=h?h:300;g=null!=g?g:120;l=null!=l?l:!1;var u,v,r=document.createElement("table"),w=document.createElement("tbody");u=document.createElement("tr");v=document.createElement("td");v.style.fontSize="10pt";v.style.width="100px";mxUtils.write(v,c);u.appendChild(v);w.appendChild(u);u=document.createElement("tr");v=document.createElement("td");var t=document.createElement("textarea");m&&t.setAttribute("wrap","off");t.setAttribute("spellcheck",
+"false");t.setAttribute("autocorrect","off");t.setAttribute("autocomplete","off");t.setAttribute("autocapitalize","off");mxUtils.write(t,d||"");t.style.resize="none";t.style.width=h+"px";t.style.height=g+"px";this.textarea=t;this.init=function(){t.focus();t.scrollTop=0};v.appendChild(t);u.appendChild(v);w.appendChild(u);u=document.createElement("tr");v=document.createElement("td");v.style.paddingTop="14px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");null!=p&&(c=mxUtils.button(mxResources.get("help"),
+function(){a.editor.graph.openLink(p)}),c.className="geBtn",v.appendChild(c));if(null!=q)for(c=0;c<q.length;c++)(function(a,b){var c=mxUtils.button(a,function(a){b(a,t)});c.className="geBtn";v.appendChild(c)})(q[c][0],q[c][1]);e=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&v.appendChild(e);null!=k&&k(v,t);null!=b&&(k=mxUtils.button(n||mxResources.get("apply"),function(){l||a.hideDialog();b(t.value)}),k.className="geBtn gePrimaryBtn",
+v.appendChild(k));a.editor.cancelFirst||v.appendChild(e);u.appendChild(v);w.appendChild(u);r.appendChild(w);this.container=r},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";
d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},
!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className="geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));
EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=Graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),
a.hideDialog()}catch(n){c=n}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(n){c=n}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||
c.appendChild(b);this.container=c};EditDiagramDialog.showNewWindowOption=!0;
-var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+n.value:a+"."+n.value;"xml"===n.value?(p.setAttribute("disabled","true"),q.setAttribute("disabled","true"),u.setAttribute("disabled","true"),x.setAttribute("disabled","true")):(p.removeAttribute("disabled"),q.removeAttribute("disabled"),u.removeAttribute("disabled"),x.removeAttribute("disabled"));"png"===n.value||"svg"===n.value?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled");
-"png"===n.value?(v.removeAttribute("disabled"),t.removeAttribute("disabled")):(v.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"))}function d(){q.style.backgroundColor=q.value*u.value>MAX_AREA||0>=q.value?"red":"";u.style.backgroundColor=q.value*u.value>MAX_AREA||0>=u.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",
+var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+n.value:a+"."+n.value;"xml"===n.value?(p.setAttribute("disabled","true"),q.setAttribute("disabled","true"),u.setAttribute("disabled","true"),x.setAttribute("disabled","true")):(p.removeAttribute("disabled"),q.removeAttribute("disabled"),u.removeAttribute("disabled"),x.removeAttribute("disabled"));"png"===n.value||"svg"===n.value?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled");
+"png"===n.value?(v.removeAttribute("disabled"),r.removeAttribute("disabled")):(v.setAttribute("disabled","disabled"),r.setAttribute("disabled","disabled"))}function d(){q.style.backgroundColor=q.value*u.value>MAX_AREA||0>=q.value?"red":"";u.style.backgroundColor=q.value*u.value>MAX_AREA||0>=u.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",
mxClient.IS_SF?"0":"2");f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,mxResources.get("filename")+":");f.appendChild(k);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";k=document.createElement("td");k.appendChild(m);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+
":");f.appendChild(k);var n=document.createElement("select");n.style.width="180px";k=document.createElement("option");k.setAttribute("value","png");mxUtils.write(k,mxResources.get("formatPng"));n.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),n.appendChild(k));k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));n.appendChild(k);k=document.createElement("option");
k.setAttribute("value","pdf");mxUtils.write(k,mxResources.get("formatPdf"));n.appendChild(k);k=document.createElement("option");k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));n.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),n.appendChild(k));k=document.createElement("td");k.appendChild(n);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");
k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");f.appendChild(k);var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("value","100");p.style.width="180px";k=document.createElement("td");k.appendChild(p);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");f.appendChild(k);var q=document.createElement("input");q.setAttribute("value",
h);q.style.width="180px";k=document.createElement("td");k.appendChild(q);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");f.appendChild(k);var u=document.createElement("input");u.setAttribute("value",g);u.style.width="180px";k=document.createElement("td");k.appendChild(u);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize=
"10pt";mxUtils.write(k,mxResources.get("dpi")+":");f.appendChild(k);var v=document.createElement("select");v.style.width="180px";k=document.createElement("option");k.setAttribute("value","100");mxUtils.write(k,"100dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value","200");mxUtils.write(k,"200dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value","300");mxUtils.write(k,"300dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value",
-"400");mxUtils.write(k,"400dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value","custom");mxUtils.write(k,mxResources.get("custom"));v.appendChild(k);var t=document.createElement("input");t.style.width="180px";t.style.display="none";t.setAttribute("value","100");t.setAttribute("type","number");t.setAttribute("min","50");t.setAttribute("step","50");var w=!1;mxEvent.addListener(v,"change",function(){"custom"==this.value?(this.style.display="none",t.style.display="",t.focus()):
-(t.value=this.value,w||(p.value=this.value))});mxEvent.addListener(t,"change",function(){var a=parseInt(t.value);isNaN(a)||0>=a?t.style.backgroundColor="red":(t.style.backgroundColor="",w||(p.value=a))});k=document.createElement("td");k.appendChild(v);k.appendChild(t);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");f.appendChild(k);var r=document.createElement("input");r.setAttribute("type",
-"checkbox");r.checked=null==b.background||b.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(r);mxUtils.write(k,mxResources.get("transparent"));f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");f.appendChild(k);var x=document.createElement("input");x.setAttribute("type","number");x.setAttribute("value",ExportDialog.lastBorderValue);x.style.width="180px";
+"400");mxUtils.write(k,"400dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value","custom");mxUtils.write(k,mxResources.get("custom"));v.appendChild(k);var r=document.createElement("input");r.style.width="180px";r.style.display="none";r.setAttribute("value","100");r.setAttribute("type","number");r.setAttribute("min","50");r.setAttribute("step","50");var w=!1;mxEvent.addListener(v,"change",function(){"custom"==this.value?(this.style.display="none",r.style.display="",r.focus()):
+(r.value=this.value,w||(p.value=this.value))});mxEvent.addListener(r,"change",function(){var a=parseInt(r.value);isNaN(a)||0>=a?r.style.backgroundColor="red":(r.style.backgroundColor="",w||(p.value=a))});k=document.createElement("td");k.appendChild(v);k.appendChild(r);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");f.appendChild(k);var t=document.createElement("input");t.setAttribute("type",
+"checkbox");t.checked=null==b.background||b.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(t);mxUtils.write(k,mxResources.get("transparent"));f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");f.appendChild(k);var x=document.createElement("input");x.setAttribute("type","number");x.setAttribute("value",ExportDialog.lastBorderValue);x.style.width="180px";
k=document.createElement("td");k.appendChild(x);f.appendChild(k);l.appendChild(f);e.appendChild(l);mxEvent.addListener(n,"change",c);c();mxEvent.addListener(p,"change",function(){w=!0;var a=Math.max(0,parseFloat(p.value)||100)/100;p.value=parseFloat((100*a).toFixed(2));0<h?(q.value=Math.floor(h*a),u.value=Math.floor(g*a)):(p.value="100",q.value=h,u.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/h;0<a?(p.value=parseFloat((100*a).toFixed(2)),u.value=Math.floor(g*a)):
(p.value="100",q.value=h,u.value=g);d()});mxEvent.addListener(u,"change",function(){var a=parseInt(u.value)/g;0<a?(p.value=parseFloat((100*a).toFixed(2)),q.value=Math.floor(h*a)):(p.value="100",q.value=h,u.value=g);d()});f=document.createElement("tr");k=document.createElement("td");k.setAttribute("align","right");k.style.paddingTop="22px";k.colSpan=2;var y=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(p.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=
-m.value,d=n.value,e=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(x.value)),g=b.background,h=Math.max(1,parseInt(t.value));if(("svg"==d||"png"==d)&&r.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f,h)}}));y.className="geBtn gePrimaryBtn";var D=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});D.className="geBtn";a.editor.cancelFirst?(k.appendChild(D),k.appendChild(y)):(k.appendChild(y),
+m.value,d=n.value,e=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(x.value)),g=b.background,h=Math.max(1,parseInt(r.value));if(("svg"==d||"png"==d)&&t.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f,h)}}));y.className="geBtn gePrimaryBtn";var D=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});D.className="geBtn";a.editor.cancelFirst?(k.appendChild(D),k.appendChild(y)):(k.appendChild(y),
k.appendChild(D));f.appendChild(k);l.appendChild(f);e.appendChild(l);this.container=e};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
ExportDialog.exportFile=function(a,c,d,b,f,e,h){var g=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(g.getSvg(b,f,e)),c,d);else{var k=g.getGraphBounds(),l=mxUtils.createXmlDocument(),m=l.createElement("output");l.appendChild(m);l=new mxXmlCanvas2D(m);l.translate(Math.floor((e/f-k.x)/g.view.scale),Math.floor((e/f-k.y)/g.view.scale));l.scale(f/g.view.scale);(new mxImageExport).drawState(g.getView().getState(g.model.root),
l);m="xml="+encodeURIComponent(mxUtils.getXml(m));l=Math.ceil(k.width*f/g.view.scale+2*e);f=Math.ceil(k.height*f/g.view.scale+2*e);m.length<=MAX_REQUEST_SIZE&&l*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+l+"&h="+f+"&"+m+"&dpi="+h)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,c,d,b){c.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(d)+"&format="+b)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
-var EditDataDialog=function(a,c){function d(){0<w.value.length?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var h=mxUtils.createXmlDocument().createElement("object");h.setAttribute("label",e||"");e=h}var g=new mxForm("properties");g.table.style.width="100%";for(var k=e.attributes,l=[],m=[],n=0,p=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,
+var EditDataDialog=function(a,c){function d(){0<w.value.length?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var h=mxUtils.createXmlDocument().createElement("object");h.setAttribute("label",e||"");e=h}var g=new mxForm("properties");g.table.style.width="100%";for(var k=e.attributes,l=[],m=[],n=0,p=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,
c):null,q=function(a,b){var c=document.createElement("div");c.style.position="relative";c.style.paddingRight="20px";c.style.boxSizing="border-box";c.style.width="100%";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";d.className="geButton";d.setAttribute("title",mxResources.get("delete"));d.style.position="absolute";d.style.top="4px";d.style.right="0px";d.style.margin=
-"0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<l.length;c++){if(l[c]==a){m[c]=null;g.table.deleteRow(b+(null!=p?1:0));break}null!=m[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},h=function(a,b,c){l[a]=b;m[a]=g.addTextarea(l[n]+":",c,2);m[a].style.width="100%";q(m[a],b)},u=[],v=f.getModel().getParent(c)==f.getModel().getRoot(),t=0;t<k.length;t++)!v&&
-"label"==k[t].nodeName||"placeholders"==k[t].nodeName||u.push({name:k[t].nodeName,value:k[t].nodeValue});u.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});null!=p&&(k=document.createElement("div"),k.style.width="100%",k.style.fontSize="11px",k.style.textAlign="center",mxUtils.write(k,p),g.addField(mxResources.get("id")+":",k));for(t=0;t<u.length;t++)h(n,u[t].name,u[t].value),n++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";
+"0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<l.length;c++){if(l[c]==a){m[c]=null;g.table.deleteRow(b+(null!=p?1:0));break}null!=m[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},h=function(a,b,c){l[a]=b;m[a]=g.addTextarea(l[n]+":",c,2);m[a].style.width="100%";q(m[a],b)},u=[],v=f.getModel().getParent(c)==f.getModel().getRoot(),r=0;r<k.length;r++)!v&&
+"label"==k[r].nodeName||"placeholders"==k[r].nodeName||u.push({name:k[r].nodeName,value:k[r].nodeValue});u.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});null!=p&&(k=document.createElement("div"),k.style.width="100%",k.style.fontSize="11px",k.style.textAlign="center",mxUtils.write(k,p),g.addField(mxResources.get("id")+":",k));for(r=0;r<u.length;r++)h(n,u[r].name,u[r].value),n++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";
h.appendChild(g.table);u=document.createElement("div");u.style.boxSizing="border-box";u.style.paddingRight="160px";u.style.whiteSpace="nowrap";u.style.marginTop="6px";u.style.width="100%";var w=document.createElement("input");w.setAttribute("placeholder",mxResources.get("enterPropertyName"));w.setAttribute("type","text");w.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");w.style.boxSizing="border-box";w.style.marginLeft="2px";w.style.width="100%";u.appendChild(w);h.appendChild(u);b.appendChild(h);
-var r=mxUtils.button(mxResources.get("addProperty"),function(){var a=w.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(l,a);if(0<=b&&null!=m[b])m[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(l.splice(b,1),m.splice(b,1));l.push(a);var c=g.addTextarea(a+":","",2);c.style.width="100%";m.push(c);q(c,a);c.focus()}r.setAttribute("disabled","disabled");w.value=""}catch(E){mxUtils.alert(E)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=
-function(){0<m.length?m[0].focus():w.focus()};r.setAttribute("title",mxResources.get("addProperty"));r.setAttribute("disabled","disabled");r.style.textOverflow="ellipsis";r.style.position="absolute";r.style.overflow="hidden";r.style.width="144px";r.style.right="0px";r.className="geBtn";u.appendChild(r);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});h.className="geBtn";u=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);
+var t=mxUtils.button(mxResources.get("addProperty"),function(){var a=w.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(l,a);if(0<=b&&null!=m[b])m[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(l.splice(b,1),m.splice(b,1));l.push(a);var c=g.addTextarea(a+":","",2);c.style.width="100%";m.push(c);q(c,a);c.focus()}t.setAttribute("disabled","disabled");w.value=""}catch(E){mxUtils.alert(E)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=
+function(){0<m.length?m[0].focus():w.focus()};t.setAttribute("title",mxResources.get("addProperty"));t.setAttribute("disabled","disabled");t.style.textOverflow="ellipsis";t.style.position="absolute";t.style.overflow="hidden";t.style.width="144px";t.style.right="0px";t.className="geBtn";u.appendChild(t);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});h.className="geBtn";u=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);
e=e.cloneNode(!0);for(var b=!1,d=0;d<l.length;d++)null==m[d]?e.removeAttribute(l[d]):(e.setAttribute(l[d],m[d].value),b=b||"placeholder"==l[d]&&"1"==e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(B){mxUtils.alert(B)}});u.className="geBtn gePrimaryBtn";mxEvent.addListener(w,"keyup",d);mxEvent.addListener(w,"change",d);k=document.createElement("div");k.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||
-a.editor.graph.getModel().isEdge(c)){v=document.createElement("span");v.style.marginRight="10px";t=document.createElement("input");t.setAttribute("type","checkbox");t.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(t.setAttribute("checked","checked"),t.defaultChecked=!0);mxEvent.addListener(t,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(t);mxUtils.write(v,mxResources.get("placeholders"));if(null!=
-EditDataDialog.placeholderHelpLink){t=document.createElement("a");t.setAttribute("href",EditDataDialog.placeholderHelpLink);t.setAttribute("title",mxResources.get("help"));t.setAttribute("target","_blank");t.style.marginLeft="8px";t.style.cursor="help";var x=document.createElement("img");mxUtils.setOpacity(x,50);x.style.height="16px";x.style.width="16px";x.setAttribute("border","0");x.setAttribute("valign","middle");x.style.marginTop=mxClient.IS_IE11?"0px":"-4px";x.setAttribute("src",Editor.helpImage);
-t.appendChild(x);v.appendChild(t)}k.appendChild(v)}a.editor.cancelFirst?(k.appendChild(h),k.appendChild(u)):(k.appendChild(u),k.appendChild(h));b.appendChild(k);this.container=b};EditDataDialog.getDisplayIdForCell=function(a,c){var d=null;null!=a.editor.graph.getModel().getParent(c)&&(d=c.getId());return d};EditDataDialog.placeholderHelpLink=null;
+a.editor.graph.getModel().isEdge(c)){v=document.createElement("span");v.style.marginRight="10px";r=document.createElement("input");r.setAttribute("type","checkbox");r.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(r.setAttribute("checked","checked"),r.defaultChecked=!0);mxEvent.addListener(r,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(r);mxUtils.write(v,mxResources.get("placeholders"));if(null!=
+EditDataDialog.placeholderHelpLink){r=document.createElement("a");r.setAttribute("href",EditDataDialog.placeholderHelpLink);r.setAttribute("title",mxResources.get("help"));r.setAttribute("target","_blank");r.style.marginLeft="8px";r.style.cursor="help";var x=document.createElement("img");mxUtils.setOpacity(x,50);x.style.height="16px";x.style.width="16px";x.setAttribute("border","0");x.setAttribute("valign","middle");x.style.marginTop=mxClient.IS_IE11?"0px":"-4px";x.setAttribute("src",Editor.helpImage);
+r.appendChild(x);v.appendChild(r)}k.appendChild(v)}a.editor.cancelFirst?(k.appendChild(h),k.appendChild(u)):(k.appendChild(u),k.appendChild(h));b.appendChild(k);this.container=b};EditDataDialog.getDisplayIdForCell=function(a,c){var d=null;null!=a.editor.graph.getModel().getParent(c)&&(d=c.getId());return d};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var h=document.createElement("input");h.setAttribute("value",c);h.setAttribute("placeholder","http://www.example.com/");h.setAttribute("type",
"text");h.style.marginTop="6px";h.style.width="400px";h.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";h.style.backgroundRepeat="no-repeat";h.style.backgroundPosition="100% 50%";h.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
0:3)+"px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";mxEvent.addListener(c,"click",function(){h.value="";h.focus()});e.appendChild(h);e.appendChild(c);f.appendChild(e);this.init=function(){h.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?h.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(h,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),
@@ -3373,14 +3377,14 @@ l.style.marginLeft="4px";l.style.marginRight="6px";l.style.marginTop="4px";k.app
"right",b.style.whiteSpace="nowrap",b.style.position="absolute",b.style.right="6px",b.style.top="6px",0<a&&(k=document.createElement("a"),k.setAttribute("title",mxResources.get("toBack")),k.className="geButton",k.style.cssFloat="none",k.innerHTML="&#9660;",k.style.width="14px",k.style.height="14px",k.style.fontSize="14px",k.style.margin="0px",k.style.marginTop="-1px",b.appendChild(k),mxEvent.addListener(k,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a-1);mxEvent.consume(b)})),0<=a&&
a<q-1&&(k=document.createElement("a"),k.setAttribute("title",mxResources.get("toFront")),k.className="geButton",k.style.cssFloat="none",k.innerHTML="&#9650;",k.style.width="14px",k.style.height="14px",k.style.fontSize="14px",k.style.margin="0px",k.style.marginTop="-1px",b.appendChild(k),mxEvent.addListener(k,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a+1);mxEvent.consume(b)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable",
"true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",function(a){var b=mxEvent.getSource(a).nodeName;"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==c?(f.style.background="white"==Dialog.backdropColor?"#e6eff8":"#505759",f.style.fontWeight=g.isEnabled()?"bold":"",u=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null),h())});m.appendChild(f)}q=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=q-
-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,g.convertValueToString(c)||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,b));var c=g.convertValueToString(u)||mxResources.get("background");t.setAttribute("title",mxResources.get("removeIt",[c]));x.setAttribute("title",mxResources.get("duplicateIt",[c]));r.setAttribute("title",mxResources.get("editData"));g.isSelectionEmpty()&&(w.className="geButton mxDisabled")}var g=a.editor.graph,k=document.createElement("div");k.style.userSelect=
+1;0<=b;b--)mxUtils.bind(this,function(c){a(b,g.convertValueToString(c)||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,b));var c=g.convertValueToString(u)||mxResources.get("background");r.setAttribute("title",mxResources.get("removeIt",[c]));x.setAttribute("title",mxResources.get("duplicateIt",[c]));t.setAttribute("title",mxResources.get("editData"));g.isSelectionEmpty()&&(w.className="geButton mxDisabled")}var g=a.editor.graph,k=document.createElement("div");k.style.userSelect=
"none";k.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;k.style.border="1px solid whiteSmoke";k.style.height="100%";k.style.marginBottom="10px";k.style.overflow="auto";var l=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");m.style.backgroundColor="white"==Dialog.backdropColor?"#dcdcdc":Dialog.backdropColor;m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(l)+7+"px";
k.appendChild(m);var n=null,p=null;mxEvent.addListener(k,"dragover",function(a){a.dataTransfer.dropEffect="move";p=0;a.stopPropagation();a.preventDefault()});mxEvent.addListener(k,"drop",function(a){a.stopPropagation();a.preventDefault()});var q=null,u=null,v=document.createElement("div");v.className="geToolbarContainer";v.style.position="absolute";v.style.bottom="0px";v.style.left="0px";v.style.right="0px";v.style.height=l;v.style.overflow="hidden";v.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":
-"1px";v.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;v.style.borderWidth="1px 0px 0px 0px";v.style.borderColor="#c3c3c3";v.style.borderStyle="solid";v.style.display="block";v.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(v.style.filter="none");l=document.createElement("a");l.className="geButton";mxClient.IS_QUIRKS&&(l.style.filter="none");var t=l.cloneNode();t.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(t,
-"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(u);g.removeCells([u],!1);0==g.model.getChildCount(g.model.root)?(g.model.add(g.model.root,new mxCell),g.setDefaultParent(null)):0<b&&b<=g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(t.className="geButton mxDisabled");v.appendChild(t);var w=l.cloneNode();w.setAttribute("title",
+"1px";v.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;v.style.borderWidth="1px 0px 0px 0px";v.style.borderColor="#c3c3c3";v.style.borderStyle="solid";v.style.display="block";v.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(v.style.filter="none");l=document.createElement("a");l.className="geButton";mxClient.IS_QUIRKS&&(l.style.filter="none");var r=l.cloneNode();r.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(r,
+"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(u);g.removeCells([u],!1);0==g.model.getChildCount(g.model.root)?(g.model.add(g.model.root,new mxCell),g.setDefaultParent(null)):0<b&&b<=g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(r.className="geButton mxDisabled");v.appendChild(r);var w=l.cloneNode();w.setAttribute("title",
mxUtils.trim(mxResources.get("moveSelectionTo",[""])));w.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(b){if(g.isEnabled()&&!g.isSelectionEmpty()){a.editor.graph.popupMenuHandler.hideMenu();var c=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var c=q-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),
-0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,c))}));c.div.className+=" geMenubarMenu";c.smartSeparators=!0;c.showDisabled=!0;c.autoExpand=!0;c.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(c,arguments);c.destroy()});var d=mxUtils.getOffset(w);c.popup(d.x,d.y+w.offsetHeight,null,b);a.setCurrentMenu(c)}});v.appendChild(w);var r=l.cloneNode();r.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';
-r.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(r,"click",function(b){g.isEnabled()&&a.showDataDialog(u);mxEvent.consume(b)});g.isEnabled()||(r.className="geButton mxDisabled");v.appendChild(r);var x=l.cloneNode();x.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';mxEvent.addListener(x,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCell(u),g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),
+0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,c))}));c.div.className+=" geMenubarMenu";c.smartSeparators=!0;c.showDisabled=!0;c.autoExpand=!0;c.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(c,arguments);c.destroy()});var d=mxUtils.getOffset(w);c.popup(d.x,d.y+w.offsetHeight,null,b);a.setCurrentMenu(c)}});v.appendChild(w);var t=l.cloneNode();t.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';
+t.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(t,"click",function(b){g.isEnabled()&&a.showDataDialog(u);mxEvent.consume(b)});g.isEnabled()||(t.className="geButton mxDisabled");v.appendChild(t);var x=l.cloneNode();x.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';mxEvent.addListener(x,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCell(u),g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),
a=g.addCell(a,g.model.root),g.setDefaultParent(a)}finally{g.model.endUpdate()}null==a||g.isCellLocked(a)||g.selectAll(a)}});g.isEnabled()||(x.className="geButton mxDisabled");v.appendChild(x);l=l.cloneNode();l.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';l.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(l,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);
g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(l.className="geButton mxDisabled");v.appendChild(l);k.appendChild(v);h();g.model.addListener(mxEvent.CHANGE,function(){h()});g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?w.className="geButton mxDisabled":w.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),k,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);
this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.refreshLayers=h;this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-
@@ -7899,26 +7903,26 @@ DrawioFile=function(a,c){mxEventSource.call(this);this.ui=a;this.shadowData=this
DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.lastSaved=null;DrawioFile.prototype.lastChanged=null;DrawioFile.prototype.opened=null;DrawioFile.prototype.modified=!1;DrawioFile.prototype.data=null;DrawioFile.prototype.shadowData=null;DrawioFile.prototype.shadowPages=null;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;
DrawioFile.prototype.maxAutosaveRevisionDelay=3E5;DrawioFile.prototype.inConflictState=!1;DrawioFile.prototype.invalidChecksum=!1;DrawioFile.prototype.errorReportsEnabled=!1;DrawioFile.prototype.reportEnabled=!0;DrawioFile.prototype.ageStart=null;DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};
DrawioFile.prototype.synchronizeFile=function(a,c){this.savingFile?null!=c&&c({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(a,c):this.updateFile(a,c)};
-DrawioFile.prototype.updateFile=function(a,c,d,b){null!=d&&d()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():this.getLatestVersion(mxUtils.bind(this,function(e){try{null!=d&&d()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():null!=e?this.mergeFile(e,a,c,b):this.reloadFile(a,c))}catch(g){null!=c&&c(g)}}),c))};
-DrawioFile.prototype.mergeFile=function(a,c,d,b){var e=!0;try{this.stats.fileMerged++;var g=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),k=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=k&&0<k.length){this.shadowPages=k;this.backupPatch=this.isModified()?this.ui.diffPages(g,this.ui.pages):null;var l=[this.ui.diffPages(null!=b?b:g,this.shadowPages)];if(!this.ignorePatches(l)){var n=this.ui.patchPages(g,
-l[0]);b={};var q=this.ui.getHashValueForPages(n,b),g={},f=this.ui.getHashValueForPages(this.shadowPages,g);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",l,"checksum",f==q,q);if(null!=q&&q!=f){var m=this.compressReportData(this.getAnonymizedXmlForPages(k)),p=this.compressReportData(this.getAnonymizedXmlForPages(n)),u=this.ui.hashValue(a.getCurrentEtag()),v=this.ui.hashValue(this.getCurrentEtag());this.checksumError(d,l,"Shadow Details: "+JSON.stringify(b)+
-"\nChecksum: "+q+"\nCurrent: "+f+"\nCurrent Details: "+JSON.stringify(g)+"\nFrom: "+u+"\nTo: "+v+"\n\nFile Data:\n"+m+"\nPatched Shadow:\n"+p,null,"mergeFile");return}this.patch(l,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw e=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(x){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=d&&d(x);try{if(e)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,x);else{var t=this.getCurrentUser(),z=null!=t?t.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),z,x)}}catch(C){}}};
-DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var c=new mxCodec(mxUtils.createXmlDocument()),d=c.document.createElement("mxfile");if(null!=a)for(var b=0;b<a.length;b++){var e=c.encode(new mxGraphModel(a[b].root));"1"!=urlParams.dev&&(e=this.ui.anonymizeNode(e,!0));e.setAttribute("id",a[b].getId());a[b].viewState&&this.ui.editor.graph.saveViewState(a[b].viewState,e,!0);d.appendChild(e)}return mxUtils.getPrettyXml(d)};
+DrawioFile.prototype.updateFile=function(a,c,d,b){null!=d&&d()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():this.getLatestVersion(mxUtils.bind(this,function(f){try{null!=d&&d()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():null!=f?this.mergeFile(f,a,c,b):this.reloadFile(a,c))}catch(g){null!=c&&c(g)}}),c))};
+DrawioFile.prototype.mergeFile=function(a,c,d,b){var f=!0;try{this.stats.fileMerged++;var g=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),k=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=k&&0<k.length){this.shadowPages=k;this.backupPatch=this.isModified()?this.ui.diffPages(g,this.ui.pages):null;var l=[this.ui.diffPages(null!=b?b:g,this.shadowPages)];if(!this.ignorePatches(l)){var n=this.ui.patchPages(g,
+l[0]);b={};var q=this.ui.getHashValueForPages(n,b),g={},e=this.ui.getHashValueForPages(this.shadowPages,g);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",l,"checksum",e==q,q);if(null!=q&&q!=e){var m=this.compressReportData(this.getAnonymizedXmlForPages(k)),p=this.compressReportData(this.getAnonymizedXmlForPages(n)),u=this.ui.hashValue(a.getCurrentEtag()),v=this.ui.hashValue(this.getCurrentEtag());this.checksumError(d,l,"Shadow Details: "+JSON.stringify(b)+
+"\nChecksum: "+q+"\nCurrent: "+e+"\nCurrent Details: "+JSON.stringify(g)+"\nFrom: "+u+"\nTo: "+v+"\n\nFile Data:\n"+m+"\nPatched Shadow:\n"+p,null,"mergeFile");return}this.patch(l,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw f=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(z){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
+null!=d&&d(z);try{if(f)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,z);else{var t=this.getCurrentUser(),y=null!=t?t.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),y,z)}}catch(B){}}};
+DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var c=new mxCodec(mxUtils.createXmlDocument()),d=c.document.createElement("mxfile");if(null!=a)for(var b=0;b<a.length;b++){var f=c.encode(new mxGraphModel(a[b].root));"1"!=urlParams.dev&&(f=this.ui.anonymizeNode(f,!0));f.setAttribute("id",a[b].getId());a[b].viewState&&this.ui.editor.graph.saveViewState(a[b].viewState,f,!0);d.appendChild(f)}return mxUtils.getPrettyXml(d)};
DrawioFile.prototype.compressReportData=function(a,c,d){c=null!=c?c:1E4;null!=d&&null!=a&&a.length>d?a=a.substring(0,d)+"[...]":null!=a&&a.length>c&&(a=Graph.compress(a)+"\n");return a};
-DrawioFile.prototype.checksumError=function(a,c,d,b,e){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=c)for(a=0;a<c.length;a++)this.ui.anonymizePatch(c[a]);var g=mxUtils.bind(this,function(a){var b=this.compressReportData(JSON.stringify(c,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
-25E3):"n/a";this.sendErrorReport("Checksum Error in "+e+" "+this.getHash(),(null!=d?d:"")+"\n\nPatches:\n"+b+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==b?g(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==b?g(a):g(null)}),function(){})}else{var k=this.getCurrentUser(),l=null!=k?k.id:"unknown";EditorUi.logError("Checksum Error in "+e+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+l+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
-try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:e,label:"user_"+l+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(n){}}}catch(n){}};
-DrawioFile.prototype.sendErrorReport=function(a,c,d,b){try{var e=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),g=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),k=this.getCurrentUser(),l=null!=k?this.ui.hashValue(k.id):"unknown",n=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",q=this.getTitle(),f=q.lastIndexOf("."),k="xml";0<f&&(k=q.substring(f));var m=null!=d?d.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
+DrawioFile.prototype.checksumError=function(a,c,d,b,f){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=c)for(a=0;a<c.length;a++)this.ui.anonymizePatch(c[a]);var g=mxUtils.bind(this,function(a){var b=this.compressReportData(JSON.stringify(c,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
+25E3):"n/a";this.sendErrorReport("Checksum Error in "+f+" "+this.getHash(),(null!=d?d:"")+"\n\nPatches:\n"+b+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==b?g(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==b?g(a):g(null)}),function(){})}else{var k=this.getCurrentUser(),l=null!=k?k.id:"unknown";EditorUi.logError("Checksum Error in "+f+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+l+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
+try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:f,label:"user_"+l+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(n){}}}catch(n){}};
+DrawioFile.prototype.sendErrorReport=function(a,c,d,b){try{var f=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),g=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),k=this.getCurrentUser(),l=null!=k?this.ui.hashValue(k.id):"unknown",n=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",q=this.getTitle(),e=q.lastIndexOf("."),k="xml";0<e&&(k=q.substring(e));var m=null!=d?d.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
":\n\nBrowser="+navigator.userAgent+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+k+")\nUser="+l+n+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=c?"\n\n"+c:"")+
-(null!=d?"\n\nError: "+d.message:"")+"\n\nStack:\n"+m+"\n\nShadow:\n"+e+"\n\nData:\n"+g,b)}catch(p){}};
-DrawioFile.prototype.reloadFile=function(a,c){try{this.ui.spinner.stop();var d=mxUtils.bind(this,function(){this.stats.fileReloaded++;this.reportEnabled=!1;var b=this.ui.editor.graph.getViewState(),c=this.ui.editor.graph.getSelectionCells(),d=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(d,b,c);null!=this.backupPatch&&this.patch([this.backupPatch]);var e=this.ui.getCurrentFile();null!=e&&(e.stats=
+(null!=d?"\n\nError: "+d.message:"")+"\n\nStack:\n"+m+"\n\nShadow:\n"+f+"\n\nData:\n"+g,b)}catch(p){}};
+DrawioFile.prototype.reloadFile=function(a,c){try{this.ui.spinner.stop();var d=mxUtils.bind(this,function(){this.stats.fileReloaded++;this.reportEnabled=!1;var b=this.ui.editor.graph.getViewState(),d=this.ui.editor.graph.getSelectionCells(),c=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(c,b,d);null!=this.backupPatch&&this.patch([this.backupPatch]);var f=this.ui.getCurrentFile();null!=f&&(f.stats=
this.stats);null!=a&&a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),d,mxResources.get("cancel"),mxResources.get("discardChanges")):d()}catch(b){null!=c&&c(b)}};DrawioFile.prototype.copyFile=function(a,c){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
DrawioFile.prototype.ignorePatches=function(a){for(var c=!0,d=0;d<a.length&&c;d++)c=c&&0==Object.keys(a[d]).length;return c};
-DrawioFile.prototype.patch=function(a,c){var d=this.ui.editor.undoManager,b=d.history.slice(),e=d.indexOfNextAdd,g=this.ui.editor.graph;g.container.style.visibility="hidden";var k=this.changeListenerEnabled;this.changeListenerEnabled=!1;var l=g.foldingEnabled,n=g.mathEnabled,q=g.cellRenderer.redraw;g.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());q.apply(this,arguments)};g.model.beginUpdate();try{for(var f=
-0;f<a.length;f++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[f],!0,c,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{g.container.style.visibility="";g.model.endUpdate();g.cellRenderer.redraw=q;this.changeListenerEnabled=k;d.history=b;d.indexOfNextAdd=e;d.fireEvent(new mxEventObject(mxEvent.CLEAR));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)n!=
+DrawioFile.prototype.patch=function(a,c){var d=this.ui.editor.undoManager,b=d.history.slice(),f=d.indexOfNextAdd,g=this.ui.editor.graph;g.container.style.visibility="hidden";var k=this.changeListenerEnabled;this.changeListenerEnabled=!1;var l=g.foldingEnabled,n=g.mathEnabled,q=g.cellRenderer.redraw;g.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());q.apply(this,arguments)};g.model.beginUpdate();try{for(var e=
+0;e<a.length;e++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[e],!0,c,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{g.container.style.visibility="";g.model.endUpdate();g.cellRenderer.redraw=q;this.changeListenerEnabled=k;d.history=b;d.indexOfNextAdd=f;d.fireEvent(new mxEventObject(mxEvent.CLEAR));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)n!=
g.mathEnabled?(this.ui.editor.updateGraphComponents(),g.refresh()):(l!=g.foldingEnabled?g.view.revalidate():g.view.validate(),g.sizeDidChange());this.ui.updateTabContainer()}};
-DrawioFile.prototype.save=function(a,c,d,b,e,g){try{if(this.isEditable())if(!e&&this.invalidChecksum)if(null!=d)d({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=c&&c();else if(null!=d)d({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(k){if(null!=d)d(k);else throw k;}};
+DrawioFile.prototype.save=function(a,c,d,b,f,g){try{if(this.isEditable())if(!f&&this.invalidChecksum)if(null!=d)d({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=c&&c();else if(null!=d)d({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(k){if(null!=d)d(k);else throw k;}};
DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed()))};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var a=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=a?"false"!=a:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(a,c,d){};DrawioFile.prototype.saveFile=function(a,c,d,b){};
DrawioFile.prototype.getPublicUrl=function(a){a(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,c,d){};
DrawioFile.prototype.isMovable=function(){return!1};DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(a,c,d){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};
@@ -7941,348 +7945,348 @@ DrawioFile.prototype.showRefreshDialog=function(a,c,d){null==d&&(d=mxResources.g
c)}),null,mxResources.get("synchronize"),mxUtils.bind(this,function(){this.reloadFile(a,c)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150))};
DrawioFile.prototype.showCopyDialog=function(a,c,d){this.invalidChecksum=this.inConflictState=!1;this.addUnsavedStatus();this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwriteDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(a,c)}),null,mxResources.get("overwrite"),d,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150)};
DrawioFile.prototype.showConflictDialog=function(a,c){this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedSyncDialog"),mxResources.get("overwrite"),a,null,mxResources.get("synchronize"),c,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog();this.handleFileError(null,!1)}),340,150)};
-DrawioFile.prototype.redirectToNewApp=function(a,c){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var d=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),b=mxResources.get("redirectToNewApp");null!=c&&(b+=" ("+c+")");var e=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==d?window.location.reload():
-window.location.href=d});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(b,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(b,e,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
-e)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))};
+DrawioFile.prototype.redirectToNewApp=function(a,c){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var d=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),b=mxResources.get("redirectToNewApp");null!=c&&(b+=" ("+c+")");var f=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==d?window.location.reload():
+window.location.href=d});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(b,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),f,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(b,f,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
+f)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))};
DrawioFile.prototype.handleFileError=function(a,c){this.ui.spinner.stop();if(this.ui.getCurrentFile()==this)if(this.inConflictState)this.handleConflictError(a,c);else if(this.isModified()&&this.addUnsavedStatus(a),c)this.ui.handleError(a,null!=a?mxResources.get("errorSavingFile"):null);else if(!this.isModified()){var d=null!=a?null!=a.error?a.error.message:a.message:null;null!=d&&60<d.length&&(d=d.substring(0,60)+"...");this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+
mxUtils.htmlEntities(mxResources.get("error"))+(null!=d?" ("+mxUtils.htmlEntities(d)+")":"")+"</div>")}};
-DrawioFile.prototype.handleConflictError=function(a,c){var d=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),b=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),e=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("saving"))&&(this.ui.editor.setStatus(""),this.save(!0,d,b,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),g=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("updatingDocument"))&&
-this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get("saving"))&&this.save(!0,d,b,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),b)});"none"==DrawioFile.SYNC?this.showCopyDialog(d,b,e):this.invalidChecksum?this.showRefreshDialog(d,b,this.getErrorMessage(a)):c?this.showConflictDialog(e,g):this.addConflictStatus(mxUtils.bind(this,function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument")));
+DrawioFile.prototype.handleConflictError=function(a,c){var d=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),b=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),f=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("saving"))&&(this.ui.editor.setStatus(""),this.save(!0,d,b,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),g=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("updatingDocument"))&&
+this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get("saving"))&&this.save(!0,d,b,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),b)});"none"==DrawioFile.SYNC?this.showCopyDialog(d,b,f):this.invalidChecksum?this.showRefreshDialog(d,b,this.getErrorMessage(a)):c?this.showConflictDialog(f,g):this.addConflictStatus(mxUtils.bind(this,function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument")));
this.synchronizeFile(d,b)}),this.getErrorMessage(a))};DrawioFile.prototype.getErrorMessage=function(a){return null!=a?null!=a.error?a.error.message:a.message:null};DrawioFile.prototype.isOverdue=function(){return null!=this.ageStart&&Date.now()-this.ageStart.getTime()>=this.ui.warnInterval};
DrawioFile.prototype.fileChanged=function(){this.lastChanged=new Date;this.setModified(!0);this.isAutosave()?(this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.ui.scheduleSanityCheck(),null==this.ageStart&&(this.ageStart=new Date),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){this.ui.stopSanityCheck();null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart=
this.lastChanged)}),mxUtils.bind(this,function(a){this.handleFileError(a)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus())};
-DrawioFile.prototype.fileSaved=function(a,c,d,b){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync?(this.shadowData=a,this.shadowPages=null,null!=d&&d()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(a).documentElement),c,d,b,a)}catch(k){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=b&&b(k);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,k);else{var e=
-this.getCurrentUser(),g=null!=e?e.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),g,k)}}catch(l){}}};
-DrawioFile.prototype.autosave=function(a,c,d,b){null==this.lastAutosave&&(this.lastAutosave=Date.now());a=Date.now()-this.lastAutosave<c?a:0;this.clearAutosave();var e=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==e&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=d&&d(a)}),mxUtils.bind(this,
-function(a){null!=b&&b(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=d&&d(null)}),a);this.autosaveThread=e};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};
+DrawioFile.prototype.fileSaved=function(a,c,d,b){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync?(this.shadowData=a,this.shadowPages=null,null!=d&&d()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(a).documentElement),c,d,b,a)}catch(k){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=b&&b(k);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,k);else{var f=
+this.getCurrentUser(),g=null!=f?f.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),g,k)}}catch(l){}}};
+DrawioFile.prototype.autosave=function(a,c,d,b){null==this.lastAutosave&&(this.lastAutosave=Date.now());a=Date.now()-this.lastAutosave<c?a:0;this.clearAutosave();var f=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==f&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=d&&d(a)}),mxUtils.bind(this,
+function(a){null!=b&&b(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=d&&d(null)}),a);this.autosaveThread=f};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};
DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};
DrawioFile.prototype.close=function(a){this.updateFileData();this.stats.closed++;this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,c){if(null!=a&&null!=c){var d=a.lastIndexOf("."),b=0<d?a.substring(d):"",d=c.lastIndexOf(".");return b===(0<d?c.substring(d):"")}return a==c};
DrawioFile.prototype.removeListeners=function(){null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};DrawioFile.prototype.destroy=function(){this.stats.destroyed++;this.clearAutosave();this.removeListeners();null!=this.sync&&(this.sync.destroy(),this.sync=null)};DrawioFile.prototype.commentsSupported=function(){return!1};
DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(a,c){a([])};DrawioFile.prototype.addComment=function(a,c,d){c(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(a,c){return new DrawioComment(this,null,a,Date.now(),Date.now(),!1,c)};LocalFile=function(a,c,d,b){DrawioFile.call(this,a,c);this.title=d;this.mode=b?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,c,d){this.saveAs(this.title,c,d)};LocalFile.prototype.saveAs=function(a,c,d){this.saveFile(a,!1,c,d)};
-LocalFile.prototype.saveFile=function(a,c,d,b){this.title=a;this.updateFileData();c=this.getData();var e=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),g=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,e?"image/png":"text/xml",e);else if(b.length<MAX_REQUEST_SIZE){var c=a.lastIndexOf("."),c=0<c?a.substring(c+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+c+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
-(e?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=d&&d()});e?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){g(a)}),b,this.ui.getCurrentFile()!=this?this.getData():null):g(c)};LocalFile.prototype.rename=function(a,c,d){this.title=a;this.descriptorChanged();null!=c&&c()};
+LocalFile.prototype.saveFile=function(a,c,d,b){this.title=a;this.updateFileData();c=this.getData();var f=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),g=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,f?"image/png":"text/xml",f);else if(b.length<MAX_REQUEST_SIZE){var c=a.lastIndexOf("."),c=0<c?a.substring(c+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+c+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
+(f?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=d&&d()});f?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){g(a)}),b,this.ui.getCurrentFile()!=this?this.getData():null):g(c)};LocalFile.prototype.rename=function(a,c,d){this.title=a;this.descriptorChanged();null!=c&&c()};
LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};LocalLibrary=function(a,c,d){LocalFile.call(this,a,c,d)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(a,c,d){this.saveFile(a,!1,c,d)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(a,c,d){DrawioFile.call(this,a,c);this.title=d};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title};
StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.save=function(a,c,d){this.saveAs(this.getTitle(),c,d)};StorageFile.prototype.saveAs=function(a,c,d){DrawioFile.prototype.save.apply(this,arguments);this.saveFile(a,!1,c,d)};
-StorageFile.prototype.saveFile=function(a,c,d,b){if(this.isEditable()){var e=mxUtils.bind(this,function(){this.isRenamable()&&(this.title=a);try{this.ui.setLocalData(this.title,this.getData(),mxUtils.bind(this,function(){this.setModified(!1);this.contentChanged();null!=d&&d()}))}catch(g){null!=b&&b(g)}});this.isRenamable()&&"."==a.charAt(0)&&null!=b?b({message:mxResources.get("invalidName")}):this.ui.getLocalData(a,mxUtils.bind(this,function(c){this.isRenamable()&&this.getTitle()!=a&&null!=c?this.ui.confirm(mxResources.get("replaceIt",
-[a]),e,b):e()}))}else null!=d&&d()};StorageFile.prototype.rename=function(a,c,d){var b=this.getTitle();b!=a?this.ui.getLocalData(a,mxUtils.bind(this,function(e){var g=mxUtils.bind(this,function(){this.title=a;this.hasSameExtension(b,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(b,c)}),d)});null!=e?this.ui.confirm(mxResources.get("replaceIt",[a]),g,d):g()})):c()};
+StorageFile.prototype.saveFile=function(a,c,d,b){if(this.isEditable()){var f=mxUtils.bind(this,function(){this.isRenamable()&&(this.title=a);try{this.ui.setLocalData(this.title,this.getData(),mxUtils.bind(this,function(){this.setModified(!1);this.contentChanged();null!=d&&d()}))}catch(g){null!=b&&b(g)}});this.isRenamable()&&"."==a.charAt(0)&&null!=b?b({message:mxResources.get("invalidName")}):this.ui.getLocalData(a,mxUtils.bind(this,function(c){this.isRenamable()&&this.getTitle()!=a&&null!=c?this.ui.confirm(mxResources.get("replaceIt",
+[a]),f,b):f()}))}else null!=d&&d()};StorageFile.prototype.rename=function(a,c,d){var b=this.getTitle();b!=a?this.ui.getLocalData(a,mxUtils.bind(this,function(f){var g=mxUtils.bind(this,function(){this.title=a;this.hasSameExtension(b,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(b,c)}),d)});null!=f?this.ui.confirm(mxResources.get("replaceIt",[a]),g,d):g()})):c()};
StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,arguments);this.saveFile(this.getTitle())};StorageFile.prototype.getLatestVersion=function(a,c){this.ui.getLocalData(this.title,mxUtils.bind(this,function(c){a(new StorageFile(this.ui,c,this.title))}))};StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this,arguments);null!=this.storageListener&&(mxEvent.removeListener(window,"storage",this.storageListener),this.storageListener=null)};StorageLibrary=function(a,c,d){StorageFile.call(this,a,c,d)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!0};StorageLibrary.prototype.saveAs=function(a,c,d){this.saveFile(a,!1,c,d)};StorageLibrary.prototype.getHash=function(){return"L"+encodeURIComponent(this.title)};StorageLibrary.prototype.getTitle=function(){return".scratchpad"==this.title?mxResources.get("scratchpad"):this.title};
StorageLibrary.prototype.isRenamable=function(a,c,d){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};RemoteFile=function(a,c,d){DrawioFile.call(this,a,c);this.title=d;this.mode=null};mxUtils.extend(RemoteFile,DrawioFile);RemoteFile.prototype.isAutosave=function(){return!1};RemoteFile.prototype.getMode=function(){return this.mode};RemoteFile.prototype.getTitle=function(){return this.title};RemoteFile.prototype.isRenamable=function(){return!1};RemoteFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};RemoteLibrary=function(a,c,d){RemoteFile.call(this,a,c,d.title);this.libObj=d};mxUtils.extend(RemoteLibrary,LocalFile);RemoteLibrary.prototype.getHash=function(){return"R"+encodeURIComponent(JSON.stringify([this.libObj.id,this.libObj.title,this.libObj.downloadUrl]))};RemoteLibrary.prototype.isEditable=function(){return!1};RemoteLibrary.prototype.isRenamable=function(){return!1};RemoteLibrary.prototype.isAutosave=function(){return!1};RemoteLibrary.prototype.save=function(a,c,d){};
RemoteLibrary.prototype.saveAs=function(a,c,d){};RemoteLibrary.prototype.updateFileData=function(){};RemoteLibrary.prototype.open=function(){};UrlLibrary=function(a,c,d){StorageFile.call(this,a,c,d);a=d;c=a.lastIndexOf("/");0<=c&&(a=a.substring(c+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,c,d){return!1};UrlLibrary.prototype.saveAs=function(a,c,d){};UrlLibrary.prototype.open=function(){};/*
mxClient.IS_IOS || */
-var StorageDialog=function(a,c,d){function b(b,p,t,e,A,g){function y(){mxEvent.addListener(k,"click",null!=g?g:function(){t!=App.MODE_GOOGLE||a.isDriveDomain()?t==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(t,n.checked);c()})):t==App.MODE_ONEDRIVE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.oneDrive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(t,n.checked);
-c()})):(a.setMode(t,n.checked),c()):window.location.hostname=DriveClient.prototype.newAppHostname})}++q>d&&(mxUtils.br(f),q=0);var k=document.createElement("a");k.style.overflow="hidden";k.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";k.className="geBaseButton";k.style.boxSizing="border-box";k.style.fontSize="11px";k.style.position="relative";k.style.margin="4px";k.style.marginTop="2px";k.style.padding="8px 10px 12px 10px";k.style.width="88px";k.style.height=StorageDialog.extended?"50px":
+var StorageDialog=function(a,c,d){function b(b,p,t,f,A,g){function x(){mxEvent.addListener(k,"click",null!=g?g:function(){t!=App.MODE_GOOGLE||a.isDriveDomain()?t==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(t,n.checked);c()})):t==App.MODE_ONEDRIVE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.oneDrive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(t,n.checked);
+c()})):(a.setMode(t,n.checked),c()):window.location.hostname=DriveClient.prototype.newAppHostname})}++q>d&&(mxUtils.br(e),q=0);var k=document.createElement("a");k.style.overflow="hidden";k.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";k.className="geBaseButton";k.style.boxSizing="border-box";k.style.fontSize="11px";k.style.position="relative";k.style.margin="4px";k.style.marginTop="2px";k.style.padding="8px 10px 12px 10px";k.style.width="88px";k.style.height=StorageDialog.extended?"50px":
"100px";k.style.whiteSpace="nowrap";k.setAttribute("title",p);mxClient.IS_QUIRKS&&(k.style.cssFloat="left",k.style.zoom="1");var u=document.createElement("div");u.style.textOverflow="ellipsis";u.style.overflow="hidden";if(null!=b){var D=document.createElement("img");D.setAttribute("src",b);D.setAttribute("border","0");D.setAttribute("align","absmiddle");D.style.width=StorageDialog.extended?"24px":"60px";D.style.height=StorageDialog.extended?"24px":"60px";D.style.paddingBottom=StorageDialog.extended?
"4px":"6px";k.appendChild(D)}else u.style.paddingTop="5px",u.style.whiteSpace="normal",mxClient.IS_IOS?(k.style.padding="0px 10px 20px 10px",k.style.top="6px"):mxClient.IS_FF&&(u.style.paddingTop="0px",u.style.marginTop="-2px");StorageDialog.extended&&(k.style.paddingTop="4px",k.style.marginBottom="0px",u.display="inline-block",2==d&&(D.style.width="38px",D.style.height="38px",k.style.width="80px",k.style.height="68px"));k.appendChild(u);mxUtils.write(u,p);if(null!=A)for(b=0;b<A.length;b++)mxUtils.br(u),
-mxUtils.write(u,A[b]);if(null!=e&&null==a[e]){D.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(k);var l=window.setTimeout(function(){null==a[e]&&(v.stop(),k.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(b,c){null!=a[e]&&c.getProperty("client")==a[e]&&(window.clearTimeout(l),mxUtils.setOpacity(u,
-100),D.style.visibility="",v.stop(),y(),"drive"==e&&null!=m.parentNode&&m.parentNode.removeChild(m))}))}else y();f.appendChild(k)}d=null!=d?d:2;var e=document.createElement("div");e.style.textAlign="center";e.style.whiteSpace="nowrap";e.style.paddingTop="0px";e.style.paddingBottom="20px";var g=a.addLanguageMenu(e,!0);null!=g&&(g.style.bottom=parseInt("28px")-3+"px");if(!a.isOffline()&&1<a.getServiceCount()){g=document.createElement("a");g.setAttribute("href","https://about.draw.io/support/");g.setAttribute("title",
+mxUtils.write(u,A[b]);if(null!=f&&null==a[f]){D.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(k);var l=window.setTimeout(function(){null==a[f]&&(v.stop(),k.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(b,e){null!=a[f]&&e.getProperty("client")==a[f]&&(window.clearTimeout(l),mxUtils.setOpacity(u,
+100),D.style.visibility="",v.stop(),x(),"drive"==f&&null!=m.parentNode&&m.parentNode.removeChild(m))}))}else x();e.appendChild(k)}d=null!=d?d:2;var f=document.createElement("div");f.style.textAlign="center";f.style.whiteSpace="nowrap";f.style.paddingTop="0px";f.style.paddingBottom="20px";var g=a.addLanguageMenu(f,!0);null!=g&&(g.style.bottom=parseInt("28px")-3+"px");if(!a.isOffline()&&1<a.getServiceCount()){g=document.createElement("a");g.setAttribute("href","https://about.draw.io/support/");g.setAttribute("title",
mxResources.get("help"));g.setAttribute("target","_blank");g.style.position="absolute";g.style.userSelect="none";g.style.textDecoration="none";g.style.cursor="pointer";g.style.fontSize="12px";g.style.bottom="28px";g.style.left="26px";g.style.color="gray";var k=document.createElement("img");mxUtils.setOpacity(k,50);k.style.height="16px";k.style.width="16px";k.setAttribute("border","0");k.setAttribute("valign","bottom");k.setAttribute("src",Editor.helpImage);k.style.marginRight="2px";g.appendChild(k);
-mxUtils.write(g,mxResources.get("help"));e.appendChild(g)}var l=document.createElement("div");l.style.position="absolute";l.style.cursor="pointer";l.style.fontSize="12px";l.style.bottom="28px";l.style.color="gray";l.style.userSelect="none";mxUtils.write(l,mxResources.get("decideLater"));mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,0)");l.style.left="50%";a.isOfflineApp()&&(l.style.bottom="28px");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)l.style.marginLeft=
--Math.round(l.clientWidth/2)+"px"};e.appendChild(l);mxEvent.addListener(l,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=b});g=document.createElement("div");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");g.style.border="1px solid #d3d3d3";g.style.borderWidth="1px 0px 1px 0px";g.style.padding="12px 0px 12px 0px";var n=document.createElement("input");n.setAttribute("type",
-"checkbox");n.setAttribute("checked","checked");n.defaultChecked=!0;var q=0,f=document.createElement("div");f.style.paddingTop="2px";g.appendChild(f);var m=document.createElement("p"),k=document.createElement("p");k.style.fontSize="16pt";k.style.padding="0px";k.style.paddingTop="4px";k.style.paddingBottom="16px";k.style.margin="0px";k.style.color="gray";mxUtils.write(k,mxResources.get("saveDiagramsTo")+":");e.appendChild(k);var p=function(){q=0;"function"===typeof window.DriveClient&&b(IMAGE_PATH+
+mxUtils.write(g,mxResources.get("help"));f.appendChild(g)}var l=document.createElement("div");l.style.position="absolute";l.style.cursor="pointer";l.style.fontSize="12px";l.style.bottom="28px";l.style.color="gray";l.style.userSelect="none";mxUtils.write(l,mxResources.get("decideLater"));mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,0)");l.style.left="50%";a.isOfflineApp()&&(l.style.bottom="28px");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)l.style.marginLeft=
+-Math.round(l.clientWidth/2)+"px"};f.appendChild(l);mxEvent.addListener(l,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=b});g=document.createElement("div");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");g.style.border="1px solid #d3d3d3";g.style.borderWidth="1px 0px 1px 0px";g.style.padding="12px 0px 12px 0px";var n=document.createElement("input");n.setAttribute("type",
+"checkbox");n.setAttribute("checked","checked");n.defaultChecked=!0;var q=0,e=document.createElement("div");e.style.paddingTop="2px";g.appendChild(e);var m=document.createElement("p"),k=document.createElement("p");k.style.fontSize="16pt";k.style.padding="0px";k.style.paddingTop="4px";k.style.paddingBottom="16px";k.style.margin="0px";k.style.color="gray";mxUtils.write(k,mxResources.get("saveDiagramsTo")+":");f.appendChild(k);var p=function(){q=0;"function"===typeof window.DriveClient&&b(IMAGE_PATH+
"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");"function"===typeof window.OneDriveClient&&b(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");b(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||b(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);StorageDialog.extended&&("function"===typeof window.DropboxClient&&
-b(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox"),null!=a.gitHub&&b(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub"),null!=a.gitLab&&b(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab"))};e.appendChild(g);p();k=document.createElement("p");k.style.marginTop="8px";k.style.marginBottom="6px";var u=document.createElement("div");u.style.marginBottom="10px";if(!a.isOfflineApp()){var v=document.createElement("a");
-v.style.color="gray";v.style.fontSize="12px";v.style.cursor="pointer";v.style.userSelect="none";mxUtils.write(v,(StorageDialog.extended?mxResources.get("showLess"):mxResources.get("showMore"))+"...");u.appendChild(v);k.appendChild(u);mxEvent.addListener(v,"click",function(a){f.innerHTML="";v.innerHTML="";StorageDialog.extended=!StorageDialog.extended;p();mxUtils.write(v,(StorageDialog.extended?mxResources.get("showLess"):mxResources.get("showMore"))+"...");mxEvent.consume(a)})}k.appendChild(n);var t=
-document.createElement("span");t.style.color="gray";t.style.fontSize="12px";t.style.userSelect="none";mxUtils.write(t," "+mxResources.get("rememberThisSetting"));k.appendChild(t);mxUtils.br(k);u=a.getRecent();if(!a.isOfflineApp()&&null!=u&&0<u.length){var z=document.createElement("select");z.style.marginTop="8px";z.style.maxWidth="170px";var x=document.createElement("option");x.setAttribute("value","");x.setAttribute("selected","selected");x.style.textAlign="center";mxUtils.write(x,mxResources.get("openRecent")+
-"...");z.appendChild(x);for(x=0;x<u.length;x++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var c=document.createElement("option");c.setAttribute("value",a.id);mxUtils.write(c,a.title+" ("+mxResources.get(b)+")");z.appendChild(c)})(u[x]);k.appendChild(z);mxEvent.addListener(z,"change",function(b){""!=z.value&&a.loadFile(z.value)})}else k.style.marginTop="20px",g.style.padding="30px 0px 26px 0px";Graph.fileSupport&&(u=document.createElement("div"),
-u.style.marginBottom="10px",u.style.padding="18px 0px 6px 0px",x=document.createElement("a"),x.style.cursor="pointer",x.style.fontSize="12px",x.style.color="gray",x.style.userSelect="none",mxUtils.write(x,mxResources.get("import")+": "+mxResources.get("gliffy")+", "+mxResources.get("formatVssx")+", "+mxResources.get("formatVsdx")+", "+mxResources.get("lucidchart")+"..."),mxEvent.addListener(x,"click",function(){if(null==a.storageFileInputElt){var b=document.createElement("input");b.setAttribute("type",
-"file");mxEvent.addListener(b,"change",function(){null!=b.files&&(a.hideDialog(),a.openFiles(b.files,!0),b.type="",b.type="file",b.value="")});b.style.display="none";document.body.appendChild(b);a.storageFileInputElt=b}a.storageFileInputElt.click()}),u.appendChild(x),k.appendChild(u),g.style.paddingBottom="4px");g.appendChild(k);mxEvent.addListener(t,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=
-document.documentMode)&&window.setTimeout(function(){null==a.drive&&(m.style.padding="8px",m.style.fontSize="9pt",m.style.marginTop="-14px",m.innerHTML='<a style="background-color:#dcdcdc;padding:5px;color:black;text-decoration:none;" href="https://desk.draw.io/a/solutions/articles/16000074659" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",e.appendChild(m))},5E3);this.container=e};
+b(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox"),null!=a.gitHub&&b(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub"),null!=a.gitLab&&b(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab"))};f.appendChild(g);p();k=document.createElement("p");k.style.marginTop="8px";k.style.marginBottom="6px";var u=document.createElement("div");u.style.marginBottom="10px";if(!a.isOfflineApp()){var v=document.createElement("a");
+v.style.color="gray";v.style.fontSize="12px";v.style.cursor="pointer";v.style.userSelect="none";mxUtils.write(v,(StorageDialog.extended?mxResources.get("showLess"):mxResources.get("showMore"))+"...");u.appendChild(v);k.appendChild(u);mxEvent.addListener(v,"click",function(a){e.innerHTML="";v.innerHTML="";StorageDialog.extended=!StorageDialog.extended;p();mxUtils.write(v,(StorageDialog.extended?mxResources.get("showLess"):mxResources.get("showMore"))+"...");mxEvent.consume(a)})}k.appendChild(n);var t=
+document.createElement("span");t.style.color="gray";t.style.fontSize="12px";t.style.userSelect="none";mxUtils.write(t," "+mxResources.get("rememberThisSetting"));k.appendChild(t);mxUtils.br(k);u=a.getRecent();if(!a.isOfflineApp()&&null!=u&&0<u.length){var y=document.createElement("select");y.style.marginTop="8px";y.style.maxWidth="170px";var z=document.createElement("option");z.setAttribute("value","");z.setAttribute("selected","selected");z.style.textAlign="center";mxUtils.write(z,mxResources.get("openRecent")+
+"...");y.appendChild(z);for(z=0;z<u.length;z++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var e=document.createElement("option");e.setAttribute("value",a.id);mxUtils.write(e,a.title+" ("+mxResources.get(b)+")");y.appendChild(e)})(u[z]);k.appendChild(y);mxEvent.addListener(y,"change",function(b){""!=y.value&&a.loadFile(y.value)})}else k.style.marginTop="20px",g.style.padding="30px 0px 26px 0px";Graph.fileSupport&&(u=document.createElement("div"),
+u.style.marginBottom="10px",u.style.padding="18px 0px 6px 0px",z=document.createElement("a"),z.style.cursor="pointer",z.style.fontSize="12px",z.style.color="gray",z.style.userSelect="none",mxUtils.write(z,mxResources.get("import")+": "+mxResources.get("gliffy")+", "+mxResources.get("formatVssx")+", "+mxResources.get("formatVsdx")+", "+mxResources.get("lucidchart")+"..."),mxEvent.addListener(z,"click",function(){if(null==a.storageFileInputElt){var b=document.createElement("input");b.setAttribute("type",
+"file");mxEvent.addListener(b,"change",function(){null!=b.files&&(a.hideDialog(),a.openFiles(b.files,!0),b.type="",b.type="file",b.value="")});b.style.display="none";document.body.appendChild(b);a.storageFileInputElt=b}a.storageFileInputElt.click()}),u.appendChild(z),k.appendChild(u),g.style.paddingBottom="4px");g.appendChild(k);mxEvent.addListener(t,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=
+document.documentMode)&&window.setTimeout(function(){null==a.drive&&(m.style.padding="8px",m.style.fontSize="9pt",m.style.marginTop="-14px",m.innerHTML='<a style="background-color:#dcdcdc;padding:5px;color:black;text-decoration:none;" href="https://desk.draw.io/a/solutions/articles/16000074659" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",f.appendChild(m))},5E3);this.container=f};
StorageDialog.extended=!1;
var SplashDialog=function(a){var c=document.createElement("div");c.style.textAlign="center";var d=a.addLanguageMenu(c,!0);null!=d&&(d.style.bottom="19px");d=null;d=a.getServiceCount();if(!a.isOffline()&&1<d){d=document.createElement("a");d.setAttribute("href","https://about.draw.io/support/");d.setAttribute("title",mxResources.get("help"));d.setAttribute("target","_blank");d.style.position="absolute";d.style.fontSize="12px";d.style.textDecoration="none";d.style.cursor="pointer";d.style.bottom="22px";
d.style.left="26px";d.style.color="gray";var b=document.createElement("img");mxUtils.setOpacity(b,50);b.style.height="16px";b.style.width="16px";b.setAttribute("border","0");b.setAttribute("valign","bottom");b.setAttribute("src",Editor.helpImage);b.style.marginRight="2px";d.appendChild(b);mxUtils.write(d,mxResources.get("help"));c.appendChild(d)}d=document.createElement("p");d.style.fontSize="16pt";d.style.padding="0px";d.style.paddingTop="2px";d.style.margin="0px";d.style.color="gray";b=document.createElement("img");
-b.setAttribute("border","0");b.setAttribute("align","absmiddle");b.style.width="40px";b.style.height="40px";b.style.marginRight="12px";b.style.paddingBottom="4px";var e="";a.mode==App.MODE_GOOGLE?(b.src=IMAGE_PATH+"/google-drive-logo.svg",e=mxResources.get("googleDrive")):a.mode==App.MODE_DROPBOX?(b.src=IMAGE_PATH+"/dropbox-logo.svg",e=mxResources.get("dropbox")):a.mode==App.MODE_ONEDRIVE?(b.src=IMAGE_PATH+"/onedrive-logo.svg",e=mxResources.get("oneDrive")):a.mode==App.MODE_GITHUB?(b.src=IMAGE_PATH+
-"/github-logo.svg",e=mxResources.get("github")):a.mode==App.MODE_GITLAB?(b.src=IMAGE_PATH+"/gitlab-logo.svg",e=mxResources.get("gitlab")):a.mode==App.MODE_BROWSER?(b.src=IMAGE_PATH+"/osa_database.png",e=mxResources.get("browser")):(b.src=IMAGE_PATH+"/osa_drive-harddisk.png",e=mxResources.get("device"));var g=document.createElement("div");g.style.margin="4px 0px 0px 0px";var k=document.createElement("button");k.className="geBigButton";k.style.fontSize="18px";k.style.padding="10px";k.style.width="340px";
-mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(g.style.padding="42px 0px 56px 0px",k.style.marginBottom="12px"):(d.appendChild(b),mxUtils.write(d,e),c.appendChild(d),g.style.border="1px solid #d3d3d3",g.style.borderWidth="1px 0px 1px 0px",g.style.padding="18px 0px 24px 0px",k.style.marginBottom="8px");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");mxClient.IS_QUIRKS&&(k.style.width="340px");mxUtils.write(k,mxResources.get("createNewDiagram"));mxEvent.addListener(k,"click",
+b.setAttribute("border","0");b.setAttribute("align","absmiddle");b.style.width="40px";b.style.height="40px";b.style.marginRight="12px";b.style.paddingBottom="4px";var f="";a.mode==App.MODE_GOOGLE?(b.src=IMAGE_PATH+"/google-drive-logo.svg",f=mxResources.get("googleDrive")):a.mode==App.MODE_DROPBOX?(b.src=IMAGE_PATH+"/dropbox-logo.svg",f=mxResources.get("dropbox")):a.mode==App.MODE_ONEDRIVE?(b.src=IMAGE_PATH+"/onedrive-logo.svg",f=mxResources.get("oneDrive")):a.mode==App.MODE_GITHUB?(b.src=IMAGE_PATH+
+"/github-logo.svg",f=mxResources.get("github")):a.mode==App.MODE_GITLAB?(b.src=IMAGE_PATH+"/gitlab-logo.svg",f=mxResources.get("gitlab")):a.mode==App.MODE_BROWSER?(b.src=IMAGE_PATH+"/osa_database.png",f=mxResources.get("browser")):(b.src=IMAGE_PATH+"/osa_drive-harddisk.png",f=mxResources.get("device"));var g=document.createElement("div");g.style.margin="4px 0px 0px 0px";var k=document.createElement("button");k.className="geBigButton";k.style.fontSize="18px";k.style.padding="10px";k.style.width="340px";
+mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(g.style.padding="42px 0px 56px 0px",k.style.marginBottom="12px"):(d.appendChild(b),mxUtils.write(d,f),c.appendChild(d),g.style.border="1px solid #d3d3d3",g.style.borderWidth="1px 0px 1px 0px",g.style.padding="18px 0px 24px 0px",k.style.marginBottom="8px");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");mxClient.IS_QUIRKS&&(k.style.width="340px");mxUtils.write(k,mxResources.get("createNewDiagram"));mxEvent.addListener(k,"click",
function(){a.hideDialog();a.actions.get("new").funct()});g.appendChild(k);mxUtils.br(g);k=document.createElement("button");k.className="geBigButton";k.style.marginBottom="22px";k.style.fontSize="18px";k.style.padding="10px";k.style.width="340px";mxClient.IS_QUIRKS&&(k.style.width="340px");mxUtils.write(k,mxResources.get("openExistingDiagram"));mxEvent.addListener(k,"click",function(){a.actions.get("open").funct()});g.appendChild(k);a.mode==App.MODE_GOOGLE?mxResources.get("googleDrive"):a.mode==App.MODE_DROPBOX?
-mxResources.get("dropbox"):a.mode==App.MODE_ONEDRIVE?mxResources.get("oneDrive"):a.mode==App.MODE_GITHUB?mxResources.get("github"):a.mode==App.MODE_GITLAB?mxResources.get("gitlab"):a.mode==App.MODE_TRELLO?mxResources.get("trello"):a.mode==App.MODE_DEVICE?mxResources.get("device"):a.mode==App.MODE_BROWSER&&mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=function(b){k.style.marginBottom="24px";var c=document.createElement("a");c.setAttribute("href","javascript:void(0)");
-c.style.display="inline-block";c.style.marginTop="6px";mxUtils.write(c,mxResources.get("signOut"));k.style.marginBottom="16px";g.style.paddingBottom="18px";mxEvent.addListener(c,"click",function(){a.confirm(mxResources.get("areYouSure"),function(){b()})});g.appendChild(c)},l=null!=a.drive?a.drive.getUsersList():[];if(a.mode==App.MODE_GOOGLE&&0<l.length){d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+":");k.style.marginBottom="16px";g.style.paddingBottom=
+mxResources.get("dropbox"):a.mode==App.MODE_ONEDRIVE?mxResources.get("oneDrive"):a.mode==App.MODE_GITHUB?mxResources.get("github"):a.mode==App.MODE_GITLAB?mxResources.get("gitlab"):a.mode==App.MODE_TRELLO?mxResources.get("trello"):a.mode==App.MODE_DEVICE?mxResources.get("device"):a.mode==App.MODE_BROWSER&&mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=function(b){k.style.marginBottom="24px";var e=document.createElement("a");e.setAttribute("href","javascript:void(0)");
+e.style.display="inline-block";e.style.marginTop="6px";mxUtils.write(e,mxResources.get("signOut"));k.style.marginBottom="16px";g.style.paddingBottom="18px";mxEvent.addListener(e,"click",function(){a.confirm(mxResources.get("areYouSure"),function(){b()})});g.appendChild(e)},l=null!=a.drive?a.drive.getUsersList():[];if(a.mode==App.MODE_GOOGLE&&0<l.length){d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+":");k.style.marginBottom="16px";g.style.paddingBottom=
"18px";g.appendChild(d);var n=document.createElement("select");n.style.marginLeft="4px";n.style.width="200px";for(d=0;d<l.length;d++)b=document.createElement("option"),mxUtils.write(b,l[d].displayName),b.value=d,n.appendChild(b),b=document.createElement("option"),b.innerHTML="&nbsp;&nbsp;&nbsp;",mxUtils.write(b,"<"+l[d].email+">"),b.setAttribute("disabled","disabled"),n.appendChild(b);b=document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=l.length;n.appendChild(b);
-mxEvent.addListener(n,"change",function(){var b=n.value,c=l.length!=b;c&&a.drive.setUser(l[b]);a.drive.authorize(c,function(){a.setMode(App.MODE_GOOGLE);a.hideDialog();a.showSplash()},function(b){a.handleError(b,null,function(){a.hideDialog();a.showSplash()})},!0)});g.appendChild(n)}else a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?d(function(){a.oneDrive.logout()}):a.mode==App.MODE_GITHUB&&null!=a.gitHub?d(function(){a.gitHub.logout();a.openLink("https://www.github.com/logout")}):a.mode==App.MODE_GITLAB&&
+mxEvent.addListener(n,"change",function(){var b=n.value,e=l.length!=b;e&&a.drive.setUser(l[b]);a.drive.authorize(e,function(){a.setMode(App.MODE_GOOGLE);a.hideDialog();a.showSplash()},function(b){a.handleError(b,null,function(){a.hideDialog();a.showSplash()})},!0)});g.appendChild(n)}else a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?d(function(){a.oneDrive.logout()}):a.mode==App.MODE_GITHUB&&null!=a.gitHub?d(function(){a.gitHub.logout();a.openLink("https://www.github.com/logout")}):a.mode==App.MODE_GITLAB&&
null!=a.gitLab?d(function(){a.gitLab.logout();a.openLink(DRAWIO_GITLAB_URL+"/users/sign_out")}):a.mode==App.MODE_TRELLO&&null!=a.trello?a.trello.isAuthorized()&&d(function(){a.trello.logout()}):a.mode==App.MODE_DROPBOX&&null!=a.dropbox&&d(function(){a.dropbox.logout();a.openLink("https://www.dropbox.com/logout")});mxUtils.br(g);d=document.createElement("a");d.setAttribute("href","javascript:void(0)");d.style.display="inline-block";d.style.marginTop="8px";mxUtils.write(d,mxResources.get("changeStorage"));
-mxEvent.addListener(d,"click",function(){a.hideDialog(!1);a.setMode(null);a.clearMode();a.showSplash(!0)});g.appendChild(d)}c.appendChild(g);this.container=c},EmbedDialog=function(a,c,d,b,e,g){b=document.createElement("div");var k=/^https?:\/\//.test(c)||/^mailto:\/\//.test(c);null!=g?mxUtils.write(b,g):mxUtils.write(b,mxResources.get(5E5>c.length?k?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(b);g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.right="30px";
+mxEvent.addListener(d,"click",function(){a.hideDialog(!1);a.setMode(null);a.clearMode();a.showSplash(!0)});g.appendChild(d)}c.appendChild(g);this.container=c},EmbedDialog=function(a,c,d,b,f,g){b=document.createElement("div");var k=/^https?:\/\//.test(c)||/^mailto:\/\//.test(c);null!=g?mxUtils.write(b,g):mxUtils.write(b,mxResources.get(5E5>c.length?k?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(b);g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.right="30px";
g.style.color="gray";mxUtils.write(g,a.formatFileSize(c.length));b.appendChild(g);var l=document.createElement("textarea");l.setAttribute("autocomplete","off");l.setAttribute("autocorrect","off");l.setAttribute("autocapitalize","off");l.setAttribute("spellcheck","false");l.style.fontFamily="monospace";l.style.wordBreak="break-all";l.style.marginTop="10px";l.style.resize="none";l.style.height="150px";l.style.width="440px";l.style.border="1px solid gray";l.value=mxResources.get("updatingDocument");
b.appendChild(l);mxUtils.br(b);this.init=function(){window.setTimeout(function(){5E5>c.length?(l.value=c,l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)):(l.setAttribute("readonly","true"),l.value=c.substring(0,340)+"... ("+mxResources.get("drawingTooLarge")+")")},0)};g=document.createElement("div");g.style.position="absolute";g.style.bottom="36px";g.style.right="32px";var n=null;!EmbedDialog.showPreviewOption||
-mxClient.IS_CHROMEAPP&&!k||navigator.standalone||!(k||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(n=mxUtils.button(mxResources.get(5E5>c.length?"preview":"openInNewWindow"),function(){var b=5E5>c.length?l.value:c;if(null!=e)e(b);else if(k)try{var f=a.openLink(b);null!=f&&(null==d||0<d)&&window.setTimeout(mxUtils.bind(this,function(){null!=f&&null!=f.location.href&&f.location.href.substring(0,8)!=b.substring(0,8)&&(f.close(),a.handleError({message:mxResources.get("drawingTooLarge")}))}),
+mxClient.IS_CHROMEAPP&&!k||navigator.standalone||!(k||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(n=mxUtils.button(mxResources.get(5E5>c.length?"preview":"openInNewWindow"),function(){var b=5E5>c.length?l.value:c;if(null!=f)f(b);else if(k)try{var e=a.openLink(b);null!=e&&(null==d||0<d)&&window.setTimeout(mxUtils.bind(this,function(){null!=e&&null!=e.location.href&&e.location.href.substring(0,8)!=b.substring(0,8)&&(e.close(),a.handleError({message:mxResources.get("drawingTooLarge")}))}),
d||500)}catch(v){a.handleError({message:v.message||mxResources.get("drawingTooLarge")})}else{var g=window.open(),g=null!=g?g.document:null;null!=g?(g.writeln("<html><head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head><body>'+c+"</body></html>"),g.close()):a.handleError({message:mxResources.get("errorUpdatingPreview")})}}),n.className="geBtn",g.appendChild(n));if(!k||7500<c.length){var q=mxUtils.button(mxResources.get("download"),function(){a.hideDialog();
-a.saveData("embed.txt","txt",c,"text/plain")});q.className="geBtn";g.appendChild(q)}if(k&&(!a.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>c.length){var f=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(l.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}),q=document.createElement("img");q.setAttribute("src",Editor.facebookImage);q.setAttribute("width","18");q.setAttribute("height","18");q.setAttribute("border",
-"0");f.appendChild(q);f.setAttribute("title",mxResources.get("facebook")+" ("+a.formatFileSize(51200)+" max)");f.style.verticalAlign="bottom";f.style.paddingTop="4px";f.style.minWidth="46px";f.className="geBtn";g.appendChild(f)}7168>c.length&&(f=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+"&url="+encodeURIComponent(l.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}),
-q=document.createElement("img"),q.setAttribute("src",Editor.tweetImage),q.setAttribute("width","18"),q.setAttribute("height","18"),q.setAttribute("border","0"),q.style.marginBottom="5px",f.appendChild(q),f.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),f.style.verticalAlign="bottom",f.style.paddingTop="4px",f.style.minWidth="46px",f.className="geBtn",g.appendChild(f))}q=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.appendChild(q);f=mxUtils.button(mxResources.get("copy"),
-function(){l.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>c.length?mxClient.IS_SF||null!=document.documentMode?q.className="geBtn gePrimaryBtn":(g.appendChild(f),f.className="geBtn gePrimaryBtn",q.className="geBtn"):(g.appendChild(n),q.className="geBtn",n.className="geBtn gePrimaryBtn");b.appendChild(g);this.container=b};
+a.saveData("embed.txt","txt",c,"text/plain")});q.className="geBtn";g.appendChild(q)}if(k&&(!a.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>c.length){var e=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(l.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}),q=document.createElement("img");q.setAttribute("src",Editor.facebookImage);q.setAttribute("width","18");q.setAttribute("height","18");q.setAttribute("border",
+"0");e.appendChild(q);e.setAttribute("title",mxResources.get("facebook")+" ("+a.formatFileSize(51200)+" max)");e.style.verticalAlign="bottom";e.style.paddingTop="4px";e.style.minWidth="46px";e.className="geBtn";g.appendChild(e)}7168>c.length&&(e=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+"&url="+encodeURIComponent(l.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}),
+q=document.createElement("img"),q.setAttribute("src",Editor.tweetImage),q.setAttribute("width","18"),q.setAttribute("height","18"),q.setAttribute("border","0"),q.style.marginBottom="5px",e.appendChild(q),e.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),e.style.verticalAlign="bottom",e.style.paddingTop="4px",e.style.minWidth="46px",e.className="geBtn",g.appendChild(e))}q=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.appendChild(q);e=mxUtils.button(mxResources.get("copy"),
+function(){l.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>c.length?mxClient.IS_SF||null!=document.documentMode?q.className="geBtn gePrimaryBtn":(g.appendChild(e),e.className="geBtn gePrimaryBtn",q.className="geBtn"):(g.appendChild(n),q.className="geBtn",n.className="geBtn gePrimaryBtn");b.appendChild(g);this.container=b};
EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(a,c){function d(){var a=null!=A&&null!=A.getTitle()?A.getTitle():this.defaultFilename;if(y.checked&&""!=p.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(p.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<B.length&&(b+="&s="+B);""!=u.value&&"0"!=u.value&&(b+="&border="+u.value);""!=m.value&&(b+="&height="+m.value);b+="&pan="+(v.checked?"1":"0");b+="&zoom="+(t.checked?"1":"0");b+="&fit="+(H.checked?"1":"0");
-b+="&resize="+(C.checked?"1":"0");b+="&x0="+Number(f.value);b+="&y0="+n;e.mathEnabled&&(b+="&math=1");x.checked?b+="&edit=_blank":z.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));q.value=b}else A.constructor==DriveFile||A.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=p.value?b+=encodeURIComponent(mxUtils.htmlEntities(p.value))+"&type=3":(b+=A.getHash().substring(1),b=A.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=
-a&&(b+="&title="+encodeURIComponent(a)),""!=m.value&&(a=parseInt(m.value)+parseInt(f.value),b+="&height="+a),q.value=b):q.value=""}var b=document.createElement("div"),e=a.editor.graph,g=e.getGraphBounds(),k=e.view.scale,l=Math.floor(g.x/k-e.view.translate.x),n=Math.floor(g.y/k-e.view.translate.y);mxUtils.write(b,mxResources.get("googleGadget")+":");mxUtils.br(b);var q=document.createElement("input");q.setAttribute("type","text");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";
-b.appendChild(q);mxUtils.br(b);this.init=function(){q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};mxUtils.write(b,mxResources.get("top")+":");var f=document.createElement("input");f.setAttribute("type","text");f.setAttribute("size","4");f.style.marginRight="16px";f.style.marginLeft="4px";f.value=l;b.appendChild(f);mxUtils.write(b,mxResources.get("height")+":");var m=document.createElement("input");m.setAttribute("type",
+var GoogleSitesDialog=function(a,c){function d(){var a=null!=A&&null!=A.getTitle()?A.getTitle():this.defaultFilename;if(x.checked&&""!=p.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(p.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<C.length&&(b+="&s="+C);""!=u.value&&"0"!=u.value&&(b+="&border="+u.value);""!=m.value&&(b+="&height="+m.value);b+="&pan="+(v.checked?"1":"0");b+="&zoom="+(t.checked?"1":"0");b+="&fit="+(G.checked?"1":"0");
+b+="&resize="+(B.checked?"1":"0");b+="&x0="+Number(e.value);b+="&y0="+n;f.mathEnabled&&(b+="&math=1");z.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));q.value=b}else A.constructor==DriveFile||A.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=p.value?b+=encodeURIComponent(mxUtils.htmlEntities(p.value))+"&type=3":(b+=A.getHash().substring(1),b=A.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=
+a&&(b+="&title="+encodeURIComponent(a)),""!=m.value&&(a=parseInt(m.value)+parseInt(e.value),b+="&height="+a),q.value=b):q.value=""}var b=document.createElement("div"),f=a.editor.graph,g=f.getGraphBounds(),k=f.view.scale,l=Math.floor(g.x/k-f.view.translate.x),n=Math.floor(g.y/k-f.view.translate.y);mxUtils.write(b,mxResources.get("googleGadget")+":");mxUtils.br(b);var q=document.createElement("input");q.setAttribute("type","text");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";
+b.appendChild(q);mxUtils.br(b);this.init=function(){q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};mxUtils.write(b,mxResources.get("top")+":");var e=document.createElement("input");e.setAttribute("type","text");e.setAttribute("size","4");e.style.marginRight="16px";e.style.marginLeft="4px";e.value=l;b.appendChild(e);mxUtils.write(b,mxResources.get("height")+":");var m=document.createElement("input");m.setAttribute("type",
"text");m.setAttribute("size","4");m.style.marginLeft="4px";m.value=Math.ceil(g.height/k);b.appendChild(m);mxUtils.br(b);g=document.createElement("hr");g.setAttribute("size","1");g.style.marginBottom="16px";g.style.marginTop="16px";b.appendChild(g);mxUtils.write(b,mxResources.get("publicDiagramUrl")+":");mxUtils.br(b);var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","28");p.style.marginBottom="8px";p.style.marginTop="2px";p.style.width="410px";p.value=c||"";
b.appendChild(p);mxUtils.br(b);mxUtils.write(b,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.setAttribute("size","3");u.style.marginBottom="8px";u.style.marginLeft="4px";u.value="0";b.appendChild(u);mxUtils.br(b);var v=document.createElement("input");v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="16px";b.appendChild(v);mxUtils.write(b,mxResources.get("pan")+" ");var t=document.createElement("input");
-t.setAttribute("type","checkbox");t.setAttribute("checked","checked");t.defaultChecked=!0;t.style.marginLeft="8px";b.appendChild(t);mxUtils.write(b,mxResources.get("zoom")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";z.setAttribute("title",window.location.href);b.appendChild(z);mxUtils.write(b,mxResources.get("edit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft="8px";b.appendChild(x);mxUtils.write(b,
-mxResources.get("asNew")+" ");mxUtils.br(b);var C=document.createElement("input");C.setAttribute("type","checkbox");C.setAttribute("checked","checked");C.defaultChecked=!0;C.style.marginLeft="16px";b.appendChild(C);mxUtils.write(b,mxResources.get("resize")+" ");var H=document.createElement("input");H.setAttribute("type","checkbox");H.style.marginLeft="8px";b.appendChild(H);mxUtils.write(b,mxResources.get("fit")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft=
-"8px";b.appendChild(y);mxUtils.write(b,mxResources.get("embed")+" ");var B=a.getBasenames().join(";"),A=a.getCurrentFile();mxEvent.addListener(v,"change",d);mxEvent.addListener(t,"change",d);mxEvent.addListener(C,"change",d);mxEvent.addListener(H,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(f,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(p,"change",d);d();
+t.setAttribute("type","checkbox");t.setAttribute("checked","checked");t.defaultChecked=!0;t.style.marginLeft="8px";b.appendChild(t);mxUtils.write(b,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);b.appendChild(y);mxUtils.write(b,mxResources.get("edit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";b.appendChild(z);mxUtils.write(b,
+mxResources.get("asNew")+" ");mxUtils.br(b);var B=document.createElement("input");B.setAttribute("type","checkbox");B.setAttribute("checked","checked");B.defaultChecked=!0;B.style.marginLeft="16px";b.appendChild(B);mxUtils.write(b,mxResources.get("resize")+" ");var G=document.createElement("input");G.setAttribute("type","checkbox");G.style.marginLeft="8px";b.appendChild(G);mxUtils.write(b,mxResources.get("fit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft=
+"8px";b.appendChild(x);mxUtils.write(b,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),A=a.getCurrentFile();mxEvent.addListener(v,"change",d);mxEvent.addListener(t,"change",d);mxEvent.addListener(B,"change",d);mxEvent.addListener(G,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(e,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(p,"change",d);d();
mxEvent.addListener(q,"click",function(){q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn gePrimaryBtn";g.appendChild(k);b.appendChild(g);this.container=b},CreateGraphDialog=function(a,c,d){var b=document.createElement("div");b.style.textAlign=
"right";this.init=function(){var c=document.createElement("div");c.style.position="relative";c.style.border="1px solid gray";c.style.width="100%";c.style.height="360px";c.style.overflow="hidden";c.style.marginBottom="16px";mxEvent.disableContextMenu(c);b.appendChild(c);var g=new Graph(c);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var k="curved=1;";g.cellRenderer.installCellOverlayListeners=
-function(a,b,c){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(c.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchstart",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))})};g.getAllConnectionConstraints=function(){return null};g.connectionHandler.marker.highlight.keepOnTop=
-!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,null,null,null,k);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var l=g.getDefaultParent(),n=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,c){g.connectionHandler.reset();g.clearSelection();var f=g.getCellGeometry(a),d;m(function(){d=g.insertVertex(l,null,"Entry",f.x,f.y,80,30,"rounded=1;");n(d);g.view.refresh(d);
-g.insertEdge(l,null,"",a,d,k)},function(){g.scrollCellToVisible(d)})});b.addListener("pointerdown",function(a,b){var c=b.getProperty("event"),d=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var f=mxUtils.convertPoint(g.container,mxEvent.getClientX(c),mxEvent.getClientY(c));g.connectionHandler.start(d,f.x,f.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(c);mxEvent.consume(c)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var q;try{q=g.insertVertex(l,null,"Start",
-0,0,80,30,"ellipse"),n(q)}finally{g.getModel().endUpdate()}var f;"horizontalTree"==d?(f=new mxCompactTreeLayout(g),f.edgeRouting=!1,f.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==d?(f=new mxCompactTreeLayout(g,!1),f.edgeRouting=!1,f.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==d?(f=new mxRadialTreeLayout(g,!1),f.edgeRouting=!1,f.levelDistance=80):"verticalFlow"==d?f=new mxHierarchicalLayout(g,mxConstants.DIRECTION_NORTH):"horizontalFlow"==
-d?f=new mxHierarchicalLayout(g,mxConstants.DIRECTION_WEST):"organic"==d?(f=new mxFastOrganicLayout(g,!1),f.forceConstant=80):"circle"==d&&(f=new mxCircleLayout(g));if(null!=f){var m=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),f.execute(g.getDefaultParent(),q)}catch(C){throw C;}finally{var c=new mxMorphing(g);c.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));c.startAnimation()}},p=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
-function(a,b,c,f,d){p.apply(this,arguments);m()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);m()};g.connectionHandler.addListener(mxEvent.CONNECT,function(){m()})}var u=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=c.parentNode&&(g.destroy(),c.parentNode.removeChild(c));a.hideDialog()})});u.className="geBtn";a.editor.cancelFirst&&b.appendChild(u);var v=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays();
-var b=a.editor.graph.getFreeInsertPoint(),b=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),b.x,b.y),f=a.editor.graph.view,d=f.getBounds(b);d.x-=f.translate.x;d.y-=f.translate.y;a.editor.graph.scrollRectToVisible(d);a.editor.graph.setSelectionCells(b);null!=c.parentNode&&(g.destroy(),c.parentNode.removeChild(c));a.hideDialog()});b.appendChild(v);v.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(u)};this.container=b};
+function(a,b,e){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(e.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(e){b.fireEvent(new mxEventObject("pointerdown","event",e,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchstart",function(e){b.fireEvent(new mxEventObject("pointerdown","event",e,"state",a))})};g.getAllConnectionConstraints=function(){return null};g.connectionHandler.marker.highlight.keepOnTop=
+!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,null,null,null,k);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var l=g.getDefaultParent(),n=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,e){g.connectionHandler.reset();g.clearSelection();var c=g.getCellGeometry(a),d;m(function(){d=g.insertVertex(l,null,"Entry",c.x,c.y,80,30,"rounded=1;");n(d);g.view.refresh(d);
+g.insertEdge(l,null,"",a,d,k)},function(){g.scrollCellToVisible(d)})});b.addListener("pointerdown",function(a,b){var e=b.getProperty("event"),c=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var d=mxUtils.convertPoint(g.container,mxEvent.getClientX(e),mxEvent.getClientY(e));g.connectionHandler.start(c,d.x,d.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(e);mxEvent.consume(e)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var q;try{q=g.insertVertex(l,null,"Start",
+0,0,80,30,"ellipse"),n(q)}finally{g.getModel().endUpdate()}var e;"horizontalTree"==d?(e=new mxCompactTreeLayout(g),e.edgeRouting=!1,e.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==d?(e=new mxCompactTreeLayout(g,!1),e.edgeRouting=!1,e.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==d?(e=new mxRadialTreeLayout(g,!1),e.edgeRouting=!1,e.levelDistance=80):"verticalFlow"==d?e=new mxHierarchicalLayout(g,mxConstants.DIRECTION_NORTH):"horizontalFlow"==
+d?e=new mxHierarchicalLayout(g,mxConstants.DIRECTION_WEST):"organic"==d?(e=new mxFastOrganicLayout(g,!1),e.forceConstant=80):"circle"==d&&(e=new mxCircleLayout(g));if(null!=e){var m=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),e.execute(g.getDefaultParent(),q)}catch(B){throw B;}finally{var c=new mxMorphing(g);c.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));c.startAnimation()}},p=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
+function(a,b,e,c,d){p.apply(this,arguments);m()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);m()};g.connectionHandler.addListener(mxEvent.CONNECT,function(){m()})}var u=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=c.parentNode&&(g.destroy(),c.parentNode.removeChild(c));a.hideDialog()})});u.className="geBtn";a.editor.cancelFirst&&b.appendChild(u);var v=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays();
+var b=a.editor.graph.getFreeInsertPoint(),b=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),b.x,b.y),e=a.editor.graph.view,d=e.getBounds(b);d.x-=e.translate.x;d.y-=e.translate.y;a.editor.graph.scrollRectToVisible(d);a.editor.graph.setSelectionCells(b);null!=c.parentNode&&(g.destroy(),c.parentNode.removeChild(c));a.hideDialog()});b.appendChild(v);v.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(u)};this.container=b};
CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg==":
IMAGE_PATH+"/handle-connect.png",26,26);
-var BackgroundImageDialog=function(a,c){var d=document.createElement("div");d.style.whiteSpace="nowrap";var b=document.createElement("h2");mxUtils.write(b,mxResources.get("backgroundImage"));b.style.marginTop="0px";d.appendChild(b);mxUtils.write(d,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(d);var b=a.editor.graph.backgroundImage,e=document.createElement("input");e.setAttribute("type","text");e.style.marginTop="4px";e.style.marginBottom="4px";e.style.width="350px";e.value=
-null!=b?b.src:"";var g=!1,k=function(){g||""==e.value||a.isOffline()?(l.value="",n.value=""):a.loadImage(mxUtils.trim(e.value),function(a){l.value=a.width;n.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));e.value="";l.value="";n.value=""})};this.init=function(){e.focus();if(Graph.fileSupport){e.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=d.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=
-c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,c,d,f,m){e.value=a;k()},function(){},
-function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)&&(e.value=decodeURIComponent(d),k())}b.stopPropagation();b.preventDefault()}),!1)}};d.appendChild(e);mxUtils.br(d);mxUtils.br(d);mxUtils.write(d,mxResources.get("width")+":");var l=document.createElement("input");
-l.setAttribute("type","text");l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="16px";l.value=null!=b?b.width:"";d.appendChild(l);mxUtils.write(d,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="16px";n.value=null!=b?b.height:"";d.appendChild(n);b=mxUtils.button(mxResources.get("reset"),function(){e.value="";l.value="";n.value="";g=!1});mxEvent.addListener(b,"mousedown",
-function(){g=!0});mxEvent.addListener(b,"touchstart",function(){g=!0});b.className="geBtn";b.width="100";d.appendChild(b);mxUtils.br(d);mxEvent.addListener(e,"change",k);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(e.value=a.url,k()));e.focus()};b=document.createElement("div");b.style.marginTop="40px";b.style.textAlign="right";var q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
-q.className="geBtn";a.editor.cancelFirst&&b.appendChild(q);if(!a.isOffline()&&"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top){var f=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)});
-f.className="geBtn";b.appendChild(f);null!=a.drive&&"1"==urlParams.photos&&(f=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(a.drive.token).addView(google.picker.ViewId.PHOTO_UPLOAD);a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),
-f.className="geBtn",b.appendChild(f))}f=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c(""!=e.value?new mxImage(mxUtils.trim(e.value),l.value,n.value):null)});f.className="geBtn gePrimaryBtn";b.appendChild(f);a.editor.cancelFirst||b.appendChild(q);d.appendChild(b);this.container=d},ParseDialog=function(a,c,d){function b(b,c){var d=b.split("\n");if("plantUmlPng"==c||"plantUmlSvg"==c||"plantUmlTxt"==c){if(a.spinner.spin(document.body,mxResources.get("inserting"))){var f=a.editor.graph,
-m="plantUmlTxt"==c?"txt":"plantUmlPng"==c?"png":"svg";a.generatePlantUmlImage(b,m,function(c,d,p){a.spinner.stop();var A=null;f.getModel().beginUpdate();try{A="txt"==m?a.insertAsPreText(c,g.x,g.y):f.insertVertex(null,null,null,g.x,g.y,d,p,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(c)+";"),f.setAttributeForCell(A,"plantUmlData",JSON.stringify({data:b,format:m}))}finally{f.getModel().endUpdate()}null!=A&&(f.setSelectionCell(A),f.scrollCellToVisible(A))},
-function(b){a.handleError(b)})}}else if("table"==c){for(var p=null,e=[],k=0,y=0;y<d.length;y++){var u=mxUtils.trim(d[y]);if("create table"==u.substring(0,12).toLowerCase())u=mxUtils.trim(u.substring(12)),"("==u.charAt(u.length-1)&&(u=u.substring(0,u.lastIndexOf(" "))),p=new mxCell(u,new mxGeometry(k,0,160,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;"),
-p.vertex=!0,e.push(p),u=a.editor.graph.getPreferredSizeForCell(D),null!=u&&(p.geometry.width=u.width+10);else if(null!=p&&")"==u.charAt(0))k+=p.geometry.width+40,p=null;else if("("!=u&&null!=p&&(u=u.substring(0,","==u.charAt(u.length-1)?u.length-1:u.length),"primary key"!=u.substring(0,11).toLowerCase())){var A=u.toLowerCase().indexOf("primary key"),u=u.replace(/primary key/i,""),D=new mxCell(u,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=34;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;");
-D.vertex=!0;u=sb.cloneCell(D,0<A?"PK":"");u.connectable=!1;u.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;";u.geometry.width=30;u.geometry.height=26;D.insert(u);u=a.editor.graph.getPreferredSizeForCell(D);null!=u&&p.geometry.width<u.width+10&&(p.geometry.width=Math.min(220,u.width+10));p.insert(D);p.geometry.height+=26}}0<e.length&&(f=a.editor.graph,
-y=f.view,d=f.getGraphBounds(),f.setSelectionCells(f.importCells(e,Math.ceil(Math.max(0,d.x/y.scale-y.translate.x)+4*f.gridSize),Math.ceil(Math.max(0,(d.y+d.height)/y.scale-y.translate.y)+4*f.gridSize))),f.scrollCellToVisible(f.getSelectionCell()))}else if("list"==c){if(0<d.length){f=a.editor.graph;D=null;e=[];for(y=p=0;y<d.length;y++)";"!=d[y].charAt(0)&&(0==d[y].length?D=null:null==D?(D=new mxCell(d[y],new mxGeometry(p,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"),
-D.vertex=!0,e.push(D),u=f.getPreferredSizeForCell(D),null!=u&&D.geometry.width<u.width+10&&(D.geometry.width=u.width+10),p+=D.geometry.width+40):"--"==d[y]?(u=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),u.vertex=!0,D.geometry.height+=u.geometry.height,D.insert(u)):0<d[y].length&&(k=new mxCell(d[y],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
-k.vertex=!0,u=f.getPreferredSizeForCell(k),null!=u&&k.geometry.width<u.width&&(k.geometry.width=u.width),D.geometry.width=Math.max(D.geometry.width,k.geometry.width),D.geometry.height+=k.geometry.height,D.insert(k)));if(0<e.length){f.getModel().beginUpdate();try{e=f.importCells(e,g.x,g.y);u=[];for(y=0;y<e.length;y++)u.push(e[y]),u=u.concat(e[y].children);f.fireEvent(new mxEventObject("cellsInserted","cells",u))}finally{f.getModel().endUpdate()}f.setSelectionCells(e);f.scrollCellToVisible(f.getSelectionCell())}}}else{for(var D=
-function(a){var b=l[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,l[a]=b,e.push(b));return b},l={},e=[],y=0;y<d.length;y++)if(";"!=d[y].charAt(0)){var n=d[y].split("->");if(2<=n.length){var A=D(n[0]),q=D(n[n.length-1]),n=new mxCell(2<n.length?n[1]:"",new mxGeometry);n.edge=!0;A.insertEdge(n,!0);q.insertEdge(n,!1);e.push(n)}}if(0<e.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);f=new Graph(d);f.getModel().beginUpdate();
-try{e=f.importCells(e);for(y=0;y<e.length;y++)f.getModel().isVertex(e[y])&&(u=f.getPreferredSizeForCell(e[y]),e[y].geometry.width=Math.max(e[y].geometry.width,u.width),e[y].geometry.height=Math.max(e[y].geometry.height,u.height));p=new mxFastOrganicLayout(f);p.disableEdgeStyle=!1;p.forceConstant=120;p.execute(f.getDefaultParent());k=new mxParallelEdgeLayout(f);k.spacing=20;k.execute(f.getDefaultParent())}finally{f.getModel().endUpdate()}f.clearCellOverlays();u=[];a.editor.graph.getModel().beginUpdate();
-try{u=a.editor.graph.importCells(f.getModel().getChildren(f.getDefaultParent()),g.x,g.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",u))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(u);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());f.destroy();d.parentNode.removeChild(d)}}}function e(){return"list"==l.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean\n\nAddress\n-street: String\n-city: String\n-state: String":
+var BackgroundImageDialog=function(a,c){var d=document.createElement("div");d.style.whiteSpace="nowrap";var b=document.createElement("h2");mxUtils.write(b,mxResources.get("backgroundImage"));b.style.marginTop="0px";d.appendChild(b);mxUtils.write(d,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(d);var b=a.editor.graph.backgroundImage,f=document.createElement("input");f.setAttribute("type","text");f.style.marginTop="4px";f.style.marginBottom="4px";f.style.width="350px";f.value=
+null!=b?b.src:"";var g=!1,k=function(){g||""==f.value||a.isOffline()?(l.value="",n.value=""):a.loadImage(mxUtils.trim(f.value),function(a){l.value=a.width;n.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));f.value="";l.value="";n.value=""})};this.init=function(){f.focus();if(Graph.fileSupport){f.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=d.parentNode,e=null;mxEvent.addListener(b,"dragleave",function(a){null!=
+e&&(e.parentNode.removeChild(e),e=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,e,c,d,m){f.value=a;k()},function(){},
+function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(f.value=decodeURIComponent(c),k())}b.stopPropagation();b.preventDefault()}),!1)}};d.appendChild(f);mxUtils.br(d);mxUtils.br(d);mxUtils.write(d,mxResources.get("width")+":");var l=document.createElement("input");
+l.setAttribute("type","text");l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="16px";l.value=null!=b?b.width:"";d.appendChild(l);mxUtils.write(d,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="16px";n.value=null!=b?b.height:"";d.appendChild(n);b=mxUtils.button(mxResources.get("reset"),function(){f.value="";l.value="";n.value="";g=!1});mxEvent.addListener(b,"mousedown",
+function(){g=!0});mxEvent.addListener(b,"touchstart",function(){g=!0});b.className="geBtn";b.width="100";d.appendChild(b);mxUtils.br(d);mxEvent.addListener(f,"change",k);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(f.value=a.url,k()));f.focus()};b=document.createElement("div");b.style.marginTop="40px";b.style.textAlign="right";var q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
+q.className="geBtn";a.editor.cancelFirst&&b.appendChild(q);if(!a.isOffline()&&"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top){var e=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)});
+e.className="geBtn";b.appendChild(e);null!=a.drive&&"1"==urlParams.photos&&(e=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(a.drive.token).addView(google.picker.ViewId.PHOTO_UPLOAD);a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),
+e.className="geBtn",b.appendChild(e))}e=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c(""!=f.value?new mxImage(mxUtils.trim(f.value),l.value,n.value):null)});e.className="geBtn gePrimaryBtn";b.appendChild(e);a.editor.cancelFirst||b.appendChild(q);d.appendChild(b);this.container=d},ParseDialog=function(a,c,d){function b(b,e){var c=b.split("\n");if("plantUmlPng"==e||"plantUmlSvg"==e||"plantUmlTxt"==e){if(a.spinner.spin(document.body,mxResources.get("inserting"))){var d=a.editor.graph,
+m="plantUmlTxt"==e?"txt":"plantUmlPng"==e?"png":"svg";a.generatePlantUmlImage(b,m,function(c,e,p){a.spinner.stop();var A=null;d.getModel().beginUpdate();try{A="txt"==m?a.insertAsPreText(c,g.x,g.y):d.insertVertex(null,null,null,g.x,g.y,e,p,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(c)+";"),d.setAttributeForCell(A,"plantUmlData",JSON.stringify({data:b,format:m}))}finally{d.getModel().endUpdate()}null!=A&&(d.setSelectionCell(A),d.scrollCellToVisible(A))},
+function(b){a.handleError(b)})}}else if("table"==e){for(var p=null,f=[],k=0,x=0;x<c.length;x++){var u=mxUtils.trim(c[x]);if("create table"==u.substring(0,12).toLowerCase())u=mxUtils.trim(u.substring(12)),"("==u.charAt(u.length-1)&&(u=u.substring(0,u.lastIndexOf(" "))),p=new mxCell(u,new mxGeometry(k,0,160,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;"),
+p.vertex=!0,f.push(p),u=a.editor.graph.getPreferredSizeForCell(D),null!=u&&(p.geometry.width=u.width+10);else if(null!=p&&")"==u.charAt(0))k+=p.geometry.width+40,p=null;else if("("!=u&&null!=p&&(u=u.substring(0,","==u.charAt(u.length-1)?u.length-1:u.length),"primary key"!=u.substring(0,11).toLowerCase())){var A=u.toLowerCase().indexOf("primary key"),u=u.replace(/primary key/i,""),D=new mxCell(u,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=34;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;");
+D.vertex=!0;u=sb.cloneCell(D,0<A?"PK":"");u.connectable=!1;u.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;";u.geometry.width=30;u.geometry.height=26;D.insert(u);u=a.editor.graph.getPreferredSizeForCell(D);null!=u&&p.geometry.width<u.width+10&&(p.geometry.width=Math.min(220,u.width+10));p.insert(D);p.geometry.height+=26}}0<f.length&&(d=a.editor.graph,
+x=d.view,c=d.getGraphBounds(),d.setSelectionCells(d.importCells(f,Math.ceil(Math.max(0,c.x/x.scale-x.translate.x)+4*d.gridSize),Math.ceil(Math.max(0,(c.y+c.height)/x.scale-x.translate.y)+4*d.gridSize))),d.scrollCellToVisible(d.getSelectionCell()))}else if("list"==e){if(0<c.length){d=a.editor.graph;D=null;f=[];for(x=p=0;x<c.length;x++)";"!=c[x].charAt(0)&&(0==c[x].length?D=null:null==D?(D=new mxCell(c[x],new mxGeometry(p,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"),
+D.vertex=!0,f.push(D),u=d.getPreferredSizeForCell(D),null!=u&&D.geometry.width<u.width+10&&(D.geometry.width=u.width+10),p+=D.geometry.width+40):"--"==c[x]?(u=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),u.vertex=!0,D.geometry.height+=u.geometry.height,D.insert(u)):0<c[x].length&&(k=new mxCell(c[x],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
+k.vertex=!0,u=d.getPreferredSizeForCell(k),null!=u&&k.geometry.width<u.width&&(k.geometry.width=u.width),D.geometry.width=Math.max(D.geometry.width,k.geometry.width),D.geometry.height+=k.geometry.height,D.insert(k)));if(0<f.length){d.getModel().beginUpdate();try{f=d.importCells(f,g.x,g.y);u=[];for(x=0;x<f.length;x++)u.push(f[x]),u=u.concat(f[x].children);d.fireEvent(new mxEventObject("cellsInserted","cells",u))}finally{d.getModel().endUpdate()}d.setSelectionCells(f);d.scrollCellToVisible(d.getSelectionCell())}}}else{for(var D=
+function(a){var b=l[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,l[a]=b,f.push(b));return b},l={},f=[],x=0;x<c.length;x++)if(";"!=c[x].charAt(0)){var n=c[x].split("->");if(2<=n.length){var A=D(n[0]),q=D(n[n.length-1]),n=new mxCell(2<n.length?n[1]:"",new mxGeometry);n.edge=!0;A.insertEdge(n,!0);q.insertEdge(n,!1);f.push(n)}}if(0<f.length){c=document.createElement("div");c.style.visibility="hidden";document.body.appendChild(c);d=new Graph(c);d.getModel().beginUpdate();
+try{f=d.importCells(f);for(x=0;x<f.length;x++)d.getModel().isVertex(f[x])&&(u=d.getPreferredSizeForCell(f[x]),f[x].geometry.width=Math.max(f[x].geometry.width,u.width),f[x].geometry.height=Math.max(f[x].geometry.height,u.height));p=new mxFastOrganicLayout(d);p.disableEdgeStyle=!1;p.forceConstant=120;p.execute(d.getDefaultParent());k=new mxParallelEdgeLayout(d);k.spacing=20;k.execute(d.getDefaultParent())}finally{d.getModel().endUpdate()}d.clearCellOverlays();u=[];a.editor.graph.getModel().beginUpdate();
+try{u=a.editor.graph.importCells(d.getModel().getChildren(d.getDefaultParent()),g.x,g.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",u))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(u);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());d.destroy();c.parentNode.removeChild(c)}}}function f(){return"list"==l.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean\n\nAddress\n-street: String\n-city: String\n-state: String":
"table"==l.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==l.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":
"plantUmlSvg"==l.value||"plantUmlTxt"==l.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var g=a.editor.graph.getFreeInsertPoint();c=document.createElement("div");c.style.textAlign="right";var k=document.createElement("textarea");k.style.resize="none";k.style.width="100%";k.style.height=
"354px";k.style.marginBottom="16px";var l=document.createElement("select");"formatSql"==d&&(l.style.display="none");var n=document.createElement("option");n.setAttribute("value","list");mxUtils.write(n,mxResources.get("list"));"plantUml"!=d&&l.appendChild(n);null!=d&&"fromText"!=d||n.setAttribute("selected","selected");n=document.createElement("option");n.setAttribute("value","table");mxUtils.write(n,mxResources.get("formatSql"));"formatSql"==d&&(l.appendChild(n),n.setAttribute("selected","selected"));
n=document.createElement("option");n.setAttribute("value","diagram");mxUtils.write(n,mxResources.get("diagram"));"plantUml"!=d&&l.appendChild(n);n=document.createElement("option");n.setAttribute("value","plantUmlSvg");mxUtils.write(n,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==d&&n.setAttribute("selected","selected");var q=document.createElement("option");q.setAttribute("value","plantUmlPng");mxUtils.write(q,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+
-")");var f=document.createElement("option");f.setAttribute("value","plantUmlTxt");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==d&&(l.appendChild(n),l.appendChild(q),l.appendChild(f));var m=e();k.value=m;c.appendChild(k);this.init=function(){k.focus()};Graph.fileSupport&&(k.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),k.addEventListener("drop",function(a){a.stopPropagation();
-a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){k.value=a.target.result};b.readAsText(a)}},!1));c.appendChild(l);mxEvent.addListener(l,"change",function(){var a=e();if(0==k.value.length||k.value==m)m=a,k.value=m});d=mxUtils.button(mxResources.get("close"),function(){k.value==m?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});d.className="geBtn";a.editor.cancelFirst&&c.appendChild(d);n=mxUtils.button(mxResources.get("insert"),
-function(){a.hideDialog();b(k.value,l.value)});c.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||c.appendChild(d);this.container=c},NewDialog=function(a,c,d,b,e,g,k,l,n,q,f,m,p,u,v,t,z){function x(){var a=!0;if(null!=X)for(;K<X.length&&(a||0!=mxUtils.mod(K,30));){var b=X[K++],b=y(b.url,b.libs,b.title,b.tooltip?b.tooltip:b.title,b.select,b.imgUrl,b.info,b.onClick,b.preview,b.noImg,b.clibs);a&&b.click();a=!1}}function C(){if(U)d||a.hideDialog(),u(U,ba,I.value);else if(b)d||a.hideDialog(),
-b(fa,I.value);else{var c=I.value;null!=c&&0<c.length&&a.pickFolder(a.mode,function(b){a.createFile(c,fa,null!=Z&&0<Z.length?Z:null,null,function(){a.hideDialog()},null,b,null,null!=ga&&0<ga.length?ga:null)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function H(a,b,c,f,d,m){null!=aa&&(aa.style.backgroundColor="transparent",aa.style.border="1px solid transparent");E.removeAttribute("disabled");fa=b;Z=c;ga=m;aa=a;U=f;ba=d;aa.style.backgroundColor=l;aa.style.border=n}function y(b,
-c,f,d,m,p,A,e,g,t,k){var y=document.createElement("div");y.className="geTemplate";y.style.height=Y+"px";y.style.width=ea+"px";null!=f?y.setAttribute("title",mxResources.get(f,null,f)):null!=d&&0<d.length&&y.setAttribute("title",d);if(null!=p)y.style.backgroundImage="url("+p+")",y.style.backgroundSize="contain",y.style.backgroundPosition="center center",y.style.backgroundRepeat="no-repeat",mxEvent.addListener(y,"click",function(a){H(y,null,null,b,A,k)}),mxEvent.addListener(y,"dblclick",function(a){C()});
-else if(!t&&null!=b&&0<b.length){d=g||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";y.style.backgroundImage="url("+d+")";y.style.backgroundPosition="center center";y.style.backgroundRepeat="no-repeat";null!=f&&(y.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;'+("dark"==uiTheme?"":"background:rgba(255,255,255,0.85);")+'border:inherit;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:rgba(255,255,255,0.85);overflow:hidden;text-overflow:ellipsis;max-width:'+
-(Y-34)+'px;">'+mxResources.get(f,null,f)+"</span></td></tr></table>");var u=!1;mxEvent.addListener(y,"click",function(f){E.setAttribute("disabled","disabled");y.style.backgroundColor="transparent";y.style.border="1px solid transparent";f=b;f=/^https?:\/\//.test(f)&&!a.editor.isCorsEnabledForUrl(f)?PROXY_URL+"?url="+encodeURIComponent(f):TEMPLATE_PATH+"/"+f;G.spin(Q);mxUtils.get(f,mxUtils.bind(this,function(a){G.stop();200<=a.getStatus()&&299>=a.getStatus()&&(H(y,a.getText(),c,null,null,k),u&&C())}))});
-mxEvent.addListener(y,"dblclick",function(a){u=!0})}else y.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:#ffffff;overflow:hidden;text-overflow:ellipsis;max-width:'+(Y-34)+'px;">'+mxResources.get(f,null,f)+"</span></td></tr></table>",m&&H(y),null!=e?mxEvent.addListener(y,"click",e):(mxEvent.addListener(y,"click",function(a){H(y,null,
-null,b,A)}),mxEvent.addListener(y,"dblclick",function(a){C()}));Q.appendChild(y);return y}function B(){S&&(S=!1,mxEvent.addListener(Q,"scroll",function(a){Q.scrollTop+Q.clientHeight>=Q.scrollHeight&&(x(),mxEvent.consume(a))}));var a=null;if(0<da){var b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,mxResources.get("custom"));ca.appendChild(b);for(var c in M){var f=document.createElement("div"),b=c,d=M[c];
-18<b.length&&(b=b.substring(0,18)+"&hellip;");f.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";f.setAttribute("title",b+" ("+d.length+")");mxUtils.write(f,f.getAttribute("title"));null!=q&&(f.style.padding=q);ca.appendChild(f);(function(b,c){mxEvent.addListener(f,"click",function(){a!=c&&(a.style.backgroundColor="",a=c,a.style.backgroundColor=k,Q.scrollTop=0,Q.innerHTML="",K=0,X=M[b],N=null,x())})})(c,
-f)}b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,"draw.io");ca.appendChild(b)}for(c in P)f=document.createElement("div"),b=mxResources.get(c),d=P[c],null==b&&(b=c.substring(0,1).toUpperCase()+c.substring(1)),18<b.length&&(b=b.substring(0,18)+"&hellip;"),f.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;",
-f.setAttribute("title",b+" ("+d.length+")"),mxUtils.write(f,f.getAttribute("title")),null!=q&&(f.style.padding=q),ca.appendChild(f),null==a&&0<d.length&&(a=f,a.style.backgroundColor=k,X=d),function(b,c){mxEvent.addListener(f,"click",function(){a!=c&&(a.style.backgroundColor="",a=c,a.style.backgroundColor=k,Q.scrollTop=0,Q.innerHTML="",K=0,X=P[b],N=null,x())})}(c,f);x()}d=null!=d?d:!0;e=null!=e?e:!1;k=null!=k?k:"#ebf2f9";l=null!=l?l:"dark"==uiTheme?"transparent":"#e6eff8";n=null!=n?n:"dark"==uiTheme?
-"1px dotted rgb(235, 242, 249)":"1px solid #ccd9ea";f=null!=f?f:EditorUi.templateFile;var A=document.createElement("div");A.style.height="100%";var D=document.createElement("div");D.style.whiteSpace="nowrap";D.style.height="46px";d&&A.appendChild(D);var F=document.createElement("img");F.setAttribute("border","0");F.setAttribute("align","absmiddle");F.style.width="40px";F.style.height="40px";F.style.marginRight="10px";F.style.paddingBottom="4px";F.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":
+")");var e=document.createElement("option");e.setAttribute("value","plantUmlTxt");mxUtils.write(e,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==d&&(l.appendChild(n),l.appendChild(q),l.appendChild(e));var m=f();k.value=m;c.appendChild(k);this.init=function(){k.focus()};Graph.fileSupport&&(k.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),k.addEventListener("drop",function(a){a.stopPropagation();
+a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){k.value=a.target.result};b.readAsText(a)}},!1));c.appendChild(l);mxEvent.addListener(l,"change",function(){var a=f();if(0==k.value.length||k.value==m)m=a,k.value=m});d=mxUtils.button(mxResources.get("close"),function(){k.value==m?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});d.className="geBtn";a.editor.cancelFirst&&c.appendChild(d);n=mxUtils.button(mxResources.get("insert"),
+function(){a.hideDialog();b(k.value,l.value)});c.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||c.appendChild(d);this.container=c},NewDialog=function(a,c,d,b,f,g,k,l,n,q,e,m,p,u,v,t,y){function z(){var a=!0;if(null!=X)for(;J<X.length&&(a||0!=mxUtils.mod(J,30));){var b=X[J++],b=x(b.url,b.libs,b.title,b.tooltip?b.tooltip:b.title,b.select,b.imgUrl,b.info,b.onClick,b.preview,b.noImg,b.clibs);a&&b.click();a=!1}}function B(){if(U)d||a.hideDialog(),u(U,ba,I.value);else if(b)d||a.hideDialog(),
+b(fa,I.value);else{var c=I.value;null!=c&&0<c.length&&a.pickFolder(a.mode,function(b){a.createFile(c,fa,null!=Z&&0<Z.length?Z:null,null,function(){a.hideDialog()},null,b,null,null!=ga&&0<ga.length?ga:null)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function G(a,b,c,e,d,m){null!=aa&&(aa.style.backgroundColor="transparent",aa.style.border="1px solid transparent");E.removeAttribute("disabled");fa=b;Z=c;ga=m;aa=a;U=e;ba=d;aa.style.backgroundColor=l;aa.style.border=n}function x(b,
+c,e,d,m,p,A,f,g,t,k){var x=document.createElement("div");x.className="geTemplate";x.style.height=Y+"px";x.style.width=ea+"px";null!=e?x.setAttribute("title",mxResources.get(e,null,e)):null!=d&&0<d.length&&x.setAttribute("title",d);if(null!=p)x.style.backgroundImage="url("+p+")",x.style.backgroundSize="contain",x.style.backgroundPosition="center center",x.style.backgroundRepeat="no-repeat",mxEvent.addListener(x,"click",function(a){G(x,null,null,b,A,k)}),mxEvent.addListener(x,"dblclick",function(a){B()});
+else if(!t&&null!=b&&0<b.length){d=g||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";x.style.backgroundImage="url("+d+")";x.style.backgroundPosition="center center";x.style.backgroundRepeat="no-repeat";null!=e&&(x.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;'+("dark"==uiTheme?"":"background:rgba(255,255,255,0.85);")+'border:inherit;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:rgba(255,255,255,0.85);overflow:hidden;text-overflow:ellipsis;max-width:'+
+(Y-34)+'px;">'+mxResources.get(e,null,e)+"</span></td></tr></table>");var u=!1;mxEvent.addListener(x,"click",function(e){E.setAttribute("disabled","disabled");x.style.backgroundColor="transparent";x.style.border="1px solid transparent";e=b;e=/^https?:\/\//.test(e)&&!a.editor.isCorsEnabledForUrl(e)?PROXY_URL+"?url="+encodeURIComponent(e):TEMPLATE_PATH+"/"+e;H.spin(Q);mxUtils.get(e,mxUtils.bind(this,function(a){H.stop();200<=a.getStatus()&&299>=a.getStatus()&&(G(x,a.getText(),c,null,null,k),u&&B())}))});
+mxEvent.addListener(x,"dblclick",function(a){u=!0})}else x.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:#ffffff;overflow:hidden;text-overflow:ellipsis;max-width:'+(Y-34)+'px;">'+mxResources.get(e,null,e)+"</span></td></tr></table>",m&&G(x),null!=f?mxEvent.addListener(x,"click",f):(mxEvent.addListener(x,"click",function(a){G(x,null,
+null,b,A)}),mxEvent.addListener(x,"dblclick",function(a){B()}));Q.appendChild(x);return x}function C(){S&&(S=!1,mxEvent.addListener(Q,"scroll",function(a){Q.scrollTop+Q.clientHeight>=Q.scrollHeight&&(z(),mxEvent.consume(a))}));var a=null;if(0<da){var b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,mxResources.get("custom"));ca.appendChild(b);for(var e in N){var c=document.createElement("div"),b=e,d=N[e];
+18<b.length&&(b=b.substring(0,18)+"&hellip;");c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";c.setAttribute("title",b+" ("+d.length+")");mxUtils.write(c,c.getAttribute("title"));null!=q&&(c.style.padding=q);ca.appendChild(c);(function(b,e){mxEvent.addListener(c,"click",function(){a!=e&&(a.style.backgroundColor="",a=e,a.style.backgroundColor=k,Q.scrollTop=0,Q.innerHTML="",J=0,X=N[b],M=null,z())})})(e,
+c)}b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,"draw.io");ca.appendChild(b)}for(e in P)c=document.createElement("div"),b=mxResources.get(e),d=P[e],null==b&&(b=e.substring(0,1).toUpperCase()+e.substring(1)),18<b.length&&(b=b.substring(0,18)+"&hellip;"),c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;",
+c.setAttribute("title",b+" ("+d.length+")"),mxUtils.write(c,c.getAttribute("title")),null!=q&&(c.style.padding=q),ca.appendChild(c),null==a&&0<d.length&&(a=c,a.style.backgroundColor=k,X=d),function(b,e){mxEvent.addListener(c,"click",function(){a!=e&&(a.style.backgroundColor="",a=e,a.style.backgroundColor=k,Q.scrollTop=0,Q.innerHTML="",J=0,X=P[b],M=null,z())})}(e,c);z()}d=null!=d?d:!0;f=null!=f?f:!1;k=null!=k?k:"#ebf2f9";l=null!=l?l:"dark"==uiTheme?"transparent":"#e6eff8";n=null!=n?n:"dark"==uiTheme?
+"1px dotted rgb(235, 242, 249)":"1px solid #ccd9ea";e=null!=e?e:EditorUi.templateFile;var A=document.createElement("div");A.style.height="100%";var D=document.createElement("div");D.style.whiteSpace="nowrap";D.style.height="46px";d&&A.appendChild(D);var F=document.createElement("img");F.setAttribute("border","0");F.setAttribute("align","absmiddle");F.style.width="40px";F.style.height="40px";F.style.marginRight="10px";F.style.paddingBottom="4px";F.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":
a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!c&&d&&D.appendChild(F);d&&mxUtils.write(D,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):
mxResources.get("filename"))+":");F=".drawio";a.mode==App.MODE_GOOGLE&&null!=a.drive?F=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?F=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?F=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?F=a.gitHub.extension:a.mode==App.MODE_GITLAB&&null!=a.gitLab?F=a.gitLab.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(F=a.trello.extension);var I=document.createElement("input");I.setAttribute("value",a.defaultFilename+
-F);I.style.marginLeft="10px";I.style.width=c?"220px":"430px";this.init=function(){d&&(I.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?I.select():document.execCommand("selectAll",!1,null))};d&&(D.appendChild(I),null!=a.editor.fileExtensions&&(F=FilenameDialog.createTypeHint(a,I,a.editor.fileExtensions),F.style.marginTop="12px",D.appendChild(F)));var D=!1,K=0,G=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,
-hwaccel:!1,top:"40%",zIndex:2E9}),E=mxUtils.button(t||mxResources.get("create"),function(){E.setAttribute("disabled","disabled");C();E.removeAttribute("disabled")});E.className="geBtn gePrimaryBtn";if(m||p){var J=[],N=null,R=null,W=null,T=function(a){E.setAttribute("disabled","disabled");for(var b=0;b<J.length;b++)J[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},D=!0;t=document.createElement("div");t.style.whiteSpace="nowrap";t.style.height="30px";A.appendChild(t);F=mxUtils.button(mxResources.get("Templates",
-null,"Templates"),function(){ca.style.display="";Q.style.left="160px";T(0);Q.scrollTop=0;Q.innerHTML="";K=0;N!=X&&(X=N,P=R,da=W,ca.innerHTML="",B(),N=null)});J.push(F);t.appendChild(F);var L=function(a){ca.style.display="none";Q.style.left="30px";T(a?-1:1);null==N&&(N=X);Q.scrollTop=0;Q.innerHTML="";G.spin(Q);var b=function(a,b,c){K=0;G.stop();X=a;c=c||{};var f=0,d;for(d in c)f+=c[d].length;if(b)Q.innerHTML=b;else if(0==a.length&&0==f)Q.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",
-null,"No Diagrams Found"));else if(Q.innerHTML="",0<f){ca.style.display="";Q.style.left="160px";ca.innerHTML="";da=0;P={"draw.io":a};for(d in c)P[d]=c[d];B()}else x()};a?p(V.value,b):m(b)};m&&(F=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){L()}),t.appendChild(F),J.push(F));if(p){F=document.createElement("span");F.style.marginLeft="10px";F.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");t.appendChild(F);var V=document.createElement("input");V.style.marginRight="10px";
+F);I.style.marginLeft="10px";I.style.width=c?"220px":"430px";this.init=function(){d&&(I.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?I.select():document.execCommand("selectAll",!1,null))};d&&(D.appendChild(I),null!=a.editor.fileExtensions&&(F=FilenameDialog.createTypeHint(a,I,a.editor.fileExtensions),F.style.marginTop="12px",D.appendChild(F)));var D=!1,J=0,H=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,
+hwaccel:!1,top:"40%",zIndex:2E9}),E=mxUtils.button(t||mxResources.get("create"),function(){E.setAttribute("disabled","disabled");B();E.removeAttribute("disabled")});E.className="geBtn gePrimaryBtn";if(m||p){var K=[],M=null,R=null,W=null,T=function(a){E.setAttribute("disabled","disabled");for(var b=0;b<K.length;b++)K[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},D=!0;t=document.createElement("div");t.style.whiteSpace="nowrap";t.style.height="30px";A.appendChild(t);F=mxUtils.button(mxResources.get("Templates",
+null,"Templates"),function(){ca.style.display="";Q.style.left="160px";T(0);Q.scrollTop=0;Q.innerHTML="";J=0;M!=X&&(X=M,P=R,da=W,ca.innerHTML="",C(),M=null)});K.push(F);t.appendChild(F);var L=function(a){ca.style.display="none";Q.style.left="30px";T(a?-1:1);null==M&&(M=X);Q.scrollTop=0;Q.innerHTML="";H.spin(Q);var b=function(a,b,e){J=0;H.stop();X=a;e=e||{};var c=0,d;for(d in e)c+=e[d].length;if(b)Q.innerHTML=b;else if(0==a.length&&0==c)Q.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",
+null,"No Diagrams Found"));else if(Q.innerHTML="",0<c){ca.style.display="";Q.style.left="160px";ca.innerHTML="";da=0;P={"draw.io":a};for(d in e)P[d]=e[d];C()}else z()};a?p(V.value,b):m(b)};m&&(F=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){L()}),t.appendChild(F),K.push(F));if(p){F=document.createElement("span");F.style.marginLeft="10px";F.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");t.appendChild(F);var V=document.createElement("input");V.style.marginRight="10px";
V.style.marginLeft="10px";V.style.width="220px";mxEvent.addListener(V,"keypress",function(a){13==a.keyCode&&L(!0)});t.appendChild(V);F=mxUtils.button(mxResources.get("search"),function(){L(!0)});F.className="geBtn";t.appendChild(F)}T(0)}var Z=null,ga=null,fa=null,aa=null,U=null,ba=null,Q=document.createElement("div");Q.style.border="1px solid #d3d3d3";Q.style.position="absolute";Q.style.left="160px";Q.style.right="34px";D=(d?72:40)+(D?30:0);Q.style.top=D+"px";Q.style.bottom="68px";Q.style.margin=
-"6px 0 0 -1px";Q.style.padding="6px";Q.style.overflow="auto";var ca=document.createElement("div");ca.style.cssText="position:absolute;left:30px;width:128px;top:"+D+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Y=140,ea=140,P={},M={},da=0,S=!0;P.basic=[{title:"blankDiagram",select:!0}];var X=P.basic;if(!c){var ja=function(){mxUtils.get(O,function(a){if(!ka){ka=!0;a=a.getXml().documentElement.firstChild;for(var b={};null!=a;){if("undefined"!==typeof a.getAttribute)if("clibs"==
-a.nodeName){for(var c=a.getAttribute("name"),f=a.getElementsByTagName("add"),d=[],m=0;m<f.length;m++)d.push(encodeURIComponent(mxUtils.getTextContent(f[m])));null!=c&&0<d.length&&(b[c]=d.join(";"))}else c=a.getAttribute("url"),null!=c&&(f=a.getAttribute("section"),null==f&&(f=c.indexOf("/"),f=c.substring(0,f)),c=P[f],null==c&&(c=[],P[f]=c),f=a.getAttribute("clibs"),null!=b[f]&&(f=b[f]),c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),
-preview:a.getAttribute("preview"),clibs:f}));a=a.nextSibling}G.stop();B()}})};A.appendChild(ca);A.appendChild(Q);var ka=!1,O=f;/^https?:\/\//.test(O)&&!a.editor.isCorsEnabledForUrl(O)&&(O=PROXY_URL+"?url="+encodeURIComponent(O));G.spin(Q);null!=z?z(function(a,b){M=a;W=da=b;ja()},ja):ja();R=P}mxEvent.addListener(I,"keypress",function(b){a.dialog.container.firstChild==A&&13==b.keyCode&&C()});f=document.createElement("div");f.style.marginTop=c?"4px":"16px";f.style.textAlign="right";f.style.position=
-"absolute";f.style.left="40px";f.style.bottom="24px";f.style.right="40px";c||a.isOffline()||!d||null!=b||e||(z=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),z.className="geBtn",f.appendChild(z));z=mxUtils.button(mxResources.get("cancel"),function(){null!=g&&g();a.hideDialog(!0)});z.className="geBtn";!a.editor.cancelFirst||e&&null==g||f.appendChild(z);c||"1"==urlParams.embed||e||(c=mxUtils.button(mxResources.get("fromTemplateUrl"),
-function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(I.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),c.className="geBtn",f.appendChild(c));Graph.fileSupport&&v&&(v=mxUtils.button(mxResources.get("import"),function(){if(null==a.newDlgFileInputElt){var b=
-document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(c){a.openFiles(b.files,!0);b.value=""});b.style.display="none";document.body.appendChild(b);a.newDlgFileInputElt=b}a.newDlgFileInputElt.click()}),v.className="geBtn",f.appendChild(v));f.appendChild(E);a.editor.cancelFirst||null!=b||e&&null==g||f.appendChild(z);A.appendChild(f);this.container=A},CreateDialog=function(a,c,d,b,e,g,k,l,n,q,f,m,p,u,v,t,z){function x(b,
-f,d,p){function e(){mxEvent.addListener(g,"click",function(){var b=d;if(k){var f=y.value,m=f.lastIndexOf(".");if(0>c.lastIndexOf(".")&&0>m){var b=null!=b?b:D.value,p="";b==App.MODE_GOOGLE?p=a.drive.extension:b==App.MODE_GITHUB?p=a.gitHub.extension:b==App.MODE_GITLAB?p=a.gitLab.extension:b==App.MODE_TRELLO?p=a.trello.extension:b==App.MODE_DROPBOX?p=a.dropbox.extension:b==App.MODE_ONEDRIVE?p=a.oneDrive.extension:b==App.MODE_DEVICE&&(p=".drawio");0<=m&&(f=f.substring(0,m));y.value=f+p}}C(d)})}var g=
+"6px 0 0 -1px";Q.style.padding="6px";Q.style.overflow="auto";var ca=document.createElement("div");ca.style.cssText="position:absolute;left:30px;width:128px;top:"+D+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Y=140,ea=140,P={},N={},da=0,S=!0;P.basic=[{title:"blankDiagram",select:!0}];var X=P.basic;if(!c){var ja=function(){mxUtils.get(O,function(a){if(!ka){ka=!0;a=a.getXml().documentElement.firstChild;for(var b={};null!=a;){if("undefined"!==typeof a.getAttribute)if("clibs"==
+a.nodeName){for(var e=a.getAttribute("name"),c=a.getElementsByTagName("add"),d=[],m=0;m<c.length;m++)d.push(encodeURIComponent(mxUtils.getTextContent(c[m])));null!=e&&0<d.length&&(b[e]=d.join(";"))}else e=a.getAttribute("url"),null!=e&&(c=a.getAttribute("section"),null==c&&(c=e.indexOf("/"),c=e.substring(0,c)),e=P[c],null==e&&(e=[],P[c]=e),c=a.getAttribute("clibs"),null!=b[c]&&(c=b[c]),e.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),
+preview:a.getAttribute("preview"),clibs:c}));a=a.nextSibling}H.stop();C()}})};A.appendChild(ca);A.appendChild(Q);var ka=!1,O=e;/^https?:\/\//.test(O)&&!a.editor.isCorsEnabledForUrl(O)&&(O=PROXY_URL+"?url="+encodeURIComponent(O));H.spin(Q);null!=y?y(function(a,b){N=a;W=da=b;ja()},ja):ja();R=P}mxEvent.addListener(I,"keypress",function(b){a.dialog.container.firstChild==A&&13==b.keyCode&&B()});e=document.createElement("div");e.style.marginTop=c?"4px":"16px";e.style.textAlign="right";e.style.position=
+"absolute";e.style.left="40px";e.style.bottom="24px";e.style.right="40px";c||a.isOffline()||!d||null!=b||f||(y=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),y.className="geBtn",e.appendChild(y));y=mxUtils.button(mxResources.get("cancel"),function(){null!=g&&g();a.hideDialog(!0)});y.className="geBtn";!a.editor.cancelFirst||f&&null==g||e.appendChild(y);c||"1"==urlParams.embed||f||(c=mxUtils.button(mxResources.get("fromTemplateUrl"),
+function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(I.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),c.className="geBtn",e.appendChild(c));Graph.fileSupport&&v&&(v=mxUtils.button(mxResources.get("import"),function(){if(null==a.newDlgFileInputElt){var b=
+document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(e){a.openFiles(b.files,!0);b.value=""});b.style.display="none";document.body.appendChild(b);a.newDlgFileInputElt=b}a.newDlgFileInputElt.click()}),v.className="geBtn",e.appendChild(v));e.appendChild(E);a.editor.cancelFirst||null!=b||f&&null==g||e.appendChild(y);A.appendChild(e);this.container=A},CreateDialog=function(a,c,d,b,f,g,k,l,n,q,e,m,p,u,v,t,y){function z(b,
+e,d,p){function f(){mxEvent.addListener(g,"click",function(){var b=d;if(k){var e=x.value,m=e.lastIndexOf(".");if(0>c.lastIndexOf(".")&&0>m){var b=null!=b?b:D.value,p="";b==App.MODE_GOOGLE?p=a.drive.extension:b==App.MODE_GITHUB?p=a.gitHub.extension:b==App.MODE_GITLAB?p=a.gitLab.extension:b==App.MODE_TRELLO?p=a.trello.extension:b==App.MODE_DROPBOX?p=a.dropbox.extension:b==App.MODE_ONEDRIVE?p=a.oneDrive.extension:b==App.MODE_DEVICE&&(p=".drawio");0<=m&&(e=e.substring(0,m));x.value=e+p}}B(d)})}var g=
document.createElement("a");g.style.overflow="hidden";var t=document.createElement("img");t.src=b;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace="nowrap";g.appendChild(t);mxClient.IS_QUIRKS&&(g.style.cssFloat="left",g.style.zoom=
-"1");g.style.color="gray";g.style.fontSize="11px";var u=document.createElement("div");g.appendChild(u);mxUtils.write(u,f);if(null!=p&&null==a[p]){t.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(g);var l=window.setTimeout(function(){null==a[p]&&(v.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=
-a[p]&&(window.clearTimeout(l),mxUtils.setOpacity(u,100),t.style.visibility="",v.stop(),e())}))}else e();B.appendChild(g);++A==m&&(mxUtils.br(B),A=0)}function C(b){var c=y.value;if(null==b||null!=c&&0<c.length)z&&a.hideDialog(),d(c,b,y)}k=null!=k?k:!0;l=null!=l?l:!0;m=null!=m?m:4;z=null!=z?z:!0;g=document.createElement("div");g.style.whiteSpace="nowrap";null==b&&a.addLanguageMenu(g);var H=document.createElement("h2");mxUtils.write(H,e||mxResources.get("create"));H.style.marginTop="0px";H.style.marginBottom=
-"24px";g.appendChild(H);mxUtils.write(g,mxResources.get("filename")+":");var y=document.createElement("input");y.setAttribute("value",c);y.style.width="280px";y.style.marginLeft="10px";y.style.marginBottom="20px";y.style.maxWidth="70%";this.init=function(){y.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?y.select():document.execCommand("selectAll",!1,null)};g.appendChild(y);null!=t&&g.appendChild(FilenameDialog.createTypeHint(a,y,t));null==p||null==u||"image/"!=
-u.substring(0,6)||"image/svg"==u.substring(0,9)&&!mxClient.IS_SVG||(y.style.width="160px",e=document.createElement("img"),p=v?p:btoa(unescape(encodeURIComponent(p))),e.setAttribute("src","data:"+u+";base64,"+p),e.style.position="absolute",e.style.top="70px",e.style.right="100px",e.style.maxWidth="120px",e.style.maxHeight="80px",mxUtils.setPrefixedStyle(e.style,"transform","translate(50%,-50%)"),g.appendChild(e),n&&Editor.popupsAllowed&&(e.style.cursor="pointer",mxEvent.addGestureListeners(e,null,
-null,function(){C("_blank")})));mxUtils.br(g);var B=document.createElement("div");B.style.textAlign="center";var A=0;B.style.marginTop="6px";g.appendChild(B);var D=document.createElement("select");D.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(u,mxResources.get("googleDrive")),D.appendChild(u),x(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),
-App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(u,mxResources.get("oneDrive")),D.appendChild(u),a.mode==App.MODE_ONEDRIVE&&u.setAttribute("selected","selected"),x(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(u,
-mxResources.get("dropbox")),D.appendChild(u),a.mode==App.MODE_DROPBOX&&u.setAttribute("selected","selected"),x(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_GITHUB),mxUtils.write(u,mxResources.get("github")),D.appendChild(u),x(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.gitLab&&(u=document.createElement("option"),u.setAttribute("value",
-App.MODE_GITLAB),mxUtils.write(u,mxResources.get("gitlab")),D.appendChild(u),x(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_TRELLO),mxUtils.write(u,mxResources.get("trello")),D.appendChild(u),x(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));Editor.useLocalStorage&&"device"!=urlParams.storage&&null==a.getCurrentFile()||
-(u=document.createElement("option"),u.setAttribute("value",App.MODE_DEVICE),mxUtils.write(u,mxResources.get("device")),D.appendChild(u),a.mode!=App.MODE_DEVICE&&l||u.setAttribute("selected","selected"),f&&x(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE));l&&isLocalStorage&&"0"!=urlParams.browser&&(l=document.createElement("option"),l.setAttribute("value",App.MODE_BROWSER),mxUtils.write(l,mxResources.get("browser")),D.appendChild(l),a.mode==App.MODE_BROWSER&&l.setAttribute("selected",
-"selected"),x(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));l=document.createElement("div");l.style.marginTop="26px";l.style.textAlign="center";null!=q&&(f=mxUtils.button(mxResources.get("help"),function(){a.openLink(q)}),f.className="geBtn",l.appendChild(f));f=mxUtils.button(mxResources.get("cancel"),function(){null!=b?b():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});f.className="geBtn";a.editor.cancelFirst&&l.appendChild(f);
-null==b&&(u=mxUtils.button(mxResources.get("decideLater"),function(){C(null)}),u.className="geBtn",l.appendChild(u));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"),function(){C("_blank")}),n.className="geBtn",l.appendChild(n));CreateDialog.showDownloadButton&&(n=mxUtils.button(mxResources.get("download"),function(){C("download")}),n.className="geBtn",l.appendChild(n));a.editor.cancelFirst||l.appendChild(f);mxEvent.addListener(y,"keypress",function(b){13==b.keyCode?C(App.MODE_DEVICE):
+"1");g.style.color="gray";g.style.fontSize="11px";var u=document.createElement("div");g.appendChild(u);mxUtils.write(u,e);if(null!=p&&null==a[p]){t.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(g);var l=window.setTimeout(function(){null==a[p]&&(v.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=
+a[p]&&(window.clearTimeout(l),mxUtils.setOpacity(u,100),t.style.visibility="",v.stop(),f())}))}else f();C.appendChild(g);++A==m&&(mxUtils.br(C),A=0)}function B(b){var e=x.value;if(null==b||null!=e&&0<e.length)y&&a.hideDialog(),d(e,b,x)}k=null!=k?k:!0;l=null!=l?l:!0;m=null!=m?m:4;y=null!=y?y:!0;g=document.createElement("div");g.style.whiteSpace="nowrap";null==b&&a.addLanguageMenu(g);var G=document.createElement("h2");mxUtils.write(G,f||mxResources.get("create"));G.style.marginTop="0px";G.style.marginBottom=
+"24px";g.appendChild(G);mxUtils.write(g,mxResources.get("filename")+":");var x=document.createElement("input");x.setAttribute("value",c);x.style.width="280px";x.style.marginLeft="10px";x.style.marginBottom="20px";x.style.maxWidth="70%";this.init=function(){x.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?x.select():document.execCommand("selectAll",!1,null)};g.appendChild(x);null!=t&&g.appendChild(FilenameDialog.createTypeHint(a,x,t));null==p||null==u||"image/"!=
+u.substring(0,6)||"image/svg"==u.substring(0,9)&&!mxClient.IS_SVG||(x.style.width="160px",f=document.createElement("img"),p=v?p:btoa(unescape(encodeURIComponent(p))),f.setAttribute("src","data:"+u+";base64,"+p),f.style.position="absolute",f.style.top="70px",f.style.right="100px",f.style.maxWidth="120px",f.style.maxHeight="80px",mxUtils.setPrefixedStyle(f.style,"transform","translate(50%,-50%)"),g.appendChild(f),n&&Editor.popupsAllowed&&(f.style.cursor="pointer",mxEvent.addGestureListeners(f,null,
+null,function(){B("_blank")})));mxUtils.br(g);var C=document.createElement("div");C.style.textAlign="center";var A=0;C.style.marginTop="6px";g.appendChild(C);var D=document.createElement("select");D.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(u,mxResources.get("googleDrive")),D.appendChild(u),z(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),
+App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(u,mxResources.get("oneDrive")),D.appendChild(u),a.mode==App.MODE_ONEDRIVE&&u.setAttribute("selected","selected"),z(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(u,
+mxResources.get("dropbox")),D.appendChild(u),a.mode==App.MODE_DROPBOX&&u.setAttribute("selected","selected"),z(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_GITHUB),mxUtils.write(u,mxResources.get("github")),D.appendChild(u),z(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.gitLab&&(u=document.createElement("option"),u.setAttribute("value",
+App.MODE_GITLAB),mxUtils.write(u,mxResources.get("gitlab")),D.appendChild(u),z(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_TRELLO),mxUtils.write(u,mxResources.get("trello")),D.appendChild(u),z(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));Editor.useLocalStorage&&"device"!=urlParams.storage&&null==a.getCurrentFile()||
+(u=document.createElement("option"),u.setAttribute("value",App.MODE_DEVICE),mxUtils.write(u,mxResources.get("device")),D.appendChild(u),a.mode!=App.MODE_DEVICE&&l||u.setAttribute("selected","selected"),e&&z(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE));l&&isLocalStorage&&"0"!=urlParams.browser&&(l=document.createElement("option"),l.setAttribute("value",App.MODE_BROWSER),mxUtils.write(l,mxResources.get("browser")),D.appendChild(l),a.mode==App.MODE_BROWSER&&l.setAttribute("selected",
+"selected"),z(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));l=document.createElement("div");l.style.marginTop="26px";l.style.textAlign="center";null!=q&&(e=mxUtils.button(mxResources.get("help"),function(){a.openLink(q)}),e.className="geBtn",l.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){null!=b?b():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});e.className="geBtn";a.editor.cancelFirst&&l.appendChild(e);
+null==b&&(u=mxUtils.button(mxResources.get("decideLater"),function(){B(null)}),u.className="geBtn",l.appendChild(u));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"),function(){B("_blank")}),n.className="geBtn",l.appendChild(n));CreateDialog.showDownloadButton&&(n=mxUtils.button(mxResources.get("download"),function(){B("download")}),n.className="geBtn",l.appendChild(n));a.editor.cancelFirst||l.appendChild(e);mxEvent.addListener(x,"keypress",function(b){13==b.keyCode?B(App.MODE_DEVICE):
27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});g.appendChild(l);this.container=g};CreateDialog.showDownloadButton=!0;
-var PopupDialog=function(a,c,d,b,e){e=null!=e?e:!0;var g=document.createElement("div");g.style.textAlign="left";mxUtils.write(g,mxResources.get("fileOpenLocation"));mxUtils.br(g);mxUtils.br(g);var k=mxUtils.button(mxResources.get("openInThisWindow"),function(){e&&a.hideDialog();null!=b&&b()});k.className="geBtn";k.style.marginBottom="8px";k.style.width="280px";g.appendChild(k);mxUtils.br(g);var l=mxUtils.button(mxResources.get("openInNewWindow"),function(){e&&a.hideDialog();null!=d&&d();a.openLink(c,
-null,!0)});l.className="geBtn gePrimaryBtn";l.style.width=k.style.width;g.appendChild(l);mxUtils.br(g);mxUtils.br(g);mxUtils.write(g,mxResources.get("allowPopups"));this.container=g},ImageDialog=function(a,c,d,b,e,g){g=null!=g?g:!0;var k=a.editor.graph,l=document.createElement("div");mxUtils.write(l,c);c=document.createElement("div");c.className="geTitle";c.style.backgroundColor="transparent";c.style.borderColor="transparent";c.style.whiteSpace="nowrap";c.style.textOverflow="clip";c.style.cursor=
+var PopupDialog=function(a,c,d,b,f){f=null!=f?f:!0;var g=document.createElement("div");g.style.textAlign="left";mxUtils.write(g,mxResources.get("fileOpenLocation"));mxUtils.br(g);mxUtils.br(g);var k=mxUtils.button(mxResources.get("openInThisWindow"),function(){f&&a.hideDialog();null!=b&&b()});k.className="geBtn";k.style.marginBottom="8px";k.style.width="280px";g.appendChild(k);mxUtils.br(g);var l=mxUtils.button(mxResources.get("openInNewWindow"),function(){f&&a.hideDialog();null!=d&&d();a.openLink(c,
+null,!0)});l.className="geBtn gePrimaryBtn";l.style.width=k.style.width;g.appendChild(l);mxUtils.br(g);mxUtils.br(g);mxUtils.write(g,mxResources.get("allowPopups"));this.container=g},ImageDialog=function(a,c,d,b,f,g){g=null!=g?g:!0;var k=a.editor.graph,l=document.createElement("div");mxUtils.write(l,c);c=document.createElement("div");c.className="geTitle";c.style.backgroundColor="transparent";c.style.borderColor="transparent";c.style.whiteSpace="nowrap";c.style.textOverflow="clip";c.style.cursor=
"default";mxClient.IS_VML||(c.style.paddingRight="20px");var n=document.createElement("input");n.setAttribute("value",d);n.setAttribute("type","text");n.setAttribute("spellcheck","false");n.setAttribute("autocorrect","off");n.setAttribute("autocomplete","off");n.setAttribute("autocapitalize","off");n.style.marginTop="6px";n.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";
n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";d=document.createElement("div");d.setAttribute("title",mxResources.get("reset"));d.style.position="relative";d.style.left="-16px";d.style.width="12px";d.style.height="14px";d.style.cursor="pointer";d.style.display=mxClient.IS_VML?"inline":"inline-block";d.style.top=(mxClient.IS_VML?0:3)+"px";d.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(d,"click",function(){n.value="";n.focus()});c.appendChild(n);c.appendChild(d);
-l.appendChild(c);var q=function(c,f,d,m){var p="data:"==c.substring(0,5);!a.isOffline()||p&&"undefined"===typeof chrome?0<c.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(c,function(p){a.spinner.stop();a.hideDialog();var e=!1===m?1:null!=f&&null!=d?Math.max(f/p.width,d/p.height):Math.min(1,Math.min(520/p.width,520/p.height));g&&(c=a.convertDataUri(c));b(c,Math.round(Number(p.width)*e),Math.round(Number(p.height)*e))},function(){a.spinner.stop();b(null);a.showError(mxResources.get("error"),
-mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(),b(c)):(c=a.convertDataUri(c),f=null==f?120:f,d=null==d?100:d,a.hideDialog(),b(c,f,d))},f=function(c,f){if(null!=c){var d=e?null:k.getModel().getGeometry(k.getSelectionCell());null!=d?q(c,d.width,d.height,f):q(c,null,null,f)}else a.hideDialog(),b(null)};this.init=function(){n.focus();if(Graph.fileSupport){n.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=l.parentNode,c=null;mxEvent.addListener(b,"dragleave",
-function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,m,p,e,g){f(a,
-g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(d)&&f(decodeURIComponent(d))}b.stopPropagation();b.preventDefault()}),!1)}};d=document.createElement("div");d.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";d.style.textAlign="center";c=mxUtils.button(mxResources.get("cancel"),
+l.appendChild(c);var q=function(e,c,d,m){var p="data:"==e.substring(0,5);!a.isOffline()||p&&"undefined"===typeof chrome?0<e.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(e,function(p){a.spinner.stop();a.hideDialog();var f=!1===m?1:null!=c&&null!=d?Math.max(c/p.width,d/p.height):Math.min(1,Math.min(520/p.width,520/p.height));g&&(e=a.convertDataUri(e));b(e,Math.round(Number(p.width)*f),Math.round(Number(p.height)*f))},function(){a.spinner.stop();b(null);a.showError(mxResources.get("error"),
+mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(),b(e)):(e=a.convertDataUri(e),c=null==c?120:c,d=null==d?100:d,a.hideDialog(),b(e,c,d))},e=function(e,c){if(null!=e){var d=f?null:k.getModel().getGeometry(k.getSelectionCell());null!=d?q(e,d.width,d.height,c):q(e,null,null,c)}else a.hideDialog(),b(null)};this.init=function(){n.focus();if(Graph.fileSupport){n.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=l.parentNode,c=null;mxEvent.addListener(b,"dragleave",
+function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(e){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));e.stopPropagation();e.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,m,p,f,g){e(a,
+g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(d)&&e(decodeURIComponent(d))}b.stopPropagation();b.preventDefault()}),!1)}};d=document.createElement("div");d.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";d.style.textAlign="center";c=mxUtils.button(mxResources.get("cancel"),
function(){a.spinner.stop();a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&d.appendChild(c);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(n.value=a.url));n.focus()};if(Graph.fileSupport){if(null==a.imgDlgFileInputElt){var m=document.createElement("input");m.setAttribute("multiple","multiple");m.setAttribute("type","file");mxEvent.addListener(m,"change",function(b){null!=
-m.files&&(a.importFiles(m.files,0,0,a.maxImageSize,function(a,b,c,d,m,p){f(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0),m.type="",m.type="file",m.value="")});m.style.display="none";document.body.appendChild(m);a.imgDlgFileInputElt=m}var p=mxUtils.button(mxResources.get("open"),function(){a.imgDlgFileInputElt.click()});p.className="geBtn";d.appendChild(p)}document.createElement("canvas").getContext&&"data:image/"==n.value.substring(0,
+m.files&&(a.importFiles(m.files,0,0,a.maxImageSize,function(a,b,c,d,m,p){e(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0),m.type="",m.type="file",m.value="")});m.style.display="none";document.body.appendChild(m);a.imgDlgFileInputElt=m}var p=mxUtils.button(mxResources.get("open"),function(){a.imgDlgFileInputElt.click()});p.className="geBtn";d.appendChild(p)}document.createElement("canvas").getContext&&"data:image/"==n.value.substring(0,
11)&&"data:image/svg"!=n.value.substring(0,14)&&(p=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,n.value,function(a){n.value=a});a.showDialog(b.container,300,380,!0,!0);b.init()}),p.className="geBtn",d.appendChild(p));"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(p=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);
a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)}),p.className="geBtn",d.appendChild(p),null!=a.drive&&"1"==urlParams.photos&&(p=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(a.drive.token).addView(google.picker.ViewId.PHOTO_UPLOAD);
-a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),p.className="geBtn",d.appendChild(p)));mxEvent.addListener(n,"keypress",function(a){13==a.keyCode&&f(n.value)});p=mxUtils.button(mxResources.get("apply"),function(){f(n.value)});p.className="geBtn gePrimaryBtn";d.appendChild(p);a.editor.cancelFirst||d.appendChild(c);Graph.fileSupport&&(d.style.marginTop="120px",l.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",l.style.backgroundPosition=
-"center 65%",l.style.backgroundRepeat="no-repeat",c=document.createElement("div"),c.style.position="absolute",c.style.width="420px",c.style.top="58%",c.style.textAlign="center",c.style.fontSize="18px",c.style.color="#a0c3ff",mxUtils.write(c,mxResources.get("dragImagesHere")),l.appendChild(c));l.appendChild(d);this.container=l},LinkDialog=function(a,c,d,b,e){function g(a,b,c){c=mxUtils.button("",c);c.className="geBtn";c.setAttribute("title",b);b=document.createElement("img");b.style.height="26px";
-b.style.width="26px";b.setAttribute("src",a);c.style.minWidth="42px";c.style.verticalAlign="middle";c.appendChild(b);z.appendChild(c)}var k=document.createElement("div");mxUtils.write(k,mxResources.get("editLink")+":");var l=document.createElement("div");l.className="geTitle";l.style.backgroundColor="transparent";l.style.borderColor="transparent";l.style.whiteSpace="nowrap";l.style.textOverflow="clip";l.style.cursor="default";mxClient.IS_VML||(l.style.paddingRight="20px");var n=document.createElement("input");
+a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),p.className="geBtn",d.appendChild(p)));mxEvent.addListener(n,"keypress",function(a){13==a.keyCode&&e(n.value)});p=mxUtils.button(mxResources.get("apply"),function(){e(n.value)});p.className="geBtn gePrimaryBtn";d.appendChild(p);a.editor.cancelFirst||d.appendChild(c);Graph.fileSupport&&(d.style.marginTop="120px",l.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",l.style.backgroundPosition=
+"center 65%",l.style.backgroundRepeat="no-repeat",c=document.createElement("div"),c.style.position="absolute",c.style.width="420px",c.style.top="58%",c.style.textAlign="center",c.style.fontSize="18px",c.style.color="#a0c3ff",mxUtils.write(c,mxResources.get("dragImagesHere")),l.appendChild(c));l.appendChild(d);this.container=l},LinkDialog=function(a,c,d,b,f){function g(a,b,e){e=mxUtils.button("",e);e.className="geBtn";e.setAttribute("title",b);b=document.createElement("img");b.style.height="26px";
+b.style.width="26px";b.setAttribute("src",a);e.style.minWidth="42px";e.style.verticalAlign="middle";e.appendChild(b);y.appendChild(e)}var k=document.createElement("div");mxUtils.write(k,mxResources.get("editLink")+":");var l=document.createElement("div");l.className="geTitle";l.style.backgroundColor="transparent";l.style.borderColor="transparent";l.style.whiteSpace="nowrap";l.style.textOverflow="clip";l.style.cursor="default";mxClient.IS_VML||(l.style.paddingRight="20px");var n=document.createElement("input");
n.setAttribute("placeholder",mxResources.get("dragUrlsHere"));n.setAttribute("type","text");n.style.marginTop="6px";n.style.width="100%";n.style.boxSizing="border-box";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";var q=document.createElement("div");q.setAttribute("title",mxResources.get("reset"));q.style.position="relative";q.style.left="-16px";q.style.width="12px";q.style.height=
-"14px";q.style.cursor="pointer";q.style.display=mxClient.IS_VML?"inline":"inline-block";q.style.top=(mxClient.IS_VML?0:3)+"px";q.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(q,"click",function(){n.value="";n.focus()});var f=document.createElement("input");f.style.cssText="margin-right:8px;margin-bottom:8px;";f.setAttribute("value","url");f.setAttribute("type","radio");f.setAttribute("name","current-linkdialog");var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";
-m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","current-linkdialog");var p=document.createElement("select");p.style.width="100%";if(e&&null!=a.pages){null!=c&&"data:page/id,"==c.substring(0,13)?(m.setAttribute("checked","checked"),m.defaultChecked=!0):(n.setAttribute("value",c),f.setAttribute("checked","checked"),f.defaultChecked=!0);l.appendChild(f);l.appendChild(n);l.appendChild(q);mxUtils.br(l);l.appendChild(m);e=!1;for(q=0;q<a.pages.length;q++){var u=document.createElement("option");
-mxUtils.write(u,a.pages[q].getName()||mxResources.get("pageWithNumber",[q+1]));u.setAttribute("value","data:page/id,"+a.pages[q].getId());c==u.getAttribute("value")&&(u.setAttribute("selected","selected"),e=!0);p.appendChild(u)}if(!e&&m.checked){var v=document.createElement("option");mxUtils.write(v,mxResources.get("pageNotFound"));v.setAttribute("disabled","disabled");v.setAttribute("selected","selected");v.setAttribute("value","pageNotFound");p.appendChild(v);mxEvent.addListener(p,"change",function(){null==
+"14px";q.style.cursor="pointer";q.style.display=mxClient.IS_VML?"inline":"inline-block";q.style.top=(mxClient.IS_VML?0:3)+"px";q.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(q,"click",function(){n.value="";n.focus()});var e=document.createElement("input");e.style.cssText="margin-right:8px;margin-bottom:8px;";e.setAttribute("value","url");e.setAttribute("type","radio");e.setAttribute("name","current-linkdialog");var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";
+m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","current-linkdialog");var p=document.createElement("select");p.style.width="100%";if(f&&null!=a.pages){null!=c&&"data:page/id,"==c.substring(0,13)?(m.setAttribute("checked","checked"),m.defaultChecked=!0):(n.setAttribute("value",c),e.setAttribute("checked","checked"),e.defaultChecked=!0);l.appendChild(e);l.appendChild(n);l.appendChild(q);mxUtils.br(l);l.appendChild(m);f=!1;for(q=0;q<a.pages.length;q++){var u=document.createElement("option");
+mxUtils.write(u,a.pages[q].getName()||mxResources.get("pageWithNumber",[q+1]));u.setAttribute("value","data:page/id,"+a.pages[q].getId());c==u.getAttribute("value")&&(u.setAttribute("selected","selected"),f=!0);p.appendChild(u)}if(!f&&m.checked){var v=document.createElement("option");mxUtils.write(v,mxResources.get("pageNotFound"));v.setAttribute("disabled","disabled");v.setAttribute("selected","selected");v.setAttribute("value","pageNotFound");p.appendChild(v);mxEvent.addListener(p,"change",function(){null==
v.parentNode||v.selected||v.parentNode.removeChild(v)})}l.appendChild(p)}else n.setAttribute("value",c),l.appendChild(n),l.appendChild(q);k.appendChild(l);var t=mxUtils.button(d,function(){a.hideDialog();b(m.checked?"pageNotFound"!==p.value?p.value:c:n.value,LinkDialog.selectedDocs)});t.style.verticalAlign="middle";t.className="geBtn gePrimaryBtn";this.init=function(){m.checked?p.focus():(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",
-!1,null));mxEvent.addListener(p,"focus",function(){f.removeAttribute("checked");m.setAttribute("checked","checked");m.checked=!0});mxEvent.addListener(n,"focus",function(){m.removeAttribute("checked");f.setAttribute("checked","checked");f.checked=!0});if(Graph.fileSupport){var b=k.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(f){null==
-c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(n.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),f.setAttribute("checked","checked"),f.checked=!0,t.click());a.stopPropagation();a.preventDefault()}),!1)}};var z=document.createElement("div");z.style.marginTop=
-"20px";z.style.textAlign="center";d=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});d.style.verticalAlign="middle";d.className="geBtn";z.appendChild(d);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(d.style.display="none");d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&z.appendChild(d);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==
+!1,null));mxEvent.addListener(p,"focus",function(){e.removeAttribute("checked");m.setAttribute("checked","checked");m.checked=!0});mxEvent.addListener(n,"focus",function(){m.removeAttribute("checked");e.setAttribute("checked","checked");e.checked=!0});if(Graph.fileSupport){var b=k.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(e){null==
+c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));e.stopPropagation();e.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(n.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),e.setAttribute("checked","checked"),e.checked=!0,t.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div");y.style.marginTop=
+"20px";y.style.textAlign="center";d=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});d.style.verticalAlign="middle";d.className="geBtn";y.appendChild(d);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(d.style.display="none");d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&y.appendChild(d);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==
google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||null!=a.docs[0].mimeType&&"application/vnd.jgraph."==a.docs[0].mimeType.substring(0,23)?b="https://www.draw.io/#G"+a.docs[0].id:"application/vnd.google-apps.folder"==a.docs[0].mimeType&&(b="https://drive.google.com/#folders/"+a.docs[0].id);n.value=b;n.focus()}else LinkDialog.selectedDocs=null;n.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&
-g(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.linkPicker){var b=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),c=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),f=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0),
-b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(a.drive.token).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(b).addView(c).addView(f).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS);"1"==urlParams.photos&&b.addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});
+g(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.linkPicker){var b=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),e=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),c=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0),
+b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(a.drive.token).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(b).addView(e).addView(c).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS);"1"==urlParams.photos&&b.addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});
"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&g(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){n.value=a[0].link;n.focus()}})});null!=a.oneDrive&&g(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,b){n.value=b.value[0].webUrl;n.focus()})});null!=a.gitHub&&g(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=
-a){a=a.split("/");var b=a[0],c=a[1],f=a[2];a=a.slice(3,a.length).join("/");n.value="https://github.com/"+b+"/"+c+"/blob/"+f+"/"+a;n.focus()}})});null!=a.gitLab&&g(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){a.gitLab.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],c=a[1],f=a[2];a=a.slice(3,a.length).join("/");n.value=DRAWIO_GITLAB_URL+"/"+b+"/"+c+"/blob/"+f+"/"+a;n.focus()}})});mxEvent.addListener(n,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),b(m.checked?
-p.value:n.value,LinkDialog.selectedDocs))});z.appendChild(t);a.editor.cancelFirst||z.appendChild(d);k.appendChild(z);this.container=k},AboutDialog=function(a){var c=document.createElement("div");c.style.marginTop="6px";c.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):(d.setAttribute("width",
+a){a=a.split("/");var b=a[0],e=a[1],c=a[2];a=a.slice(3,a.length).join("/");n.value="https://github.com/"+b+"/"+e+"/blob/"+c+"/"+a;n.focus()}})});null!=a.gitLab&&g(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){a.gitLab.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],e=a[1],c=a[2];a=a.slice(3,a.length).join("/");n.value=DRAWIO_GITLAB_URL+"/"+b+"/"+e+"/blob/"+c+"/"+a;n.focus()}})});mxEvent.addListener(n,"keypress",function(e){13==e.keyCode&&(a.hideDialog(),b(m.checked?
+p.value:n.value,LinkDialog.selectedDocs))});y.appendChild(t);a.editor.cancelFirst||y.appendChild(d);k.appendChild(y);this.container=k},AboutDialog=function(a){var c=document.createElement("div");c.style.marginTop="6px";c.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):(d.setAttribute("width",
"176"),d.setAttribute("height","219"),d.style.width="170px",d.style.height="219px",d.setAttribute("src",IMAGE_PATH+"/logo-flat.png"));"dark"==uiTheme&&(d.style.filter="grayscale(100%) invert(100%)");c.appendChild(d);mxUtils.br(c);var d="dark"==uiTheme?"#cccccc":"#505050",b=document.createElement("small");b.innerHTML="v "+EditorUi.VERSION;b.style.color=d;c.appendChild(b);mxUtils.br(c);mxUtils.br(c);b=document.createElement("small");b.style.color=d;b.innerHTML='&copy; 2005-2020 <a href="https://about.draw.io/" style="color:inherit;" target="_blank">JGraph Ltd</a>.<br>All Rights Reserved.';
c.appendChild(b);mxEvent.addListener(c,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=c},FeedbackDialog=function(a){var c=document.createElement("div"),d=document.createElement("div");mxUtils.write(d,mxResources.get("sendYourFeedbackToDrawIo"));d.style.fontSize="18px";d.style.marginBottom="18px";c.appendChild(d);d=document.createElement("div");mxUtils.write(d,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");c.appendChild(d);var b=document.createElement("input");
-b.setAttribute("type","text");b.style.marginTop="6px";b.style.width="600px";var e=mxUtils.button(mxResources.get("sendMessage"),function(){var c=n.value+(k.checked?"\nDiagram:\n"+mxUtils.getXml(a.getXmlFileData()):"")+"\nBrowser:\n"+navigator.userAgent;c.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(b.value)+
-"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+c),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});e.className="geBtn gePrimaryBtn";e.setAttribute("disabled","disabled");var g=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-mxEvent.addListener(b,"change",function(){0<b.value.length&&0<g.test(b.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});mxEvent.addListener(b,"keyup",function(){0<b.value.length&&g.test(b.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});c.appendChild(b);this.init=function(){b.focus()};var k=document.createElement("input");k.setAttribute("type","checkbox");k.setAttribute("checked","checked");k.defaultChecked=!0;d=document.createElement("p");d.style.marginTop=
+b.setAttribute("type","text");b.style.marginTop="6px";b.style.width="600px";var f=mxUtils.button(mxResources.get("sendMessage"),function(){var c=n.value+(k.checked?"\nDiagram:\n"+mxUtils.getXml(a.getXmlFileData()):"")+"\nBrowser:\n"+navigator.userAgent;c.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(b.value)+
+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+c),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});f.className="geBtn gePrimaryBtn";f.setAttribute("disabled","disabled");var g=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+mxEvent.addListener(b,"change",function(){0<b.value.length&&0<g.test(b.value)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});mxEvent.addListener(b,"keyup",function(){0<b.value.length&&g.test(b.value)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});c.appendChild(b);this.init=function(){b.focus()};var k=document.createElement("input");k.setAttribute("type","checkbox");k.setAttribute("checked","checked");k.defaultChecked=!0;d=document.createElement("p");d.style.marginTop=
"14px";d.appendChild(k);var l=document.createElement("span");mxUtils.write(l," "+mxResources.get("includeCopyOfMyDiagram"));d.appendChild(l);mxEvent.addListener(l,"click",function(a){k.checked=!k.checked;mxEvent.consume(a)});c.appendChild(d);d=document.createElement("div");mxUtils.write(d,mxResources.get("feedback"));c.appendChild(d);var n=document.createElement("textarea");n.style.resize="none";n.style.width="600px";n.style.height="140px";n.style.marginTop="6px";n.setAttribute("placeholder",mxResources.get("comments"));
-c.appendChild(n);d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst?(d.appendChild(l),d.appendChild(e)):(d.appendChild(e),d.appendChild(l));c.appendChild(d);this.container=c};FeedbackDialog.maxAttachmentSize=1E6;
-var RevisionDialog=function(a,c,d){var b=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("revisionHistory"));b.appendChild(e);var g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";b.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.border="1px solid lightGray";k.style.left="199px";k.style.width="470px";k.style.height=
-"376px";k.style.overflow="hidden";mxEvent.disableContextMenu(k);b.appendChild(k);var l=new Graph(k);l.setTooltips(!1);l.setEnabled(!1);l.setPanning(!0);l.panningHandler.ignoreCell=!0;l.panningHandler.useLeftButtonForPanning=!0;l.minFitScale=null;l.maxFitScale=null;l.centerZoom=!0;var n=0,q=null,f=0,m=l.getGlobalVariable;l.getGlobalVariable=function(a){return"page"==a&&null!=q&&null!=q[f]?q[f].getAttribute("name"):"pagenumber"==a?f+1:"pagecount"==a?null!=q?q.length:1:m.apply(this,arguments)};l.getLinkForCell=
-function(){return null};Editor.MathJaxRender&&l.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(l.container)}));var p=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),u=a.getCurrentFile(),v=null,t=null,z=null,x=null,C=mxUtils.button("",function(){null!=z&&l.zoomIn()});C.className="geSprite geSprite-zoomin";
-C.setAttribute("title",mxResources.get("zoomIn"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var H=mxUtils.button("",function(){null!=z&&l.zoomOut()});H.className="geSprite geSprite-zoomout";H.setAttribute("title",mxResources.get("zoomOut"));H.style.outline="none";H.style.border="none";H.style.margin="2px";H.setAttribute("disabled","disabled");mxUtils.setOpacity(H,20);var y=mxUtils.button("",function(){null!=z&&
-(l.maxFitScale=8,l.fit(8),l.center())});y.className="geSprite geSprite-fit";y.setAttribute("title",mxResources.get("fit"));y.style.outline="none";y.style.border="none";y.style.margin="2px";y.setAttribute("disabled","disabled");mxUtils.setOpacity(y,20);var B=mxUtils.button("",function(){null!=z&&(l.zoomActual(),l.center())});B.className="geSprite geSprite-actualsize";B.setAttribute("title",mxResources.get("actualSize"));B.style.outline="none";B.style.border="none";B.style.margin="2px";B.setAttribute("disabled",
-"disabled");mxUtils.setOpacity(B,20);var A=document.createElement("div");A.style.position="absolute";A.style.textAlign="right";A.style.color="gray";A.style.marginTop="10px";A.style.backgroundColor="transparent";A.style.top="440px";A.style.right="32px";A.style.maxWidth="380px";A.style.cursor="default";var D=mxUtils.button(mxResources.get("download"),function(){if(null!=z){var b=mxUtils.getXml(z.documentElement),c=a.getBaseFilename()+".drawio";a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml"):(b=
-"undefined"===typeof pako?"&xml="+encodeURIComponent(b):"&data="+encodeURIComponent(Graph.compress(b)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml"+b)).simulate(document,"_blank"))}});D.className="geBtn";D.setAttribute("disabled","disabled");var F=mxUtils.button(mxResources.get("restore"),function(){null!=z&&null!=x&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(x):a.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(b){a.spinner.stop();
-a.replaceFileData(x);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});F.className="geBtn";F.setAttribute("disabled","disabled");var I=document.createElement("select");I.setAttribute("disabled","disabled");I.style.maxWidth="80px";I.style.position="relative";I.style.top="-2px";I.style.verticalAlign="bottom";I.style.marginRight="6px";I.style.display="none";var K=null;mxEvent.addListener(I,"change",function(a){null!=
-K&&(K(a),mxEvent.consume(a))});var G=mxUtils.button(mxResources.get("edit"),function(){null!=z&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(z.documentElement)),a.openLink(a.getUrl(),null,!0))});G.className="geBtn";G.setAttribute("disabled","disabled");null!=d&&(G.style.display="none");var E=mxUtils.button(mxResources.get("show"),function(){null!=t&&a.openLink(t.getUrl(I.selectedIndex))});E.className="geBtn gePrimaryBtn";E.setAttribute("disabled",
-"disabled");null!=d&&(E.style.display="none",F.className="geBtn gePrimaryBtn");e=document.createElement("div");e.style.position="absolute";e.style.top="482px";e.style.width="640px";e.style.textAlign="right";var J=document.createElement("div");J.className="geToolbarContainer";J.style.backgroundColor="transparent";J.style.padding="2px";J.style.border="none";J.style.left="199px";J.style.top="442px";var N=null;if(null!=c&&0<c.length){k.style.cursor="move";var R=document.createElement("table");R.style.border=
-"1px solid lightGray";R.style.borderCollapse="collapse";R.style.borderSpacing="0px";R.style.width="100%";var W=document.createElement("tbody"),T=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(n=mxUtils.indexOf(a.pages,a.currentPage));for(var L=c.length-1;0<=L;L--){var V=function(b){var d=new Date(b.modifiedDate),m=null;if(0<=d.getTime()){var g=function(c){p.stop();var e=mxUtils.parseXml(c),g=a.editor.extractGraphModel(e.documentElement,!0);if(null!=g){var t=function(a){null!=a&&(a=
-v(mxUtils.parseXml(Graph.decompress(mxUtils.getTextContent(a))).documentElement));return a},v=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";k.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};I.style.display="none";I.innerHTML="";z=e;x=c;q=parseSelectFunction=null;f=0;if("mxfile"==g.nodeName){e=g.getElementsByTagName("diagram");q=[];for(c=0;c<e.length;c++)q.push(e[c]);f=Math.min(n,
-q.length-1);0<q.length&&t(q[f]);if(1<q.length)for(I.removeAttribute("disabled"),I.style.display="",c=0;c<q.length;c++)e=document.createElement("option"),mxUtils.write(e,q[c].getAttribute("name")||mxResources.get("pageWithNumber",[c+1])),e.setAttribute("value",c),c==f&&e.setAttribute("selected","selected"),I.appendChild(e);K=function(){try{var b=parseInt(I.value);f=n=b;t(q[b])}catch(M){I.value=n,a.handleError(M)}}}else v(g);c=b.lastModifyingUserName;null!=c&&20<c.length&&(c=c.substring(0,20)+"...");
-A.innerHTML="";mxUtils.write(A,(null!=c?c+" ":"")+d.toLocaleDateString()+" "+d.toLocaleTimeString());A.setAttribute("title",m.getAttribute("title"));C.removeAttribute("disabled");H.removeAttribute("disabled");y.removeAttribute("disabled");B.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&F.removeAttribute("disabled"),D.removeAttribute("disabled"),E.removeAttribute("disabled"),G.removeAttribute("disabled"));mxUtils.setOpacity(C,60);mxUtils.setOpacity(H,60);mxUtils.setOpacity(y,
-60);mxUtils.setOpacity(B,60)}else I.style.display="none",I.innerHTML="",A.innerHTML="",mxUtils.write(A,mxResources.get("errorLoadingFile"))},m=document.createElement("tr");m.style.borderBottom="1px solid lightGray";m.style.fontSize="12px";m.style.cursor="pointer";var e=document.createElement("td");e.style.padding="6px";e.style.whiteSpace="nowrap";b==c[c.length-1]?mxUtils.write(e,mxResources.get("current")):d.toDateString()===T?mxUtils.write(e,d.toLocaleTimeString()):mxUtils.write(e,d.toLocaleDateString()+
-" "+d.toLocaleTimeString());m.appendChild(e);m.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+(null!=b.fileSize?" "+a.formatFileSize(parseInt(b.fileSize)):"")+(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(m,"click",function(a){t!=b&&(p.stop(),null!=v&&(v.style.backgroundColor=""),t=b,v=m,v.style.backgroundColor="#ebf2f9",x=z=null,A.removeAttribute("title"),A.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+"..."),k.style.backgroundColor=
-"#ffffff",l.getModel().clear(),F.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),y.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"),mxUtils.setOpacity(C,20),mxUtils.setOpacity(H,20),mxUtils.setOpacity(y,20),mxUtils.setOpacity(B,20),p.spin(k),b.getXml(function(a){if(t==
-b)try{g(a)}catch(ca){A.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+ca.message)}},function(a){p.stop();I.style.display="none";I.innerHTML="";A.innerHTML="";mxUtils.write(A,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(m,"dblclick",function(a){E.click();window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);W.appendChild(m)}return m}(c[L]);null!=V&&L==c.length-1&&(N=V)}R.appendChild(W);
-g.appendChild(R)}else null==u||null==a.drive&&u.constructor==window.DriveFile||null==a.dropbox&&u.constructor==window.DropboxFile?(k.style.display="none",J.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",J.style.display="none",mxUtils.write(g,mxResources.get("noRevisions")));this.init=function(){null!=N&&N.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";J.appendChild(I);J.appendChild(C);J.appendChild(H);
-J.appendChild(B);J.appendChild(y);a.editor.cancelFirst?(e.appendChild(g),e.appendChild(D),e.appendChild(G),e.appendChild(F),e.appendChild(E)):(e.appendChild(D),e.appendChild(G),e.appendChild(F),e.appendChild(E),e.appendChild(g));b.appendChild(e);b.appendChild(J);b.appendChild(A);this.container=b},DraftDialog=function(a,c,d,b,e,g,k,l){var n=document.createElement("div"),q=document.createElement("div");q.style.marginTop="0px";q.style.whiteSpace="nowrap";q.style.overflow="auto";mxUtils.write(q,c);n.appendChild(q);
-var f=document.createElement("div");f.style.position="absolute";f.style.border="1px solid lightGray";f.style.marginTop="10px";f.style.width="640px";f.style.top="46px";f.style.bottom="74px";f.style.overflow="hidden";mxEvent.disableContextMenu(f);n.appendChild(f);var m=new Graph(f);m.setEnabled(!1);m.setPanning(!0);m.panningHandler.ignoreCell=!0;m.panningHandler.useLeftButtonForPanning=!0;m.minFitScale=null;m.maxFitScale=null;m.centerZoom=!0;c=mxUtils.parseXml(d);var p=a.editor.extractGraphModel(c.documentElement,
+c.appendChild(n);d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst?(d.appendChild(l),d.appendChild(f)):(d.appendChild(f),d.appendChild(l));c.appendChild(d);this.container=c};FeedbackDialog.maxAttachmentSize=1E6;
+var RevisionDialog=function(a,c,d){var b=document.createElement("div"),f=document.createElement("h3");f.style.marginTop="0px";mxUtils.write(f,mxResources.get("revisionHistory"));b.appendChild(f);var g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";b.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.border="1px solid lightGray";k.style.left="199px";k.style.width="470px";k.style.height=
+"376px";k.style.overflow="hidden";mxEvent.disableContextMenu(k);b.appendChild(k);var l=new Graph(k);l.setTooltips(!1);l.setEnabled(!1);l.setPanning(!0);l.panningHandler.ignoreCell=!0;l.panningHandler.useLeftButtonForPanning=!0;l.minFitScale=null;l.maxFitScale=null;l.centerZoom=!0;var n=0,q=null,e=0,m=l.getGlobalVariable;l.getGlobalVariable=function(a){return"page"==a&&null!=q&&null!=q[e]?q[e].getAttribute("name"):"pagenumber"==a?e+1:"pagecount"==a?null!=q?q.length:1:m.apply(this,arguments)};l.getLinkForCell=
+function(){return null};Editor.MathJaxRender&&l.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,e){a.editor.graph.mathEnabled&&Editor.MathJaxRender(l.container)}));var p=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),u=a.getCurrentFile(),v=null,t=null,y=null,z=null,B=mxUtils.button("",function(){null!=y&&l.zoomIn()});B.className="geSprite geSprite-zoomin";
+B.setAttribute("title",mxResources.get("zoomIn"));B.style.outline="none";B.style.border="none";B.style.margin="2px";B.setAttribute("disabled","disabled");mxUtils.setOpacity(B,20);var G=mxUtils.button("",function(){null!=y&&l.zoomOut()});G.className="geSprite geSprite-zoomout";G.setAttribute("title",mxResources.get("zoomOut"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");mxUtils.setOpacity(G,20);var x=mxUtils.button("",function(){null!=y&&
+(l.maxFitScale=8,l.fit(8),l.center())});x.className="geSprite geSprite-fit";x.setAttribute("title",mxResources.get("fit"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var C=mxUtils.button("",function(){null!=y&&(l.zoomActual(),l.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled",
+"disabled");mxUtils.setOpacity(C,20);var A=document.createElement("div");A.style.position="absolute";A.style.textAlign="right";A.style.color="gray";A.style.marginTop="10px";A.style.backgroundColor="transparent";A.style.top="440px";A.style.right="32px";A.style.maxWidth="380px";A.style.cursor="default";var D=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var b=mxUtils.getXml(y.documentElement),e=a.getBaseFilename()+".drawio";a.isLocalFileSave()?a.saveLocalFile(b,e,"text/xml"):(b=
+"undefined"===typeof pako?"&xml="+encodeURIComponent(b):"&data="+encodeURIComponent(Graph.compress(b)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(e)+"&format=xml"+b)).simulate(document,"_blank"))}});D.className="geBtn";D.setAttribute("disabled","disabled");var F=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=z&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(z):a.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(b){a.spinner.stop();
+a.replaceFileData(z);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});F.className="geBtn";F.setAttribute("disabled","disabled");var I=document.createElement("select");I.setAttribute("disabled","disabled");I.style.maxWidth="80px";I.style.position="relative";I.style.top="-2px";I.style.verticalAlign="bottom";I.style.marginRight="6px";I.style.display="none";var J=null;mxEvent.addListener(I,"change",function(a){null!=
+J&&(J(a),mxEvent.consume(a))});var H=mxUtils.button(mxResources.get("edit"),function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),a.openLink(a.getUrl(),null,!0))});H.className="geBtn";H.setAttribute("disabled","disabled");null!=d&&(H.style.display="none");var E=mxUtils.button(mxResources.get("show"),function(){null!=t&&a.openLink(t.getUrl(I.selectedIndex))});E.className="geBtn gePrimaryBtn";E.setAttribute("disabled",
+"disabled");null!=d&&(E.style.display="none",F.className="geBtn gePrimaryBtn");f=document.createElement("div");f.style.position="absolute";f.style.top="482px";f.style.width="640px";f.style.textAlign="right";var K=document.createElement("div");K.className="geToolbarContainer";K.style.backgroundColor="transparent";K.style.padding="2px";K.style.border="none";K.style.left="199px";K.style.top="442px";var M=null;if(null!=c&&0<c.length){k.style.cursor="move";var R=document.createElement("table");R.style.border=
+"1px solid lightGray";R.style.borderCollapse="collapse";R.style.borderSpacing="0px";R.style.width="100%";var W=document.createElement("tbody"),T=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(n=mxUtils.indexOf(a.pages,a.currentPage));for(var L=c.length-1;0<=L;L--){var V=function(b){var d=new Date(b.modifiedDate),m=null;if(0<=d.getTime()){var g=function(c){p.stop();var f=mxUtils.parseXml(c),g=a.editor.extractGraphModel(f.documentElement,!0);if(null!=g){var t=function(a){null!=a&&(a=
+v(mxUtils.parseXml(Graph.decompress(mxUtils.getTextContent(a))).documentElement));return a},v=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";k.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};I.style.display="none";I.innerHTML="";y=f;z=c;q=parseSelectFunction=null;e=0;if("mxfile"==g.nodeName){f=g.getElementsByTagName("diagram");q=[];for(c=0;c<f.length;c++)q.push(f[c]);e=Math.min(n,
+q.length-1);0<q.length&&t(q[e]);if(1<q.length)for(I.removeAttribute("disabled"),I.style.display="",c=0;c<q.length;c++)f=document.createElement("option"),mxUtils.write(f,q[c].getAttribute("name")||mxResources.get("pageWithNumber",[c+1])),f.setAttribute("value",c),c==e&&f.setAttribute("selected","selected"),I.appendChild(f);J=function(){try{var b=parseInt(I.value);e=n=b;t(q[b])}catch(N){I.value=n,a.handleError(N)}}}else v(g);c=b.lastModifyingUserName;null!=c&&20<c.length&&(c=c.substring(0,20)+"...");
+A.innerHTML="";mxUtils.write(A,(null!=c?c+" ":"")+d.toLocaleDateString()+" "+d.toLocaleTimeString());A.setAttribute("title",m.getAttribute("title"));B.removeAttribute("disabled");G.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&F.removeAttribute("disabled"),D.removeAttribute("disabled"),E.removeAttribute("disabled"),H.removeAttribute("disabled"));mxUtils.setOpacity(B,60);mxUtils.setOpacity(G,60);mxUtils.setOpacity(x,
+60);mxUtils.setOpacity(C,60)}else I.style.display="none",I.innerHTML="",A.innerHTML="",mxUtils.write(A,mxResources.get("errorLoadingFile"))},m=document.createElement("tr");m.style.borderBottom="1px solid lightGray";m.style.fontSize="12px";m.style.cursor="pointer";var f=document.createElement("td");f.style.padding="6px";f.style.whiteSpace="nowrap";b==c[c.length-1]?mxUtils.write(f,mxResources.get("current")):d.toDateString()===T?mxUtils.write(f,d.toLocaleTimeString()):mxUtils.write(f,d.toLocaleDateString()+
+" "+d.toLocaleTimeString());m.appendChild(f);m.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+(null!=b.fileSize?" "+a.formatFileSize(parseInt(b.fileSize)):"")+(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(m,"click",function(a){t!=b&&(p.stop(),null!=v&&(v.style.backgroundColor=""),t=b,v=m,v.style.backgroundColor="#ebf2f9",z=y=null,A.removeAttribute("title"),A.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+"..."),k.style.backgroundColor=
+"#ffffff",l.getModel().clear(),F.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"),mxUtils.setOpacity(B,20),mxUtils.setOpacity(G,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),p.spin(k),b.getXml(function(a){if(t==
+b)try{g(a)}catch(ca){A.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+ca.message)}},function(a){p.stop();I.style.display="none";I.innerHTML="";A.innerHTML="";mxUtils.write(A,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(m,"dblclick",function(a){E.click();window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);W.appendChild(m)}return m}(c[L]);null!=V&&L==c.length-1&&(M=V)}R.appendChild(W);
+g.appendChild(R)}else null==u||null==a.drive&&u.constructor==window.DriveFile||null==a.dropbox&&u.constructor==window.DropboxFile?(k.style.display="none",K.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",K.style.display="none",mxUtils.write(g,mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";K.appendChild(I);K.appendChild(B);K.appendChild(G);
+K.appendChild(C);K.appendChild(x);a.editor.cancelFirst?(f.appendChild(g),f.appendChild(D),f.appendChild(H),f.appendChild(F),f.appendChild(E)):(f.appendChild(D),f.appendChild(H),f.appendChild(F),f.appendChild(E),f.appendChild(g));b.appendChild(f);b.appendChild(K);b.appendChild(A);this.container=b},DraftDialog=function(a,c,d,b,f,g,k,l){var n=document.createElement("div"),q=document.createElement("div");q.style.marginTop="0px";q.style.whiteSpace="nowrap";q.style.overflow="auto";mxUtils.write(q,c);n.appendChild(q);
+var e=document.createElement("div");e.style.position="absolute";e.style.border="1px solid lightGray";e.style.marginTop="10px";e.style.width="640px";e.style.top="46px";e.style.bottom="74px";e.style.overflow="hidden";mxEvent.disableContextMenu(e);n.appendChild(e);var m=new Graph(e);m.setEnabled(!1);m.setPanning(!0);m.panningHandler.ignoreCell=!0;m.panningHandler.useLeftButtonForPanning=!0;m.minFitScale=null;m.maxFitScale=null;m.centerZoom=!0;c=mxUtils.parseXml(d);var p=a.editor.extractGraphModel(c.documentElement,
!0),u=0,v=null,t=m.getGlobalVariable;m.getGlobalVariable=function(a){return"page"==a&&null!=v&&null!=v[u]?v[u].getAttribute("name"):"pagenumber"==a?u+1:"pagecount"==a?null!=v?v.length:1:t.apply(this,arguments)};m.getLinkForCell=function(){return null};c=mxUtils.button("",function(){m.zoomIn()});c.className="geSprite geSprite-zoomin";c.setAttribute("title",mxResources.get("zoomIn"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);d=mxUtils.button("",function(){m.zoomOut()});
-d.className="geSprite geSprite-zoomout";d.setAttribute("title",mxResources.get("zoomOut"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);q=mxUtils.button("",function(){m.maxFitScale=8;m.fit(8);m.center()});q.className="geSprite geSprite-fit";q.setAttribute("title",mxResources.get("fit"));q.style.outline="none";q.style.border="none";q.style.margin="2px";mxUtils.setOpacity(q,60);var z=mxUtils.button("",function(){m.zoomActual();m.center()});z.className="geSprite geSprite-actualsize";
-z.setAttribute("title",mxResources.get("actualSize"));z.style.outline="none";z.style.border="none";z.style.margin="2px";mxUtils.setOpacity(z,60);e=mxUtils.button(k||mxResources.get("discard"),e);e.className="geBtn";var x=document.createElement("select");x.style.maxWidth="80px";x.style.position="relative";x.style.top="-2px";x.style.verticalAlign="bottom";x.style.marginRight="6px";x.style.display="none";b=mxUtils.button(g||mxResources.get("edit"),b);b.className="geBtn gePrimaryBtn";g=document.createElement("div");
-g.style.position="absolute";g.style.bottom="30px";g.style.width="640px";g.style.textAlign="right";k=document.createElement("div");k.className="geToolbarContainer";k.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function a(a){if(null!=a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";f.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,m.getModel());
-m.maxFitScale=1;m.fit(8);m.center()}}function b(b){null!=b&&(b=a(mxUtils.parseXml(Graph.decompress(mxUtils.getTextContent(b))).documentElement));return b}mxEvent.addListener(x,"change",function(a){u=parseInt(x.value);b(v[u]);mxEvent.consume(a)});if("mxfile"==p.nodeName){var c=p.getElementsByTagName("diagram");v=[];for(var d=0;d<c.length;d++)v.push(c[d]);0<v.length&&b(v[u]);if(1<v.length)for(x.style.display="",d=0;d<v.length;d++)c=document.createElement("option"),mxUtils.write(c,v[d].getAttribute("name")||
-mxResources.get("pageWithNumber",[d+1])),c.setAttribute("value",d),d==u&&c.setAttribute("selected","selected"),x.appendChild(c)}else a(p)};k.appendChild(x);k.appendChild(c);k.appendChild(d);k.appendChild(z);k.appendChild(q);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});c.className="geBtn";l=null!=l?mxUtils.button(mxResources.get("ignore"),l):null;null!=l&&(l.className="geBtn");a.editor.cancelFirst?(g.appendChild(c),null!=l&&g.appendChild(l),g.appendChild(e),g.appendChild(b)):
-(g.appendChild(b),g.appendChild(e),null!=l&&g.appendChild(l),g.appendChild(c));n.appendChild(g);n.appendChild(k);this.container=n},FindWindow=function(a,c,d,b,e){function g(a,b,c){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var f=0;f<b.length;f++)if("label"!=b[f].nodeName){var d=mxUtils.trim(b[f].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&d.substring(0,c.length)===c||null!=a&&a.test(d))return!0}}return!1}function k(){var a=n.model.getDescendants(n.model.getRoot()),
-b=p.value.toLowerCase(),c=u.checked?new RegExp(b):null,d=null;q!=b&&(q=b,f=null);var m=null==f;if(0<b.length)for(var e=0;e<a.length;e++){var k=n.view.getState(a[e]);if(null!=k&&null!=k.cell.value&&(m||null==d)&&(n.model.isVertex(k.cell)||n.model.isEdge(k.cell))&&(n.isHtmlLabel(k.cell)?(t.innerHTML=n.getLabel(k.cell),label=mxUtils.extractTextWithWhitespace([t])):label=n.getLabel(k.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==c&&(label.substring(0,b.length)===
-b||g(c,k.cell,b))||null!=c&&(c.test(label)||g(c,k.cell,b))))if(m){d=k;break}else null==d&&(d=k);m=m||k==f}null!=d?(f=d,n.scrollCellToVisible(f.cell),n.isEnabled()?n.setSelectionCell(f.cell):n.highlightCell(f.cell)):n.isEnabled()&&n.clearSelection();return 0==b.length||null!=d}var l=a.actions.get("find"),n=a.editor.graph,q=null,f=null,m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var p=document.createElement("input");
+d.className="geSprite geSprite-zoomout";d.setAttribute("title",mxResources.get("zoomOut"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);q=mxUtils.button("",function(){m.maxFitScale=8;m.fit(8);m.center()});q.className="geSprite geSprite-fit";q.setAttribute("title",mxResources.get("fit"));q.style.outline="none";q.style.border="none";q.style.margin="2px";mxUtils.setOpacity(q,60);var y=mxUtils.button("",function(){m.zoomActual();m.center()});y.className="geSprite geSprite-actualsize";
+y.setAttribute("title",mxResources.get("actualSize"));y.style.outline="none";y.style.border="none";y.style.margin="2px";mxUtils.setOpacity(y,60);f=mxUtils.button(k||mxResources.get("discard"),f);f.className="geBtn";var z=document.createElement("select");z.style.maxWidth="80px";z.style.position="relative";z.style.top="-2px";z.style.verticalAlign="bottom";z.style.marginRight="6px";z.style.display="none";b=mxUtils.button(g||mxResources.get("edit"),b);b.className="geBtn gePrimaryBtn";g=document.createElement("div");
+g.style.position="absolute";g.style.bottom="30px";g.style.width="640px";g.style.textAlign="right";k=document.createElement("div");k.className="geToolbarContainer";k.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function a(a){if(null!=a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,m.getModel());
+m.maxFitScale=1;m.fit(8);m.center()}}function b(b){null!=b&&(b=a(mxUtils.parseXml(Graph.decompress(mxUtils.getTextContent(b))).documentElement));return b}mxEvent.addListener(z,"change",function(a){u=parseInt(z.value);b(v[u]);mxEvent.consume(a)});if("mxfile"==p.nodeName){var c=p.getElementsByTagName("diagram");v=[];for(var d=0;d<c.length;d++)v.push(c[d]);0<v.length&&b(v[u]);if(1<v.length)for(z.style.display="",d=0;d<v.length;d++)c=document.createElement("option"),mxUtils.write(c,v[d].getAttribute("name")||
+mxResources.get("pageWithNumber",[d+1])),c.setAttribute("value",d),d==u&&c.setAttribute("selected","selected"),z.appendChild(c)}else a(p)};k.appendChild(z);k.appendChild(c);k.appendChild(d);k.appendChild(y);k.appendChild(q);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});c.className="geBtn";l=null!=l?mxUtils.button(mxResources.get("ignore"),l):null;null!=l&&(l.className="geBtn");a.editor.cancelFirst?(g.appendChild(c),null!=l&&g.appendChild(l),g.appendChild(f),g.appendChild(b)):
+(g.appendChild(b),g.appendChild(f),null!=l&&g.appendChild(l),g.appendChild(c));n.appendChild(g);n.appendChild(k);this.container=n},FindWindow=function(a,c,d,b,f){function g(a,b,c){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var e=0;e<b.length;e++)if("label"!=b[e].nodeName){var d=mxUtils.trim(b[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&d.substring(0,c.length)===c||null!=a&&a.test(d))return!0}}return!1}function k(){var a=n.model.getDescendants(n.model.getRoot()),
+b=p.value.toLowerCase(),c=u.checked?new RegExp(b):null,d=null;q!=b&&(q=b,e=null);var m=null==e;if(0<b.length)for(var f=0;f<a.length;f++){var k=n.view.getState(a[f]);if(null!=k&&null!=k.cell.value&&(m||null==d)&&(n.model.isVertex(k.cell)||n.model.isEdge(k.cell))&&(n.isHtmlLabel(k.cell)?(t.innerHTML=n.getLabel(k.cell),label=mxUtils.extractTextWithWhitespace([t])):label=n.getLabel(k.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==c&&(label.substring(0,b.length)===
+b||g(c,k.cell,b))||null!=c&&(c.test(label)||g(c,k.cell,b))))if(m){d=k;break}else null==d&&(d=k);m=m||k==e}null!=d?(e=d,n.scrollCellToVisible(e.cell),n.isEnabled()?n.setSelectionCell(e.cell):n.highlightCell(e.cell)):n.isEnabled()&&n.clearSelection();return 0==b.length||null!=d}var l=a.actions.get("find"),n=a.editor.graph,q=null,e=null,m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var p=document.createElement("input");
p.setAttribute("placeholder",mxResources.get("find"));p.setAttribute("type","text");p.style.marginTop="4px";p.style.marginBottom="6px";p.style.width="200px";p.style.fontSize="12px";p.style.borderRadius="4px";p.style.padding="6px";m.appendChild(p);mxUtils.br(m);var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.marginRight="4px";m.appendChild(u);mxUtils.write(m,mxResources.get("regularExpression"));var v=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000088250");
-v.style.position="relative";v.style.marginLeft="6px";v.style.top="-1px";m.appendChild(v);var t=document.createElement("div");mxUtils.br(m);v=mxUtils.button(mxResources.get("reset"),function(){p.value="";p.style.backgroundColor="";q=f=null;p.focus()});v.setAttribute("title",mxResources.get("reset"));v.style.marginTop="6px";v.style.marginRight="4px";v.className="geBtn";m.appendChild(v);v=mxUtils.button(mxResources.get("find"),function(){try{p.style.backgroundColor=k()?"":"#ffcfcf"}catch(x){a.handleError(x)}});
-v.setAttribute("title",mxResources.get("find")+" (Enter)");v.style.marginTop="6px";v.className="geBtn gePrimaryBtn";m.appendChild(v);mxEvent.addListener(p,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(q!=p.value.toLowerCase()||13==a.keyCode)try{p.style.backgroundColor=k()?"":"#ffcfcf"}catch(C){p.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(m,"keydown",function(b){70==b.keyCode&&a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&
-(l.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),m,c,d,b,e,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null)):n.container.focus()}));this.window.setLocation=
-function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var z=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,
-"resize",z);this.destroy=function(){mxEvent.removeListener(window,"resize",z);this.window.destroy()}},FreehandWindow=function(a,c,d,b,e){var g=a.editor.graph;a=document.createElement("div");a.style.userSelect="none";a.style.overflow="hidden";a.style.height="100%";var k=mxUtils.button(mxResources.get("startDrawing"),function(){g.freehand.isDrawing()&&g.freehand.stopDrawing();g.freehand.startDrawing()});k.setAttribute("title",mxResources.get("startDrawing"));k.style.marginTop="8px";k.style.marginRight=
-"4px";k.style.width="160px";k.style.overflow="hidden";k.style.textOverflow="ellipsis";k.style.textAlign="center";k.className="geBtn gePrimaryBtn";a.appendChild(k);var l=k.cloneNode(!1);mxUtils.write(l,mxResources.get("stopDrawing"));l.setAttribute("title",mxResources.get("stopDrawing"));l.style.marginTop="4px";mxEvent.addListener(l,"click",function(){g.freehand.stopDrawing()});a.appendChild(l);this.window=new mxWindow(mxResources.get("freehand"),a,c,d,b,e,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);
+v.style.position="relative";v.style.marginLeft="6px";v.style.top="-1px";m.appendChild(v);var t=document.createElement("div");mxUtils.br(m);v=mxUtils.button(mxResources.get("reset"),function(){p.value="";p.style.backgroundColor="";q=e=null;p.focus()});v.setAttribute("title",mxResources.get("reset"));v.style.marginTop="6px";v.style.marginRight="4px";v.className="geBtn";m.appendChild(v);v=mxUtils.button(mxResources.get("find"),function(){try{p.style.backgroundColor=k()?"":"#ffcfcf"}catch(z){a.handleError(z)}});
+v.setAttribute("title",mxResources.get("find")+" (Enter)");v.style.marginTop="6px";v.className="geBtn gePrimaryBtn";m.appendChild(v);mxEvent.addListener(p,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(q!=p.value.toLowerCase()||13==a.keyCode)try{p.style.backgroundColor=k()?"":"#ffcfcf"}catch(B){p.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(m,"keydown",function(b){70==b.keyCode&&a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&
+(l.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),m,c,d,b,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null)):n.container.focus()}));this.window.setLocation=
+function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var y=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,
+"resize",y);this.destroy=function(){mxEvent.removeListener(window,"resize",y);this.window.destroy()}},FreehandWindow=function(a,c,d,b,f){var g=a.editor.graph;a=document.createElement("div");a.style.userSelect="none";a.style.overflow="hidden";a.style.height="100%";var k=mxUtils.button(mxResources.get("startDrawing"),function(){g.freehand.isDrawing()&&g.freehand.stopDrawing();g.freehand.startDrawing()});k.setAttribute("title",mxResources.get("startDrawing"));k.style.marginTop="8px";k.style.marginRight=
+"4px";k.style.width="160px";k.style.overflow="hidden";k.style.textOverflow="ellipsis";k.style.textAlign="center";k.className="geBtn gePrimaryBtn";a.appendChild(k);var l=k.cloneNode(!1);mxUtils.write(l,mxResources.get("stopDrawing"));l.setAttribute("title",mxResources.get("stopDrawing"));l.style.marginTop="4px";mxEvent.addListener(l,"click",function(){g.freehand.stopDrawing()});a.appendChild(l);this.window=new mxWindow(mxResources.get("freehand"),a,c,d,b,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);
this.window.setResizable(!1);this.window.setClosable(!0);g.addListener("freehandStateChanged",mxUtils.bind(this,function(){l.className="geBtn"+(g.freehand.isDrawing()?" gePrimaryBtn":"")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){g.freehand.isDrawing()&&g.freehand.stopDrawing()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;
a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var n=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",n);this.destroy=function(){mxEvent.removeListener(window,"resize",n);this.window.destroy()}},
-TagsWindow=function(a,c,d,b,e){var g=a.editor.graph,k="tags",l=document.createElement("div");l.style.userSelect="none";l.style.overflow="hidden";l.style.padding="10px";l.style.height="100%";var n=document.createElement("input");n.setAttribute("placeholder",mxResources.get("allTags"));n.setAttribute("type","text");n.style.marginTop="4px";n.style.width="260px";n.style.fontSize="12px";n.style.borderRadius="4px";n.style.padding="6px";l.appendChild(n);if(!a.isOffline()||mxClient.IS_CHROMEAPP){n.style.width=
+TagsWindow=function(a,c,d,b,f){var g=a.editor.graph,k="tags",l=document.createElement("div");l.style.userSelect="none";l.style.overflow="hidden";l.style.padding="10px";l.style.height="100%";var n=document.createElement("input");n.setAttribute("placeholder",mxResources.get("allTags"));n.setAttribute("type","text");n.style.marginTop="4px";n.style.width="260px";n.style.fontSize="12px";n.style.borderRadius="4px";n.style.padding="6px";l.appendChild(n);if(!a.isOffline()||mxClient.IS_CHROMEAPP){n.style.width=
"240px";var q=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000046966");q.firstChild.style.marginBottom="6px";q.style.marginLeft="6px";l.appendChild(q)}mxEvent.addListener(n,"dblclick",function(){var b=new FilenameDialog(a,k,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&(k=a)}),mxResources.get("enterPropertyName"));a.showDialog(b.container,300,80,!0,!0);b.init()});n.setAttribute("title",mxResources.get("doubleClickChangeProperty"));mxUtils.br(l);
q=mxUtils.button(mxResources.get("hide"),function(){var a=g.getCellsForTags(n.value.split(" "),void 0,k,!0);g.setCellsVisible(a,!1)});q.setAttribute("title",mxResources.get("hide"));q.style.marginTop="8px";q.style.marginRight="4px";q.className="geBtn";l.appendChild(q);q=mxUtils.button(mxResources.get("show"),function(){var a=g.getCellsForTags(n.value.split(" "),void 0,k,!0);g.setCellsVisible(a,!0);if(g.isEnabled()){for(var b=[],c=0;c<a.length;c++)(g.model.isVertex(a[c])||g.model.isEdge(a[c]))&&b.push(a[c]);
-g.setSelectionCells(b)}else for(c=0;c<a.length;c++)g.highlightCell(a[c])});q.setAttribute("title",mxResources.get("show"));q.style.marginTop="8px";q.style.marginRight="4px";q.className="geBtn";l.appendChild(q);var f=a.actions.get("tags"),q=mxUtils.button(mxResources.get("close"),function(){f.funct()});q.setAttribute("title",mxResources.get("close")+" (Enter/Esc)");q.style.marginTop="8px";q.className="geBtn gePrimaryBtn";l.appendChild(q);mxEvent.addListener(n,"keyup",function(a){13!=a.keyCode&&27!=
-a.keyCode||f.funct()});this.window=new mxWindow(mxResources.get("tags"),l,c,d,b,e,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null)):g.container.focus()}));this.window.setLocation=function(a,
+g.setSelectionCells(b)}else for(c=0;c<a.length;c++)g.highlightCell(a[c])});q.setAttribute("title",mxResources.get("show"));q.style.marginTop="8px";q.style.marginRight="4px";q.className="geBtn";l.appendChild(q);var e=a.actions.get("tags"),q=mxUtils.button(mxResources.get("close"),function(){e.funct()});q.setAttribute("title",mxResources.get("close")+" (Enter/Esc)");q.style.marginTop="8px";q.className="geBtn gePrimaryBtn";l.appendChild(q);mxEvent.addListener(n,"keyup",function(a){13!=a.keyCode&&27!=
+a.keyCode||e.funct()});this.window=new mxWindow(mxResources.get("tags"),l,c,d,b,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null)):g.container.focus()}));this.window.setLocation=function(a,
b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var m=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,
-"resize",m);this.destroy=function(){mxEvent.removeListener(window,"resize",m);this.window.destroy()}},AuthDialog=function(a,c,d,b){var e=document.createElement("div");e.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("authorizationRequired"));var k="Unknown",l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("align","absmiddle");l.style.marginRight=
+"resize",m);this.destroy=function(){mxEvent.removeListener(window,"resize",m);this.window.destroy()}},AuthDialog=function(a,c,d,b){var f=document.createElement("div");f.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("authorizationRequired"));var k="Unknown",l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("align","absmiddle");l.style.marginRight=
"10px";c==a.drive?(k=mxResources.get("googleDrive"),l.src=IMAGE_PATH+"/google-drive-logo-white.svg"):c==a.dropbox?(k=mxResources.get("dropbox"),l.src=IMAGE_PATH+"/dropbox-logo-white.svg"):c==a.oneDrive?(k=mxResources.get("oneDrive"),l.src=IMAGE_PATH+"/onedrive-logo-white.svg"):c==a.gitHub?(k=mxResources.get("github"),l.src=IMAGE_PATH+"/github-logo-white.svg"):c==a.gitLab?(k=mxResources.get("gitlab"),l.src=IMAGE_PATH+"/gitlab-logo.svg",l.style.width="32px"):c==a.trello&&(k=mxResources.get("trello"),
-l.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizeThisAppIn",[k]));var n=document.createElement("input");n.setAttribute("type","checkbox");k=mxUtils.button(mxResources.get("authorize"),function(){b(n.checked)});k.insertBefore(l,k.firstChild);k.style.marginTop="6px";k.className="geBigButton";k.style.fontSize="18px";k.style.padding="14px";e.appendChild(g);e.appendChild(a);e.appendChild(k);d&&(d=document.createElement("p"),d.style.marginTop=
-"20px",d.appendChild(n),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberMe")),d.appendChild(g),e.appendChild(d),n.checked=!0,n.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)}));this.container=e},MoreShapesDialog=function(a,c,d){d=null!=d?d:a.sidebar.entries;var b=document.createElement("div"),e=[];if(null!=a.sidebar.customEntries)for(var g=0;g<a.sidebar.customEntries.length;g++){for(var k=a.sidebar.customEntries[g],
-l={title:a.getResource(k.title),entries:[]},n=0;n<k.entries.length;n++){var q=k.entries[n];l.entries.push({id:q.id,title:a.getResource(q.title),desc:a.getResource(q.desc),image:q.preview})}e.push(l)}for(g=0;g<d.length;g++)if(null==a.sidebar.enabledLibraries)e.push(d[g]);else{l={title:d[g].title,entries:[]};for(n=0;n<d[g].entries.length;n++)0<=mxUtils.indexOf(a.sidebar.enabledLibraries,d[g].entries[n].id)&&l.entries.push(d[g].entries[n]);0<l.entries.length&&e.push(l)}d=e;if(c){n=mxUtils.bind(this,
-function(b){for(var c=0;c<b.length;c++)(function(b){var d=v.cloneNode(!1);d.style.fontWeight="bold";d.style.backgroundColor="dark"==uiTheme?"#505759":"#e5e5e5";d.style.padding="6px 0px 6px 20px";mxUtils.write(d,b.title);f.appendChild(d);for(var e=0;e<b.entries.length;e++)(function(b){var d=v.cloneNode(!1);d.style.cursor="pointer";d.style.padding="4px 0px 4px 20px";d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.setAttribute("title",b.title+" ("+b.id+")");var g=
-document.createElement("input");g.setAttribute("type","checkbox");g.checked=a.sidebar.isEntryVisible(b.id);g.defaultChecked=g.checked;d.appendChild(g);mxUtils.write(d," "+b.title);f.appendChild(d);var A=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName){m.style.textAlign="center";m.style.padding="0px";m.style.color="";m.innerHTML="";if(null!=b.desc){var c=document.createElement("pre");c.style.boxSizing="border-box";c.style.fontFamily="inherit";c.style.margin="20px";c.style.right="0px";
+l.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizeThisAppIn",[k]));var n=document.createElement("input");n.setAttribute("type","checkbox");k=mxUtils.button(mxResources.get("authorize"),function(){b(n.checked)});k.insertBefore(l,k.firstChild);k.style.marginTop="6px";k.className="geBigButton";k.style.fontSize="18px";k.style.padding="14px";f.appendChild(g);f.appendChild(a);f.appendChild(k);d&&(d=document.createElement("p"),d.style.marginTop=
+"20px",d.appendChild(n),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberMe")),d.appendChild(g),f.appendChild(d),n.checked=!0,n.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)}));this.container=f},MoreShapesDialog=function(a,c,d){d=null!=d?d:a.sidebar.entries;var b=document.createElement("div"),f=[];if(null!=a.sidebar.customEntries)for(var g=0;g<a.sidebar.customEntries.length;g++){for(var k=a.sidebar.customEntries[g],
+l={title:a.getResource(k.title),entries:[]},n=0;n<k.entries.length;n++){var q=k.entries[n];l.entries.push({id:q.id,title:a.getResource(q.title),desc:a.getResource(q.desc),image:q.preview})}f.push(l)}for(g=0;g<d.length;g++)if(null==a.sidebar.enabledLibraries)f.push(d[g]);else{l={title:d[g].title,entries:[]};for(n=0;n<d[g].entries.length;n++)0<=mxUtils.indexOf(a.sidebar.enabledLibraries,d[g].entries[n].id)&&l.entries.push(d[g].entries[n]);0<l.entries.length&&f.push(l)}d=f;if(c){n=mxUtils.bind(this,
+function(b){for(var c=0;c<b.length;c++)(function(b){var d=v.cloneNode(!1);d.style.fontWeight="bold";d.style.backgroundColor="dark"==uiTheme?"#505759":"#e5e5e5";d.style.padding="6px 0px 6px 20px";mxUtils.write(d,b.title);e.appendChild(d);for(var f=0;f<b.entries.length;f++)(function(b){var d=v.cloneNode(!1);d.style.cursor="pointer";d.style.padding="4px 0px 4px 20px";d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.setAttribute("title",b.title+" ("+b.id+")");var g=
+document.createElement("input");g.setAttribute("type","checkbox");g.checked=a.sidebar.isEntryVisible(b.id);g.defaultChecked=g.checked;d.appendChild(g);mxUtils.write(d," "+b.title);e.appendChild(d);var A=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName){m.style.textAlign="center";m.style.padding="0px";m.style.color="";m.innerHTML="";if(null!=b.desc){var c=document.createElement("pre");c.style.boxSizing="border-box";c.style.fontFamily="inherit";c.style.margin="20px";c.style.right="0px";
c.style.textAlign="left";mxUtils.write(c,b.desc);m.appendChild(c)}null!=b.imageCallback?b.imageCallback(m):null!=b.image?m.innerHTML+='<img border="0" src="'+b.image+'"/>':null==b.desc&&(m.style.padding="20px",m.style.color="rgb(179, 179, 179)",mxUtils.write(m,mxResources.get("noPreview")));null!=p&&(p.style.backgroundColor="");p=d;p.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(d,"click",A);mxEvent.addListener(d,"dblclick",function(a){g.checked=
-!g.checked;mxEvent.consume(a)});u.push(function(){return g.checked?b.id:null});0==c&&0==e&&A()})(b.entries[e])})(b[c])});g=document.createElement("div");g.className="geDialogTitle";mxUtils.write(g,mxResources.get("shapes"));g.style.position="absolute";g.style.top="0px";g.style.left="0px";g.style.lineHeight="40px";g.style.height="40px";g.style.right="0px";mxClient.IS_QUIRKS&&(g.style.width="718px");var f=document.createElement("div"),m=document.createElement("div");f.style.position="absolute";f.style.top=
-"40px";f.style.left="0px";f.style.width="202px";f.style.bottom="60px";f.style.overflow="auto";mxClient.IS_QUIRKS&&(f.style.height="437px",f.style.marginTop="1px");m.style.position="absolute";m.style.left="202px";m.style.right="0px";m.style.top="40px";m.style.bottom="60px";m.style.overflow="auto";m.style.borderLeft="1px solid rgb(211, 211, 211)";m.style.textAlign="center";mxClient.IS_QUIRKS&&(m.style.width=parseInt(g.style.width)-202+"px",m.style.height=f.style.height,m.style.marginTop=f.style.marginTop);
-var p=null,u=[],v=document.createElement("div");v.style.position="relative";v.style.left="0px";v.style.right="0px";n(d);b.style.padding="30px";b.appendChild(g);b.appendChild(f);b.appendChild(m);d=document.createElement("div");d.className="geDialogFooter";d.style.position="absolute";d.style.paddingRight="16px";d.style.color="gray";d.style.left="0px";d.style.right="0px";d.style.bottom="0px";d.style.height="60px";d.style.lineHeight="52px";mxClient.IS_QUIRKS&&(d.style.width=g.style.width,d.style.paddingTop=
+!g.checked;mxEvent.consume(a)});u.push(function(){return g.checked?b.id:null});0==c&&0==f&&A()})(b.entries[f])})(b[c])});g=document.createElement("div");g.className="geDialogTitle";mxUtils.write(g,mxResources.get("shapes"));g.style.position="absolute";g.style.top="0px";g.style.left="0px";g.style.lineHeight="40px";g.style.height="40px";g.style.right="0px";mxClient.IS_QUIRKS&&(g.style.width="718px");var e=document.createElement("div"),m=document.createElement("div");e.style.position="absolute";e.style.top=
+"40px";e.style.left="0px";e.style.width="202px";e.style.bottom="60px";e.style.overflow="auto";mxClient.IS_QUIRKS&&(e.style.height="437px",e.style.marginTop="1px");m.style.position="absolute";m.style.left="202px";m.style.right="0px";m.style.top="40px";m.style.bottom="60px";m.style.overflow="auto";m.style.borderLeft="1px solid rgb(211, 211, 211)";m.style.textAlign="center";mxClient.IS_QUIRKS&&(m.style.width=parseInt(g.style.width)-202+"px",m.style.height=e.style.height,m.style.marginTop=e.style.marginTop);
+var p=null,u=[],v=document.createElement("div");v.style.position="relative";v.style.left="0px";v.style.right="0px";n(d);b.style.padding="30px";b.appendChild(g);b.appendChild(e);b.appendChild(m);d=document.createElement("div");d.className="geDialogFooter";d.style.position="absolute";d.style.paddingRight="16px";d.style.color="gray";d.style.left="0px";d.style.right="0px";d.style.bottom="0px";d.style.height="60px";d.style.lineHeight="52px";mxClient.IS_QUIRKS&&(d.style.width=g.style.width,d.style.paddingTop=
"12px");var t=document.createElement("input");t.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)g=document.createElement("span"),g.style.paddingRight="20px",g.appendChild(t),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),t.checked=!0,t.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){mxEvent.getSource(a)!=t&&(t.checked=!t.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(g.style.position="relative",g.style.top="-6px"),d.appendChild(g);g=mxUtils.button(mxResources.get("cancel"),
-function(){a.hideDialog()});g.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=[],c=0;c<u.length;c++){var d=u[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),t.checked,!0)});n.className="geBtn gePrimaryBtn"}else{var z=document.createElement("table"),g=document.createElement("tbody");b.style.height="100%";b.style.overflow="auto";n=document.createElement("tr");z.style.width="100%";c=document.createElement("td");var e=document.createElement("td"),
-k=document.createElement("td"),x=mxUtils.bind(this,function(b,c,d){var f=document.createElement("input");f.type="checkbox";z.appendChild(f);f.checked=a.sidebar.isEntryVisible(d);var m=document.createElement("span");mxUtils.write(m,c);c=document.createElement("div");c.style.display="block";c.appendChild(f);c.appendChild(m);mxEvent.addListener(m,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return f.checked?d:null}});n.appendChild(c);n.appendChild(e);
-n.appendChild(k);g.appendChild(n);z.appendChild(g);for(var u=[],C=0,g=0;g<d.length;g++)for(n=0;n<d[g].entries.length;n++)C++;for(var H=[c,e,k],y=0,g=0;g<d.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];u.push(x(H[Math.floor(y/(C/3))],c.title,c.id));y++}})(d[g]);b.appendChild(z);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";t=document.createElement("input");isLocalStorage&&(t.setAttribute("type","checkbox"),t.checked=!0,t.defaultChecked=
-!0,d.appendChild(t),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),d.appendChild(g),mxEvent.addListener(g,"click",function(a){t.checked=!t.checked;mxEvent.consume(a)}));b.appendChild(d);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});g.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<u.length;c++){var d=u[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?
-b.join(";"):"",t.checked);a.hideDialog()});n.className="geBtn gePrimaryBtn";d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right"}a.editor.cancelFirst?(d.appendChild(g),d.appendChild(n)):(d.appendChild(n),d.appendChild(g));b.appendChild(d);this.container=b},PluginsDialog=function(a){function c(){if(0==e.length)b.innerHTML=mxUtils.htmlEntities(mxResources.get("noPlugins"));else{b.innerHTML="";for(var d=0;d<e.length;d++){var m=document.createElement("span");m.style.whiteSpace=
-"nowrap";var p=document.createElement("span");p.className="geSprite geSprite-delete";p.style.position="relative";p.style.cursor="pointer";p.style.top="5px";p.style.marginRight="4px";p.style.display="inline-block";m.appendChild(p);mxUtils.write(m,e[d]);b.appendChild(m);mxUtils.br(b);mxEvent.addListener(p,"click",function(b){return function(){a.confirm(mxResources.get("delete")+' "'+e[b]+'"?',function(){e.splice(b,1);c()})}}(d))}}}var d=document.createElement("div"),b=document.createElement("div");
-b.style.height="120px";b.style.overflow="auto";var e=mxSettings.getPlugins().slice();d.appendChild(b);c();var g=mxUtils.button(mxResources.get("add"),function(){var b="",d=urlParams.p;if(null!=d&&0<d.length){for(var p=d.split(";"),d=0;d<p.length;d++){var g=App.pluginRegistry[p[d]];null!=g&&(b+=g+";")}";"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1))}b=new FilenameDialog(a,b,mxResources.get("add"),function(a){if(null!=a&&0<a.length){p=a.split(";");for(a=0;a<p.length;a++){var b=p[a],d=App.pluginRegistry[b];
-null!=d&&(b=d);0<b.length&&0>mxUtils.indexOf(e,b)&&e.push(b)}c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(b.container,300,80,!0,!0);b.init()});g.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var l=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(e);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});l.className="geBtn gePrimaryBtn";var n=
+function(){a.hideDialog()});g.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=[],c=0;c<u.length;c++){var e=u[c].apply(this,arguments);null!=e&&b.push(e)}a.sidebar.showEntries(b.join(";"),t.checked,!0)});n.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),g=document.createElement("tbody");b.style.height="100%";b.style.overflow="auto";n=document.createElement("tr");y.style.width="100%";c=document.createElement("td");var f=document.createElement("td"),
+k=document.createElement("td"),z=mxUtils.bind(this,function(b,c,e){var d=document.createElement("input");d.type="checkbox";y.appendChild(d);d.checked=a.sidebar.isEntryVisible(e);var m=document.createElement("span");mxUtils.write(m,c);c=document.createElement("div");c.style.display="block";c.appendChild(d);c.appendChild(m);mxEvent.addListener(m,"click",function(a){d.checked=!d.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return d.checked?e:null}});n.appendChild(c);n.appendChild(f);
+n.appendChild(k);g.appendChild(n);y.appendChild(g);for(var u=[],B=0,g=0;g<d.length;g++)for(n=0;n<d[g].entries.length;n++)B++;for(var G=[c,f,k],x=0,g=0;g<d.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];u.push(z(G[Math.floor(x/(B/3))],c.title,c.id));x++}})(d[g]);b.appendChild(y);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";t=document.createElement("input");isLocalStorage&&(t.setAttribute("type","checkbox"),t.checked=!0,t.defaultChecked=
+!0,d.appendChild(t),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),d.appendChild(g),mxEvent.addListener(g,"click",function(a){t.checked=!t.checked;mxEvent.consume(a)}));b.appendChild(d);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});g.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<u.length;c++){var e=u[c].apply(this,arguments);null!=e&&b.push(e)}a.sidebar.showEntries(0<b.length?
+b.join(";"):"",t.checked);a.hideDialog()});n.className="geBtn gePrimaryBtn";d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right"}a.editor.cancelFirst?(d.appendChild(g),d.appendChild(n)):(d.appendChild(n),d.appendChild(g));b.appendChild(d);this.container=b},PluginsDialog=function(a){function c(){if(0==f.length)b.innerHTML=mxUtils.htmlEntities(mxResources.get("noPlugins"));else{b.innerHTML="";for(var e=0;e<f.length;e++){var d=document.createElement("span");d.style.whiteSpace=
+"nowrap";var p=document.createElement("span");p.className="geSprite geSprite-delete";p.style.position="relative";p.style.cursor="pointer";p.style.top="5px";p.style.marginRight="4px";p.style.display="inline-block";d.appendChild(p);mxUtils.write(d,f[e]);b.appendChild(d);mxUtils.br(b);mxEvent.addListener(p,"click",function(b){return function(){a.confirm(mxResources.get("delete")+' "'+f[b]+'"?',function(){f.splice(b,1);c()})}}(e))}}}var d=document.createElement("div"),b=document.createElement("div");
+b.style.height="120px";b.style.overflow="auto";var f=mxSettings.getPlugins().slice();d.appendChild(b);c();var g=mxUtils.button(mxResources.get("add"),function(){var b="",d=urlParams.p;if(null!=d&&0<d.length){for(var p=d.split(";"),d=0;d<p.length;d++){var g=App.pluginRegistry[p[d]];null!=g&&(b+=g+";")}";"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1))}b=new FilenameDialog(a,b,mxResources.get("add"),function(a){if(null!=a&&0<a.length){p=a.split(";");for(a=0;a<p.length;a++){var b=p[a],e=App.pluginRegistry[b];
+null!=e&&(b=e);0<b.length&&0>mxUtils.indexOf(f,b)&&f.push(b)}c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(b.container,300,80,!0,!0);b.init()});g.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var l=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(f);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});l.className="geBtn gePrimaryBtn";var n=
document.createElement("div");n.style.marginTop="14px";n.style.textAlign="right";var q=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000056430")});q.className="geBtn";a.isOffline()&&!mxClient.IS_CHROMEAPP&&(q.style.display="none");n.appendChild(q);a.editor.cancelFirst?(n.appendChild(k),n.appendChild(g),n.appendChild(l)):(n.appendChild(g),n.appendChild(l),n.appendChild(k));d.appendChild(n);this.container=d},CropImageDialog=function(a,
-c,d){function b(a){null!=k&&k.destroy();k=a?new Croppie(g,{viewport:{width:150,height:150,type:"circle"},enableExif:!0,showZoomer:!1,enableResize:!1,enableOrientation:!0}):new Croppie(g,{viewport:{width:150,height:150,type:"square"},enableExif:!0,showZoomer:!1,enableResize:!0,enableOrientation:!0});k.bind({url:c})}var e=document.createElement("div"),g=document.createElement("div");g.style.width="300px";g.style.height="300px";e.appendChild(g);var k=null;this.init=function(){b()};var l=document.createElement("input");
-l.setAttribute("type","checkbox");l.setAttribute("id","croppieCircle");l.style.margin="5px";e.appendChild(l);var n=document.createElement("label");n.setAttribute("for","croppieCircle");mxUtils.write(n,mxResources.get("circle"));e.appendChild(n);var q,f,m,p,n=document.createElement("div");q=document.createElement("button");f=document.createElement("button");n.appendChild(q);n.appendChild(f);m=document.createElement("i");p=document.createElement("i");q.appendChild(m);f.appendChild(p);n.className="cr-rotate-controls";
-n.style["float"]="right";n.style.position="inherit";q.className="cr-rotate-l";f.className="cr-rotate-r";e.appendChild(n);q.addEventListener("click",function(){k.rotate(-90)});f.addEventListener("click",function(){k.rotate(90)});mxEvent.addListener(l,"change",function(){b(this.checked)});l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){k.result({type:"base64",size:"original"}).then(function(b){d(b);a.hideDialog()})});
-n.className="geBtn gePrimaryBtn";q=document.createElement("div");q.style.marginTop="20px";q.style.textAlign="right";a.editor.cancelFirst?(q.appendChild(l),q.appendChild(n)):(q.appendChild(n),q.appendChild(l));e.appendChild(q);this.container=e},EditGeometryDialog=function(a,c){var d=a.editor.graph,b=1==c.length?d.getCellGeometry(c[0]):null,e=document.createElement("div"),g=document.createElement("table"),k=document.createElement("tbody"),l=document.createElement("tr"),n=document.createElement("td"),
-q=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("relative")+":");var f=document.createElement("input");f.setAttribute("type","checkbox");null!=b&&b.relative&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);this.init=function(){f.focus()};q.appendChild(f);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("left")+":");var m=
+c,d){function b(a){null!=k&&k.destroy();k=a?new Croppie(g,{viewport:{width:150,height:150,type:"circle"},enableExif:!0,showZoomer:!1,enableResize:!1,enableOrientation:!0}):new Croppie(g,{viewport:{width:150,height:150,type:"square"},enableExif:!0,showZoomer:!1,enableResize:!0,enableOrientation:!0});k.bind({url:c})}var f=document.createElement("div"),g=document.createElement("div");g.style.width="300px";g.style.height="300px";f.appendChild(g);var k=null;this.init=function(){b()};var l=document.createElement("input");
+l.setAttribute("type","checkbox");l.setAttribute("id","croppieCircle");l.style.margin="5px";f.appendChild(l);var n=document.createElement("label");n.setAttribute("for","croppieCircle");mxUtils.write(n,mxResources.get("circle"));f.appendChild(n);var q,e,m,p,n=document.createElement("div");q=document.createElement("button");e=document.createElement("button");n.appendChild(q);n.appendChild(e);m=document.createElement("i");p=document.createElement("i");q.appendChild(m);e.appendChild(p);n.className="cr-rotate-controls";
+n.style["float"]="right";n.style.position="inherit";q.className="cr-rotate-l";e.className="cr-rotate-r";f.appendChild(n);q.addEventListener("click",function(){k.rotate(-90)});e.addEventListener("click",function(){k.rotate(90)});mxEvent.addListener(l,"change",function(){b(this.checked)});l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){k.result({type:"base64",size:"original"}).then(function(b){d(b);a.hideDialog()})});
+n.className="geBtn gePrimaryBtn";q=document.createElement("div");q.style.marginTop="20px";q.style.textAlign="right";a.editor.cancelFirst?(q.appendChild(l),q.appendChild(n)):(q.appendChild(n),q.appendChild(l));f.appendChild(q);this.container=f},EditGeometryDialog=function(a,c){var d=a.editor.graph,b=1==c.length?d.getCellGeometry(c[0]):null,f=document.createElement("div"),g=document.createElement("table"),k=document.createElement("tbody"),l=document.createElement("tr"),n=document.createElement("td"),
+q=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("relative")+":");var e=document.createElement("input");e.setAttribute("type","checkbox");null!=b&&b.relative&&(e.setAttribute("checked","checked"),e.defaultChecked=!0);this.init=function(){e.focus()};q.appendChild(e);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("left")+":");var m=
document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value=null!=b?b.x:"";q.appendChild(m);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=b?b.y:"";q.appendChild(p);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");
n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("dx")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=b&&null!=b.offset?b.offset.x:"";q.appendChild(u);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("dy")+":");var v=document.createElement("input");v.setAttribute("type",
"text");v.style.width="100px";v.value=null!=b&&null!=b.offset?b.offset.y:"";q.appendChild(v);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("width")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=b?b.width:"";q.appendChild(t);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=
-document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var z=document.createElement("input");z.setAttribute("type","text");z.style.width="100px";z.value=null!=b?b.height:"";q.appendChild(z);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var x=document.createElement("input");x.setAttribute("type","text");
-x.style.width="100px";x.value=1==c.length?mxUtils.getValue(d.getCellStyle(c[0]),mxConstants.STYLE_ROTATION,0):"";q.appendChild(x);l.appendChild(n);l.appendChild(q);k.appendChild(l);g.appendChild(k);e.appendChild(g);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var C=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var e=d.getCellGeometry(c[b]);null!=e&&(e=e.clone(),d.isCellMovable(c[b])&&
-(e.relative=f.checked,0<mxUtils.trim(m.value).length&&(e.x=Number(m.value)),0<mxUtils.trim(p.value).length&&(e.y=Number(p.value)),0<mxUtils.trim(u.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.x=Number(u.value)),0<mxUtils.trim(v.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.y=Number(v.value))),d.isCellResizable(c[b])&&(0<mxUtils.trim(t.value).length&&(e.width=Number(t.value)),0<mxUtils.trim(z.value).length&&(e.height=Number(z.value))),d.getModel().setGeometry(c[b],
-e));0<mxUtils.trim(x.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(x.value),[c[b]])}}finally{d.getModel().endUpdate()}});C.className="geBtn gePrimaryBtn";mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&C.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(b),g.appendChild(C)):(g.appendChild(C),g.appendChild(b));e.appendChild(g);this.container=e},LibraryDialog=function(a,c,d,b,e,g){function k(a){for(a=
-document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=u;)a=a.parentNode;var b=null;if(null!=a)for(var c=u.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function l(b,c,d,m,p,e,g,A,n){try{if(a.spinner.stop(),null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==t[b]){var D=function(){G.innerHTML="";G.style.cursor="pointer";G.style.whiteSpace="nowrap";G.style.textOverflow="ellipsis";mxUtils.write(G,null!=E.title&&0<E.title.length?E.title:mxResources.get("untitled"));
-G.style.color=null==E.title||0==E.title.length?"#d0d0d0":""};u.style.backgroundImage="";v.style.display="none";var B=p,x=e;if(p>a.maxImageSize||e>a.maxImageSize){var F=Math.min(1,Math.min(a.maxImageSize/Math.max(1,p)),a.maxImageSize/Math.max(1,e));p*=F;e*=F}B>x?(x=Math.round(100*x/B),B=100):(B=Math.round(100*B/x),x=100);var q=document.createElement("div");q.setAttribute("draggable","true");q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.style.position="relative";q.style.cursor="move";
-mxUtils.setPrefixedStyle(q.style,"transition","transform .1s ease-in-out");if(null!=b){var K=document.createElement("img");K.setAttribute("src",H.convert(b));K.style.width=B+"px";K.style.height=x+"px";K.style.margin="10px";K.style.paddingBottom=Math.floor((100-x)/2)+"px";K.style.paddingLeft=Math.floor((100-B)/2)+"px";q.appendChild(K)}else if(null!=g){var I=a.stringToCells(Graph.decompress(g.xml));0<I.length&&(a.sidebar.createThumb(I,100,100,q,null,!0,!1),q.firstChild.style.display=mxClient.IS_QUIRKS?
-"inline":"inline-block",q.firstChild.style.cursor="")}var J=document.createElement("img");J.setAttribute("src",Editor.closeImage);J.setAttribute("border","0");J.setAttribute("title",mxResources.get("delete"));J.setAttribute("align","top");J.style.paddingTop="4px";J.style.position="absolute";J.style.marginLeft="-12px";J.style.zIndex="1";J.style.cursor="pointer";mxEvent.addListener(J,"dragstart",function(a){mxEvent.consume(a)});(function(a,b,c){mxEvent.addListener(J,"click",function(d){t[b]=null;for(var m=
-0;m<f.length;m++)if(null!=f[m].data&&f[m].data==b||null!=f[m].xml&&null!=c&&f[m].xml==c.xml){f.splice(m,1);break}q.parentNode.removeChild(a);0==f.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",v.style.display="");mxEvent.consume(d)});mxEvent.addListener(J,"dblclick",function(a){mxEvent.consume(a)})})(q,b,g);q.appendChild(J);q.style.marginBottom="30px";var G=document.createElement("div");G.style.position="absolute";G.style.boxSizing="border-box";G.style.bottom="-18px";G.style.left=
-"10px";G.style.right="10px";G.style.backgroundColor="#ffffff";G.style.overflow="hidden";G.style.textAlign="center";var E=null;null!=b?(E={data:b,w:p,h:e,title:n},null!=A&&(E.aspect=A),t[b]=K,f.push(E)):null!=g&&(g.aspect="fixed",f.push(g),E=g);mxEvent.addListener(G,"keydown",function(a){13==a.keyCode&&null!=C&&(C(),C=null,mxEvent.consume(a))});D();q.appendChild(G);mxEvent.addListener(G,"mousedown",function(a){"true"!=G.getAttribute("contentEditable")&&mxEvent.consume(a)});I=function(b){if(mxClient.IS_IOS||
-mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,E.title||"",mxResources.get("ok"),function(a){null!=a&&(E.title=a,D())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();mxEvent.consume(b)}else if("true"!=G.getAttribute("contentEditable")){null!=C&&(C(),C=null);if(null==E.title||0==E.title.length)G.innerHTML="";G.style.textOverflow="";G.style.whiteSpace="";G.style.cursor="text";G.style.color="";G.setAttribute("contentEditable",
-"true");mxUtils.setPrefixedStyle(G.style,"user-select","text");G.focus();document.execCommand("selectAll",!1,null);C=function(){G.removeAttribute("contentEditable");G.style.cursor="pointer";E.title=G.innerHTML;D()};mxEvent.consume(b)}};mxEvent.addListener(G,"click",I);mxEvent.addListener(q,"dblclick",I);u.appendChild(q);mxEvent.addListener(q,"dragstart",function(a){null==b&&null!=g&&(J.style.visibility="hidden",G.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",
-g.xml);z=k(a);mxClient.IS_GC&&(q.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(q.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(q,30);J.style.visibility="";G.style.visibility=""},0)});mxEvent.addListener(q,"dragend",function(a){"hidden"==J.style.visibility&&(J.style.visibility="",G.style.visibility="");z=null;mxUtils.setOpacity(q,100);mxUtils.setPrefixedStyle(q.style,"transform",null)})}else y||(y=!0,a.handleError({message:mxResources.get("fileExists")}));else{p=
-!1;try{if(B=mxUtils.parseXml(b),"mxlibrary"==B.documentElement.nodeName){x=JSON.parse(mxUtils.getTextContent(B.documentElement));if(null!=x&&0<x.length)for(var N=0;N<x.length;N++)null!=x[N].xml?l(null,null,0,0,0,0,x[N]):l(x[N].data,null,0,0,x[N].w,x[N].h,null,"fixed",x[N].title);p=!0}else if("mxfile"==B.documentElement.nodeName){for(var R=B.documentElement.getElementsByTagName("diagram"),N=0;N<R.length;N++){var x=mxUtils.getTextContent(R[N]),I=a.stringToCells(Graph.decompress(x)),Y=a.editor.graph.getBoundingBoxFromGeometry(I);
-l(null,null,0,0,0,0,{xml:x,w:Y.width,h:Y.height})}p=!0}}catch(ea){}p||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(ea){}return null}function n(a){a.dataTransfer.dropEffect=null!=z?"move":"copy";a.stopPropagation();a.preventDefault()}function q(b){b.stopPropagation();b.preventDefault();y=!1;x=k(b);if(null!=z)null!=x&&x<u.children.length?(f.splice(x>z?x-1:x,0,f.splice(z,1)[0]),u.insertBefore(u.children[z],u.children[x])):(f.push(f.splice(z,1)[0]),u.appendChild(u.children[z]));
-else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,B(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){l(c,null,0,0,a.width,a.height);u.scrollTop=u.scrollHeight})}b.stopPropagation();b.preventDefault()}var f=[];d=document.createElement("div");
-d.style.height="100%";var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.height="40px";d.appendChild(m);mxUtils.write(m,mxResources.get("filename")+":");null==c&&(c=a.defaultLibraryName+".xml");var p=document.createElement("input");p.setAttribute("value",c);p.style.marginRight="20px";p.style.marginLeft="10px";p.style.width="500px";null==e||e.isRenamable()||p.setAttribute("disabled","true");this.init=function(){if(null==e||e.isRenamable())p.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null)};m.appendChild(p);var u=document.createElement("div");u.style.borderWidth="1px 0px 1px 0px";u.style.borderColor="#d3d3d3";u.style.borderStyle="solid";u.style.marginTop="6px";u.style.overflow="auto";u.style.height="340px";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";0==f.length&&Graph.fileSupport&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var v=
-document.createElement("div");v.style.position="absolute";v.style.width="640px";v.style.top="260px";v.style.textAlign="center";v.style.fontSize="22px";v.style.color="#a0c3ff";mxUtils.write(v,mxResources.get("dragImagesHere"));d.appendChild(v);var t={},z=null,x=null,C=null;c=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=C&&(C(),C=null,mxEvent.consume(a))};mxEvent.addListener(u,"mousedown",c);mxEvent.addListener(u,"pointerdown",c);mxEvent.addListener(u,"touchstart",
-c);var H=new mxUrlConverter,y=!1;if(null!=b)for(c=0;c<b.length;c++)m=b[c],l(m.data,null,0,0,m.w,m.h,m,m.aspect,m.title);mxEvent.addListener(u,"dragleave",function(a){v.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==u||b==v){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});var B=function(b){return function(c,d,f,m,p,e,g,A,k){null!=k&&(/(\.vsdx)($|\?)/i.test(k.name)||/(\.vssx)($|\?)/i.test(k.name))?a.importVisio(k,mxUtils.bind(this,function(a){l(a,d,f,m,p,e,g,"fixed",mxEvent.isAltDown(b)?
-null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=k&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,k.name)?a.parseFile(k,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(l(c.responseText,d,f,m,p,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(l(c,d,f,m,p,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g,
-" ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",n);mxEvent.addListener(u,"drop",q);mxEvent.addListener(v,"dragover",n);mxEvent.addListener(v,"drop",q);d.appendChild(u);b=document.createElement("div");b.style.textAlign="right";b.style.marginTop="20px";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});c.setAttribute("id","btnCancel");c.className="geBtn";a.editor.cancelFirst&&b.appendChild(c);m=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(f),
+document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=b?b.height:"";q.appendChild(y);l.appendChild(n);l.appendChild(q);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var z=document.createElement("input");z.setAttribute("type","text");
+z.style.width="100px";z.value=1==c.length?mxUtils.getValue(d.getCellStyle(c[0]),mxConstants.STYLE_ROTATION,0):"";q.appendChild(z);l.appendChild(n);l.appendChild(q);k.appendChild(l);g.appendChild(k);f.appendChild(g);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var B=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var f=d.getCellGeometry(c[b]);null!=f&&(f=f.clone(),d.isCellMovable(c[b])&&
+(f.relative=e.checked,0<mxUtils.trim(m.value).length&&(f.x=Number(m.value)),0<mxUtils.trim(p.value).length&&(f.y=Number(p.value)),0<mxUtils.trim(u.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(u.value)),0<mxUtils.trim(v.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.y=Number(v.value))),d.isCellResizable(c[b])&&(0<mxUtils.trim(t.value).length&&(f.width=Number(t.value)),0<mxUtils.trim(y.value).length&&(f.height=Number(y.value))),d.getModel().setGeometry(c[b],
+f));0<mxUtils.trim(z.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(z.value),[c[b]])}}finally{d.getModel().endUpdate()}});B.className="geBtn gePrimaryBtn";mxEvent.addListener(f,"keypress",function(a){13==a.keyCode&&B.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(b),g.appendChild(B)):(g.appendChild(B),g.appendChild(b));f.appendChild(g);this.container=f},LibraryDialog=function(a,c,d,b,f,g){function k(a){for(a=
+document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=u;)a=a.parentNode;var b=null;if(null!=a)for(var c=u.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function l(b,c,d,m,p,f,g,A,n){try{if(a.spinner.stop(),null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==t[b]){var D=function(){H.innerHTML="";H.style.cursor="pointer";H.style.whiteSpace="nowrap";H.style.textOverflow="ellipsis";mxUtils.write(H,null!=E.title&&0<E.title.length?E.title:mxResources.get("untitled"));
+H.style.color=null==E.title||0==E.title.length?"#d0d0d0":""};u.style.backgroundImage="";v.style.display="none";var C=p,z=f;if(p>a.maxImageSize||f>a.maxImageSize){var F=Math.min(1,Math.min(a.maxImageSize/Math.max(1,p)),a.maxImageSize/Math.max(1,f));p*=F;f*=F}C>z?(z=Math.round(100*z/C),C=100):(C=Math.round(100*C/z),z=100);var q=document.createElement("div");q.setAttribute("draggable","true");q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.style.position="relative";q.style.cursor="move";
+mxUtils.setPrefixedStyle(q.style,"transition","transform .1s ease-in-out");if(null!=b){var J=document.createElement("img");J.setAttribute("src",G.convert(b));J.style.width=C+"px";J.style.height=z+"px";J.style.margin="10px";J.style.paddingBottom=Math.floor((100-z)/2)+"px";J.style.paddingLeft=Math.floor((100-C)/2)+"px";q.appendChild(J)}else if(null!=g){var I=a.stringToCells(Graph.decompress(g.xml));0<I.length&&(a.sidebar.createThumb(I,100,100,q,null,!0,!1),q.firstChild.style.display=mxClient.IS_QUIRKS?
+"inline":"inline-block",q.firstChild.style.cursor="")}var K=document.createElement("img");K.setAttribute("src",Editor.closeImage);K.setAttribute("border","0");K.setAttribute("title",mxResources.get("delete"));K.setAttribute("align","top");K.style.paddingTop="4px";K.style.position="absolute";K.style.marginLeft="-12px";K.style.zIndex="1";K.style.cursor="pointer";mxEvent.addListener(K,"dragstart",function(a){mxEvent.consume(a)});(function(a,b,c){mxEvent.addListener(K,"click",function(d){t[b]=null;for(var m=
+0;m<e.length;m++)if(null!=e[m].data&&e[m].data==b||null!=e[m].xml&&null!=c&&e[m].xml==c.xml){e.splice(m,1);break}q.parentNode.removeChild(a);0==e.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",v.style.display="");mxEvent.consume(d)});mxEvent.addListener(K,"dblclick",function(a){mxEvent.consume(a)})})(q,b,g);q.appendChild(K);q.style.marginBottom="30px";var H=document.createElement("div");H.style.position="absolute";H.style.boxSizing="border-box";H.style.bottom="-18px";H.style.left=
+"10px";H.style.right="10px";H.style.backgroundColor="#ffffff";H.style.overflow="hidden";H.style.textAlign="center";var E=null;null!=b?(E={data:b,w:p,h:f,title:n},null!=A&&(E.aspect=A),t[b]=J,e.push(E)):null!=g&&(g.aspect="fixed",e.push(g),E=g);mxEvent.addListener(H,"keydown",function(a){13==a.keyCode&&null!=B&&(B(),B=null,mxEvent.consume(a))});D();q.appendChild(H);mxEvent.addListener(H,"mousedown",function(a){"true"!=H.getAttribute("contentEditable")&&mxEvent.consume(a)});I=function(b){if(mxClient.IS_IOS||
+mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,E.title||"",mxResources.get("ok"),function(a){null!=a&&(E.title=a,D())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();mxEvent.consume(b)}else if("true"!=H.getAttribute("contentEditable")){null!=B&&(B(),B=null);if(null==E.title||0==E.title.length)H.innerHTML="";H.style.textOverflow="";H.style.whiteSpace="";H.style.cursor="text";H.style.color="";H.setAttribute("contentEditable",
+"true");mxUtils.setPrefixedStyle(H.style,"user-select","text");H.focus();document.execCommand("selectAll",!1,null);B=function(){H.removeAttribute("contentEditable");H.style.cursor="pointer";E.title=H.innerHTML;D()};mxEvent.consume(b)}};mxEvent.addListener(H,"click",I);mxEvent.addListener(q,"dblclick",I);u.appendChild(q);mxEvent.addListener(q,"dragstart",function(a){null==b&&null!=g&&(K.style.visibility="hidden",H.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",
+g.xml);y=k(a);mxClient.IS_GC&&(q.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(q.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(q,30);K.style.visibility="";H.style.visibility=""},0)});mxEvent.addListener(q,"dragend",function(a){"hidden"==K.style.visibility&&(K.style.visibility="",H.style.visibility="");y=null;mxUtils.setOpacity(q,100);mxUtils.setPrefixedStyle(q.style,"transform",null)})}else x||(x=!0,a.handleError({message:mxResources.get("fileExists")}));else{p=
+!1;try{if(C=mxUtils.parseXml(b),"mxlibrary"==C.documentElement.nodeName){z=JSON.parse(mxUtils.getTextContent(C.documentElement));if(null!=z&&0<z.length)for(var M=0;M<z.length;M++)null!=z[M].xml?l(null,null,0,0,0,0,z[M]):l(z[M].data,null,0,0,z[M].w,z[M].h,null,"fixed",z[M].title);p=!0}else if("mxfile"==C.documentElement.nodeName){for(var R=C.documentElement.getElementsByTagName("diagram"),M=0;M<R.length;M++){var z=mxUtils.getTextContent(R[M]),I=a.stringToCells(Graph.decompress(z)),Y=a.editor.graph.getBoundingBoxFromGeometry(I);
+l(null,null,0,0,0,0,{xml:z,w:Y.width,h:Y.height})}p=!0}}catch(ea){}p||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(ea){}return null}function n(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}function q(b){b.stopPropagation();b.preventDefault();x=!1;z=k(b);if(null!=y)null!=z&&z<u.children.length?(e.splice(z>y?z-1:z,0,e.splice(y,1)[0]),u.insertBefore(u.children[y],u.children[z])):(e.push(e.splice(y,1)[0]),u.appendChild(u.children[y]));
+else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,C(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){l(c,null,0,0,a.width,a.height);u.scrollTop=u.scrollHeight})}b.stopPropagation();b.preventDefault()}var e=[];d=document.createElement("div");
+d.style.height="100%";var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.height="40px";d.appendChild(m);mxUtils.write(m,mxResources.get("filename")+":");null==c&&(c=a.defaultLibraryName+".xml");var p=document.createElement("input");p.setAttribute("value",c);p.style.marginRight="20px";p.style.marginLeft="10px";p.style.width="500px";null==f||f.isRenamable()||p.setAttribute("disabled","true");this.init=function(){if(null==f||f.isRenamable())p.focus(),mxClient.IS_GC||mxClient.IS_FF||
+5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null)};m.appendChild(p);var u=document.createElement("div");u.style.borderWidth="1px 0px 1px 0px";u.style.borderColor="#d3d3d3";u.style.borderStyle="solid";u.style.marginTop="6px";u.style.overflow="auto";u.style.height="340px";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";0==e.length&&Graph.fileSupport&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var v=
+document.createElement("div");v.style.position="absolute";v.style.width="640px";v.style.top="260px";v.style.textAlign="center";v.style.fontSize="22px";v.style.color="#a0c3ff";mxUtils.write(v,mxResources.get("dragImagesHere"));d.appendChild(v);var t={},y=null,z=null,B=null;c=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=B&&(B(),B=null,mxEvent.consume(a))};mxEvent.addListener(u,"mousedown",c);mxEvent.addListener(u,"pointerdown",c);mxEvent.addListener(u,"touchstart",
+c);var G=new mxUrlConverter,x=!1;if(null!=b)for(c=0;c<b.length;c++)m=b[c],l(m.data,null,0,0,m.w,m.h,m,m.aspect,m.title);mxEvent.addListener(u,"dragleave",function(a){v.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==u||b==v){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});var C=function(b){return function(c,e,d,m,p,f,g,A,t){null!=t&&(/(\.vsdx)($|\?)/i.test(t.name)||/(\.vssx)($|\?)/i.test(t.name))?a.importVisio(t,mxUtils.bind(this,function(a){l(a,e,d,m,p,f,g,"fixed",mxEvent.isAltDown(b)?
+null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,t.name)?a.parseFile(t,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(l(c.responseText,e,d,m,p,f,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(l(c,e,d,m,p,f,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g,
+" ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",n);mxEvent.addListener(u,"drop",q);mxEvent.addListener(v,"dragover",n);mxEvent.addListener(v,"drop",q);d.appendChild(u);b=document.createElement("div");b.style.textAlign="right";b.style.marginTop="20px";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});c.setAttribute("id","btnCancel");c.className="geBtn";a.editor.cancelFirst&&b.appendChild(c);m=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(e),
c=p.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")});m.setAttribute("id","btnDownload");m.className="geBtn";b.appendChild(m);if(Graph.fileSupport){if(null==a.libDlgFileInputElt){var A=document.createElement("input");A.setAttribute("multiple","multiple");A.setAttribute("type","file");mxEvent.addListener(A,"change",
-function(b){y=!1;a.importFiles(A.files,0,0,a.maxImageSize,function(a,c,d,f,m,p,e,g,k){null!=A.files&&(B(b)(a,c,d,f,m,p,e,g,k),A.type="",A.type="file",A.value="")});u.scrollTop=u.scrollHeight});A.style.display="none";document.body.appendChild(A);a.libDlgFileInputElt=A}m=mxUtils.button(mxResources.get("import"),function(){null!=C&&(C(),C=null);a.libDlgFileInputElt.click()});m.setAttribute("id","btnAddImage");m.className="geBtn";b.appendChild(m)}m=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=
-C&&(C(),C=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){y=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}l(a,null,0,0,b,c);u.scrollTop=u.scrollHeight}})});m.setAttribute("id","btnAddImageUrl");m.className="geBtn";b.appendChild(m);this.saveBtnClickHandler=function(b,c,d,f){a.saveLibrary(b,c,d,f)};m=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=C&&(C(),C=null);this.saveBtnClickHandler(p.value,
-f,e,g)}));m.setAttribute("id","btnSave");m.className="geBtn gePrimaryBtn";b.appendChild(m);a.editor.cancelFirst||b.appendChild(c);d.appendChild(b);this.container=d},EditShapeDialog=function(a,c,d,b,e){b=null!=b?b:300;e=null!=e?e:120;var g,k,l=document.createElement("table"),n=document.createElement("tbody");l.style.cellPadding="4px";g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";mxUtils.write(k,d);g.appendChild(k);n.appendChild(g);
-g=document.createElement("tr");k=document.createElement("td");var q=document.createElement("textarea");q.style.outline="none";q.style.resize="none";q.style.width=b-200+"px";q.style.height=e+"px";this.textarea=q;this.init=function(){q.focus();q.scrollTop=0};k.appendChild(q);g.appendChild(k);k=document.createElement("td");d=document.createElement("div");d.style.position="relative";d.style.border="1px solid gray";d.style.top="6px";d.style.width="200px";d.style.height=e+4+"px";d.style.overflow="hidden";
-d.style.marginBottom="16px";mxEvent.disableContextMenu(d);k.appendChild(d);var f=new Graph(d);f.setEnabled(!1);var m=a.editor.graph.cloneCell(c);f.addCells([m]);d=f.view.getState(m);var p="";null!=d.shape&&null!=d.shape.stencil&&(p=mxUtils.getPrettyXml(d.shape.stencil.desc));mxUtils.write(q,p||"");d=f.getGraphBounds();e=Math.min(160/d.width,(e-40)/d.height);f.view.scaleAndTranslate(e,20/e-d.x,20/e-d.y);g.appendChild(k);n.appendChild(g);g=document.createElement("tr");k=document.createElement("td");
-k.setAttribute("colspan","2");k.style.paddingTop="2px";k.style.whiteSpace="nowrap";k.setAttribute("align","right");a.isOffline()||(e=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),e.className="geBtn",k.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&k.appendChild(e);var u=function(b,c,d){var f=q.value,m=mxUtils.parseXml(f),f=mxUtils.getPrettyXml(m.documentElement),
-m=m.documentElement.getElementsByTagName("parsererror");if(null!=m&&0<m.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),m=!b.model.contains(c),!d||m||f!=p){f=Graph.compress(f);b.getModel().beginUpdate();try{if(m){var e=a.editor.graph.getFreeInsertPoint();c.geometry.x=e.x;c.geometry.y=e.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+f+")",[c])}catch(y){throw y;}finally{b.getModel().endUpdate()}m&&
-(b.setSelectionCell(c),b.scrollCellToVisible(c))}};d=mxUtils.button(mxResources.get("preview"),function(){u(f,m,!1)});d.className="geBtn";k.appendChild(d);d=mxUtils.button(mxResources.get("apply"),function(){u(a.editor.graph,c,!0)});d.className="geBtn gePrimaryBtn";k.appendChild(d);a.editor.cancelFirst||k.appendChild(e);g.appendChild(k);n.appendChild(g);l.appendChild(n);this.container=l},CustomDialog=function(a,c,d,b,e,g,k,l){var n=document.createElement("div");n.appendChild(c);c=document.createElement("div");
-c.style.marginTop="16px";c.style.textAlign="center";null!=k&&c.appendChild(k);a.isOffline()||null==g||(k=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),k.className="geBtn",c.appendChild(k));k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b()});k.className="geBtn";l&&(k.style.display="none");a.editor.cancelFirst&&c.appendChild(k);e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=d&&d()});c.appendChild(e);e.className="geBtn gePrimaryBtn";
-a.editor.cancelFirst||c.appendChild(k);n.appendChild(c);this.cancelBtn=k;this.okButton=e;this.container=n},TemplatesDialog=function(){var a='<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" placeholder="'+mxResources.get("search",null,"Search")+'"></div><div class="geTemplatesList"><div class="geTempDlgNewDiagramlbl">'+mxResources.get("newDiagram",null,"New Diagram")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+
+function(b){x=!1;a.importFiles(A.files,0,0,a.maxImageSize,function(a,c,e,d,m,p,f,g,t){null!=A.files&&(C(b)(a,c,e,d,m,p,f,g,t),A.type="",A.type="file",A.value="")});u.scrollTop=u.scrollHeight});A.style.display="none";document.body.appendChild(A);a.libDlgFileInputElt=A}m=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);a.libDlgFileInputElt.click()});m.setAttribute("id","btnAddImage");m.className="geBtn";b.appendChild(m)}m=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=
+B&&(B(),B=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){x=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var e=a.indexOf(",");0<e&&(a=a.substring(0,e)+";base64,"+a.substring(e+1))}l(a,null,0,0,b,c);u.scrollTop=u.scrollHeight}})});m.setAttribute("id","btnAddImageUrl");m.className="geBtn";b.appendChild(m);this.saveBtnClickHandler=function(b,c,e,d){a.saveLibrary(b,c,e,d)};m=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=B&&(B(),B=null);this.saveBtnClickHandler(p.value,
+e,f,g)}));m.setAttribute("id","btnSave");m.className="geBtn gePrimaryBtn";b.appendChild(m);a.editor.cancelFirst||b.appendChild(c);d.appendChild(b);this.container=d},EditShapeDialog=function(a,c,d,b,f){b=null!=b?b:300;f=null!=f?f:120;var g,k,l=document.createElement("table"),n=document.createElement("tbody");l.style.cellPadding="4px";g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";mxUtils.write(k,d);g.appendChild(k);n.appendChild(g);
+g=document.createElement("tr");k=document.createElement("td");var q=document.createElement("textarea");q.style.outline="none";q.style.resize="none";q.style.width=b-200+"px";q.style.height=f+"px";this.textarea=q;this.init=function(){q.focus();q.scrollTop=0};k.appendChild(q);g.appendChild(k);k=document.createElement("td");d=document.createElement("div");d.style.position="relative";d.style.border="1px solid gray";d.style.top="6px";d.style.width="200px";d.style.height=f+4+"px";d.style.overflow="hidden";
+d.style.marginBottom="16px";mxEvent.disableContextMenu(d);k.appendChild(d);var e=new Graph(d);e.setEnabled(!1);var m=a.editor.graph.cloneCell(c);e.addCells([m]);d=e.view.getState(m);var p="";null!=d.shape&&null!=d.shape.stencil&&(p=mxUtils.getPrettyXml(d.shape.stencil.desc));mxUtils.write(q,p||"");d=e.getGraphBounds();f=Math.min(160/d.width,(f-40)/d.height);e.view.scaleAndTranslate(f,20/f-d.x,20/f-d.y);g.appendChild(k);n.appendChild(g);g=document.createElement("tr");k=document.createElement("td");
+k.setAttribute("colspan","2");k.style.paddingTop="2px";k.style.whiteSpace="nowrap";k.setAttribute("align","right");a.isOffline()||(f=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),f.className="geBtn",k.appendChild(f));f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&k.appendChild(f);var u=function(b,c,e){var d=q.value,m=mxUtils.parseXml(d),d=mxUtils.getPrettyXml(m.documentElement),
+m=m.documentElement.getElementsByTagName("parsererror");if(null!=m&&0<m.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(e&&a.hideDialog(),m=!b.model.contains(c),!e||m||d!=p){d=Graph.compress(d);b.getModel().beginUpdate();try{if(m){var f=a.editor.graph.getFreeInsertPoint();c.geometry.x=f.x;c.geometry.y=f.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+d+")",[c])}catch(x){throw x;}finally{b.getModel().endUpdate()}m&&
+(b.setSelectionCell(c),b.scrollCellToVisible(c))}};d=mxUtils.button(mxResources.get("preview"),function(){u(e,m,!1)});d.className="geBtn";k.appendChild(d);d=mxUtils.button(mxResources.get("apply"),function(){u(a.editor.graph,c,!0)});d.className="geBtn gePrimaryBtn";k.appendChild(d);a.editor.cancelFirst||k.appendChild(f);g.appendChild(k);n.appendChild(g);l.appendChild(n);this.container=l},CustomDialog=function(a,c,d,b,f,g,k,l){var n=document.createElement("div");n.appendChild(c);c=document.createElement("div");
+c.style.marginTop="16px";c.style.textAlign="center";null!=k&&c.appendChild(k);a.isOffline()||null==g||(k=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),k.className="geBtn",c.appendChild(k));k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b()});k.className="geBtn";l&&(k.style.display="none");a.editor.cancelFirst&&c.appendChild(k);f=mxUtils.button(f||mxResources.get("ok"),function(){a.hideDialog();null!=d&&d()});c.appendChild(f);f.className="geBtn gePrimaryBtn";
+a.editor.cancelFirst||c.appendChild(k);n.appendChild(c);this.cancelBtn=k;this.okButton=f;this.container=n},TemplatesDialog=function(){var a='<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" placeholder="'+mxResources.get("search",null,"Search")+'"></div><div class="geTemplatesList"><div class="geTempDlgNewDiagramlbl">'+mxResources.get("newDiagram",null,"New Diagram")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+
mxResources.get("templates",null,"Templates")+'</div></div><div class="geTempDlgContent"><div class="geTempDlgNewDiagramCat"><div class="geTempDlgNewDiagramCatLbl">'+mxResources.get("newDiagram",null,"New Diagram")+'</div><div class="geTempDlgNewDiagramCatList"></div><div class="geTempDlgNewDiagramCatFooter"><div class="geTempDlgShowAllBtn">'+mxResources.get("showAll",null,"+ Show all")+'</div></div></div><div class="geTempDlgDiagramsList"><div class="geTempDlgDiagramsListHeader"><div class="geTempDlgDiagramsListTitle"></div><div class="geTempDlgDiagramsListBtns"><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge" data-id="myDiagramsBtn"><img src="/images/my-diagrams.svg" class="geTempDlgMyDiagramsBtnImg"> <span>'+
mxResources.get("myDiagrams",null,"My diagrams")+'</span></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge geTempDlgRadioBtnActive" data-id="allDiagramsBtn"><img src="/images/all-diagrams-sel.svg" class="geTempDlgAllDiagramsBtnImg"> <span>'+mxResources.get("allDiagrams",null,"All diagrams")+'</span></div><div class="geTempDlgSpacer"> </div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall geTempDlgRadioBtnActive" data-id="tilesBtn"><img src="/images/tiles-sel.svg" class="geTempDlgTilesBtnImg"></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall" data-id="listBtn"><img src="/images/list.svg" class="geTempDlgListBtnImg"></div></div></div><div class="geTempDlgDiagramsTiles"></div></div></div><br style="clear:both;"/><div class="geTempDlgFooter"><span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">&#x1F6C8; '+
mxResources.get("linkToDiagramHint",null,"Add a link to this diagram. The diagram can only be edited from the page that owns it.")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram",null,"Link to Diagram")+'</button><div class="geTempDlgCreateBtn">'+mxResources.get("create",null,"Create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel",null,"Cancel")+"</div></div>",c=document.createElement("div");c.innerHTML=a;c.className="geTemplateDlg";
-var a=window.innerWidth,d=window.innerHeight,b=987,e=712;.9*a<b&&(b=Math.max(.9*a,600),c.style.width=b+"px");.9*d<e&&(e=Math.max(.9*d,300),c.style.height=e+"px");this.width=b;this.height=e;this.container=c};
-TemplatesDialog.prototype.init=function(a,c,d,b,e,g,k,l,n,q){function f(){null!=F&&(F.style.fontWeight="normal",F.style.textDecoration="none",F=null)}function m(a,b,c,d,f,m,p){if(-1<a.className.indexOf("geTempDlgRadioBtnActive"))return!1;a.className+=" geTempDlgRadioBtnActive";B.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(p?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");B.querySelector("."+b).src="/images/"+c+"-sel.svg";B.querySelector("."+f).src="/images/"+
-m+".svg";return!0}function p(a){function b(a){Z.removeChild(d);B.removeChild(c);Z.scrollTop=m}a=a.prevImgUrl||a.imgUrl||TEMPLATE_PATH+"/"+a.url.substring(0,a.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";B.appendChild(c);var d=document.createElement("div");d.className="geTempDlgDiagramPreviewBox";var f=document.createElement("img");f.src=a;d.appendChild(f);a=document.createElement("img");a.src="/images/close.png";a.className="geTempDlgPreviewCloseBtn";
-a.setAttribute("title",mxResources.get("close"));d.appendChild(a);var m=Z.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(c,"click",b);Z.appendChild(d);Z.scrollTop=0;d.style.lineHeight=d.clientHeight+"px"}function u(a,b,c){if(null!=I){for(var d=I.className.split(" "),f=0;f<d.length;f++)if(-1<d[f].indexOf("Active")){d.splice(f,1);break}I.className=d.join(" ")}null!=a?(I=a,I.className+=" "+b,K=c,U.className="geTempDlgCreateBtn"):(K=I=null,U.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
-function v(b){if(null!=K){var d=K;K=null;U.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";d.isExternal?(1==b?q(d.url,d,"nameInput.value"):n(d.url,d,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+d.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(c(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function t(a){a=a?"":"none";for(var b=B.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<b.length;c++)b[c].style.display=
-a}function z(a,b,c){function d(){U.innerHTML=b?mxUtils.htmlEntities(mxResources.get("create")):mxUtils.htmlEntities(mxResources.get("copy"));t(!b)}T.innerHTML="";u();N=a;var f=null;if(c){f=document.createElement("table");f.className="geTempDlgDiagramsListGrid";var m=document.createElement("tr"),e=document.createElement("th");e.style.width="50%";e.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram",null,"Diagram"));m.appendChild(e);e=document.createElement("th");e.style.width="25%";e.innerHTML=
-mxUtils.htmlEntities(mxResources.get("changedBy",null,"Changed By"));m.appendChild(e);e=document.createElement("th");e.style.width="25%";e.innerHTML=mxUtils.htmlEntities(mxResources.get("lastModifiedOn",null,"Last modified on"));m.appendChild(e);f.appendChild(m);T.appendChild(f)}for(m=0;m<a.length;m++){a[m].isExternal=!b;var g=a[m].url,e=mxUtils.htmlEntities(a[m].title),A=a[m].tooltip||a[m].title,k=a[m].imgUrl,y=mxUtils.htmlEntities(a[m].changedBy||""),l=mxUtils.htmlEntities(a[m].lastModifiedOn||
-"");k||(k=TEMPLATE_PATH+"/"+g.substring(0,g.length-4)+".png");g=c?50:15;null!=e&&e.length>g&&(e=e.substring(0,g)+"&hellip;");if(c){var D=document.createElement("tr"),k=document.createElement("td"),n=document.createElement("img");n.src="/images/icon-search.svg";n.className="geTempDlgDiagramListPreviewBtn";n.setAttribute("title",mxResources.get("preview"));k.appendChild(n);A=document.createElement("span");A.className="geTempDlgDiagramTitle";A.innerHTML=e;k.appendChild(A);D.appendChild(k);k=document.createElement("td");
-k.innerHTML=y;D.appendChild(k);k=document.createElement("td");k.innerHTML=l;D.appendChild(k);f.appendChild(D);null==I&&(d(),u(D,"geTempDlgDiagramsListGridActive",a[m]));(function(a,b){mxEvent.addListener(D,"click",function(){I!=b&&(d(),u(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(D,"dblclick",v);mxEvent.addListener(n,"click",function(){p(a)})})(a[m],D)}else{var B=document.createElement("div");B.className="geTempDlgDiagramTile";B.setAttribute("title",A);null==I&&(d(),u(B,"geTempDlgDiagramTileActive",
-a[m]));y=document.createElement("div");y.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var x=document.createElement("img");x.style.display="none";(function(a,b){x.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};x.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(x,y);x.src=k;y.appendChild(x);B.appendChild(y);y=document.createElement("div");y.className="geTempDlgDiagramTileLbl";y.innerHTML=null!=e?e:"";B.appendChild(y);
-n=document.createElement("img");n.src="/images/icon-search.svg";n.className="geTempDlgDiagramPreviewBtn";n.setAttribute("title",mxResources.get("preview"));B.appendChild(n);(function(a,b){mxEvent.addListener(B,"click",function(){I!=b&&(d(),u(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(B,"dblclick",v);mxEvent.addListener(n,"click",function(){p(a)})})(a[m],B);T.appendChild(B)}}}function x(a,b){aa.innerHTML="";u();for(var c=!b&&5<a.length?5:a.length,d=0;d<c;d++){var f=a[d];f.isCategory=
-!0;var m=document.createElement("div"),p=mxResources.get(f.title);null==p&&(p=f.title.substring(0,1).toUpperCase()+f.title.substring(1));m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",p);p=mxUtils.htmlEntities(p);15<p.length&&(p=p.substring(0,15)+"&hellip;");null==I&&(U.innerHTML=mxUtils.htmlEntities(mxResources.get("create")),t(),u(m,"geTempDlgNewDiagramCatItemActive",f));var e=document.createElement("div");e.className="geTempDlgNewDiagramCatItemImg";var g=document.createElement("img");
-g.src=NEW_DIAGRAM_CATS_PATH+"/"+f.img;e.appendChild(g);m.appendChild(e);e=document.createElement("div");e.className="geTempDlgNewDiagramCatItemLbl";e.innerHTML=p;m.appendChild(e);aa.appendChild(m);(function(a,b){mxEvent.addListener(m,"click",function(){I!=b&&(U.innerHTML=mxUtils.htmlEntities(mxResources.get("create")),t(),u(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(m,"dblclick",v)})(f,m)}W.style.display=5>a.length?"none":""}function C(a){var b=B.querySelector(".geTemplatesList"),
-c;for(c in a){var d=document.createElement("div"),f=mxResources.get(c),m=a[c];null==f&&(f=c.substring(0,1).toUpperCase()+c.substring(1));d.className="geTemplateCatLink";d.setAttribute("title",f+" ("+m.length+")");f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");d.innerHTML=f+" ("+m.length+")";b.appendChild(d);(function(b,c,f){mxEvent.addListener(d,"click",function(){F!=f&&(null!=F?(F.style.fontWeight="normal",F.style.textDecoration="none"):(fa.style.display="none",ga.style.minHeight=
-"100%"),F=f,F.style.fontWeight="bold",F.style.textDecoration="underline",Z.scrollTop=0,A&&(D=!0),L.innerHTML=c,V.style.display="none",z(a[b],!0))})})(c,f,d)}}function H(a){k&&(Z.scrollTop=0,T.innerHTML="",ba.spin(T),D=!1,A=!0,L.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag",null,"Recent Diagrams")),R=null,k(M,a?null:g))}function y(a){f();Z.scrollTop=0;T.innerHTML="";ba.spin(T);D=!1;A=!0;da=null;L.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults",null,"Search Results"))+' "'+
-mxUtils.htmlEntities(a)+'"';l(a,M,E?null:g);R=a}b=null!=b?b:TEMPLATE_PATH+"/index.xml";e=null!=e?e:NEW_DIAGRAM_CATS_PATH+"/index.xml";var B=this.container,A=!1,D=!1,F=null,I=null,K=null,G=!1,E=!0,J=!1,N=[],R,W=B.querySelector(".geTempDlgShowAllBtn"),T=B.querySelector(".geTempDlgDiagramsTiles"),L=B.querySelector(".geTempDlgDiagramsListTitle"),V=B.querySelector(".geTempDlgDiagramsListBtns"),Z=B.querySelector(".geTempDlgContent"),ga=B.querySelector(".geTempDlgDiagramsList"),fa=B.querySelector(".geTempDlgNewDiagramCat"),
-aa=B.querySelector(".geTempDlgNewDiagramCatList"),U=B.querySelector(".geTempDlgCreateBtn"),ba=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(B.querySelector(".geTempDlgNewDiagramlbl"),"click",function(){f();fa.style.display="";ga.style.minHeight="calc(100% - 280px)";H(E)});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){m(this,"geTempDlgAllDiagramsBtnImg",
-"all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(E=!0,null==R?H(E):y(R))});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){m(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(E=!1,null==R?H(E):y(R))});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){m(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg",
-"tiles",!1)&&(J=!0,z(N,!1,J))});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){m(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(J=!1,z(N,!1,J))});mxEvent.addListener(W,"click",function(){G?(fa.style.height="280px",aa.style.height="190px",W.innerHTML=mxUtils.htmlEntities(mxResources.get("showAll",null,"+ Show all")),x(ea)):(fa.style.height="440px",aa.style.height="355px",W.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess",
-null,"- Show less")),x(ea,!0));G=!G});var Q=!1,ca=!1,Y={},ea=[],P=1;mxUtils.get(b,function(a){if(!Q){Q=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=Y[b];null==c&&(P++,c=[],Y[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),imgUrl:a.getAttribute("imgUrl")})}}a=
-a.nextSibling}C(Y)}});mxUtils.get(e,function(a){if(!ca){ca=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&ea.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title")}),a=a.nextSibling;x(ea)}});var M=function(a,b){V.style.display="";ba.stop();A=!1;D?D=!1:b?T.innerHTML=b:0==a.length?T.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found")):
-z(a,!1,J)};H(E);var da=null;l&&mxEvent.addListener(B.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=da&&clearTimeout(da);13==a.keyCode?y(b.value):da=setTimeout(function(){y(b.value)},500)});mxEvent.addListener(U,"click",v);mxEvent.addListener(B.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){v(!0)});mxEvent.addListener(B.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=d&&d();a.hideDialog(!0)})};
-var BtnDialog=function(a,c,d,b){var e=document.createElement("div");e.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("done"));var k="Unknown",l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("align","absmiddle");l.style.marginRight="10px";c==a.drive?(k=mxResources.get("googleDrive"),l.src=IMAGE_PATH+"/google-drive-logo-white.svg"):c==a.dropbox?
+var a=window.innerWidth,d=window.innerHeight,b=987,f=712;.9*a<b&&(b=Math.max(.9*a,600),c.style.width=b+"px");.9*d<f&&(f=Math.max(.9*d,300),c.style.height=f+"px");this.width=b;this.height=f;this.container=c};
+TemplatesDialog.prototype.init=function(a,c,d,b,f,g,k,l,n,q){function e(){null!=F&&(F.style.fontWeight="normal",F.style.textDecoration="none",F=null)}function m(a,b,c,e,d,m,p){if(-1<a.className.indexOf("geTempDlgRadioBtnActive"))return!1;a.className+=" geTempDlgRadioBtnActive";C.querySelector(".geTempDlgRadioBtn[data-id="+e+"]").className="geTempDlgRadioBtn "+(p?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");C.querySelector("."+b).src="/images/"+c+"-sel.svg";C.querySelector("."+d).src="/images/"+
+m+".svg";return!0}function p(a){function b(a){Z.removeChild(e);C.removeChild(c);Z.scrollTop=m}a=a.prevImgUrl||a.imgUrl||TEMPLATE_PATH+"/"+a.url.substring(0,a.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";C.appendChild(c);var e=document.createElement("div");e.className="geTempDlgDiagramPreviewBox";var d=document.createElement("img");d.src=a;e.appendChild(d);a=document.createElement("img");a.src="/images/close.png";a.className="geTempDlgPreviewCloseBtn";
+a.setAttribute("title",mxResources.get("close"));e.appendChild(a);var m=Z.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(c,"click",b);Z.appendChild(e);Z.scrollTop=0;e.style.lineHeight=e.clientHeight+"px"}function u(a,b,c){if(null!=I){for(var e=I.className.split(" "),d=0;d<e.length;d++)if(-1<e[d].indexOf("Active")){e.splice(d,1);break}I.className=e.join(" ")}null!=a?(I=a,I.className+=" "+b,J=c,U.className="geTempDlgCreateBtn"):(J=I=null,U.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
+function v(b){if(null!=J){var e=J;J=null;U.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";e.isExternal?(1==b?q(e.url,e,"nameInput.value"):n(e.url,e,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+e.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(c(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function t(a){a=a?"":"none";for(var b=C.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<b.length;c++)b[c].style.display=
+a}function y(a,b,c){function e(){U.innerHTML=b?mxUtils.htmlEntities(mxResources.get("create")):mxUtils.htmlEntities(mxResources.get("copy"));t(!b)}T.innerHTML="";u();M=a;var d=null;if(c){d=document.createElement("table");d.className="geTempDlgDiagramsListGrid";var m=document.createElement("tr"),f=document.createElement("th");f.style.width="50%";f.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram",null,"Diagram"));m.appendChild(f);f=document.createElement("th");f.style.width="25%";f.innerHTML=
+mxUtils.htmlEntities(mxResources.get("changedBy",null,"Changed By"));m.appendChild(f);f=document.createElement("th");f.style.width="25%";f.innerHTML=mxUtils.htmlEntities(mxResources.get("lastModifiedOn",null,"Last modified on"));m.appendChild(f);d.appendChild(m);T.appendChild(d)}for(m=0;m<a.length;m++){a[m].isExternal=!b;var g=a[m].url,f=mxUtils.htmlEntities(a[m].title),A=a[m].tooltip||a[m].title,k=a[m].imgUrl,x=mxUtils.htmlEntities(a[m].changedBy||""),l=mxUtils.htmlEntities(a[m].lastModifiedOn||
+"");k||(k=TEMPLATE_PATH+"/"+g.substring(0,g.length-4)+".png");g=c?50:15;null!=f&&f.length>g&&(f=f.substring(0,g)+"&hellip;");if(c){var D=document.createElement("tr"),k=document.createElement("td"),n=document.createElement("img");n.src="/images/icon-search.svg";n.className="geTempDlgDiagramListPreviewBtn";n.setAttribute("title",mxResources.get("preview"));k.appendChild(n);A=document.createElement("span");A.className="geTempDlgDiagramTitle";A.innerHTML=f;k.appendChild(A);D.appendChild(k);k=document.createElement("td");
+k.innerHTML=x;D.appendChild(k);k=document.createElement("td");k.innerHTML=l;D.appendChild(k);d.appendChild(D);null==I&&(e(),u(D,"geTempDlgDiagramsListGridActive",a[m]));(function(a,b){mxEvent.addListener(D,"click",function(){I!=b&&(e(),u(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(D,"dblclick",v);mxEvent.addListener(n,"click",function(){p(a)})})(a[m],D)}else{var C=document.createElement("div");C.className="geTempDlgDiagramTile";C.setAttribute("title",A);null==I&&(e(),u(C,"geTempDlgDiagramTileActive",
+a[m]));x=document.createElement("div");x.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var z=document.createElement("img");z.style.display="none";(function(a,b){z.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};z.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(z,x);z.src=k;x.appendChild(z);C.appendChild(x);x=document.createElement("div");x.className="geTempDlgDiagramTileLbl";x.innerHTML=null!=f?f:"";C.appendChild(x);
+n=document.createElement("img");n.src="/images/icon-search.svg";n.className="geTempDlgDiagramPreviewBtn";n.setAttribute("title",mxResources.get("preview"));C.appendChild(n);(function(a,b){mxEvent.addListener(C,"click",function(){I!=b&&(e(),u(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(C,"dblclick",v);mxEvent.addListener(n,"click",function(){p(a)})})(a[m],C);T.appendChild(C)}}}function z(a,b){aa.innerHTML="";u();for(var c=!b&&5<a.length?5:a.length,e=0;e<c;e++){var d=a[e];d.isCategory=
+!0;var m=document.createElement("div"),p=mxResources.get(d.title);null==p&&(p=d.title.substring(0,1).toUpperCase()+d.title.substring(1));m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",p);p=mxUtils.htmlEntities(p);15<p.length&&(p=p.substring(0,15)+"&hellip;");null==I&&(U.innerHTML=mxUtils.htmlEntities(mxResources.get("create")),t(),u(m,"geTempDlgNewDiagramCatItemActive",d));var f=document.createElement("div");f.className="geTempDlgNewDiagramCatItemImg";var g=document.createElement("img");
+g.src=NEW_DIAGRAM_CATS_PATH+"/"+d.img;f.appendChild(g);m.appendChild(f);f=document.createElement("div");f.className="geTempDlgNewDiagramCatItemLbl";f.innerHTML=p;m.appendChild(f);aa.appendChild(m);(function(a,b){mxEvent.addListener(m,"click",function(){I!=b&&(U.innerHTML=mxUtils.htmlEntities(mxResources.get("create")),t(),u(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(m,"dblclick",v)})(d,m)}W.style.display=5>a.length?"none":""}function B(a){var b=C.querySelector(".geTemplatesList"),
+c;for(c in a){var e=document.createElement("div"),d=mxResources.get(c),m=a[c];null==d&&(d=c.substring(0,1).toUpperCase()+c.substring(1));e.className="geTemplateCatLink";e.setAttribute("title",d+" ("+m.length+")");d=mxUtils.htmlEntities(d);15<d.length&&(d=d.substring(0,15)+"&hellip;");e.innerHTML=d+" ("+m.length+")";b.appendChild(e);(function(b,c,d){mxEvent.addListener(e,"click",function(){F!=d&&(null!=F?(F.style.fontWeight="normal",F.style.textDecoration="none"):(fa.style.display="none",ga.style.minHeight=
+"100%"),F=d,F.style.fontWeight="bold",F.style.textDecoration="underline",Z.scrollTop=0,A&&(D=!0),L.innerHTML=c,V.style.display="none",y(a[b],!0))})})(c,d,e)}}function G(a){k&&(Z.scrollTop=0,T.innerHTML="",ba.spin(T),D=!1,A=!0,L.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag",null,"Recent Diagrams")),R=null,k(N,a?null:g))}function x(a){e();Z.scrollTop=0;T.innerHTML="";ba.spin(T);D=!1;A=!0;da=null;L.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults",null,"Search Results"))+' "'+
+mxUtils.htmlEntities(a)+'"';l(a,N,E?null:g);R=a}b=null!=b?b:TEMPLATE_PATH+"/index.xml";f=null!=f?f:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,A=!1,D=!1,F=null,I=null,J=null,H=!1,E=!0,K=!1,M=[],R,W=C.querySelector(".geTempDlgShowAllBtn"),T=C.querySelector(".geTempDlgDiagramsTiles"),L=C.querySelector(".geTempDlgDiagramsListTitle"),V=C.querySelector(".geTempDlgDiagramsListBtns"),Z=C.querySelector(".geTempDlgContent"),ga=C.querySelector(".geTempDlgDiagramsList"),fa=C.querySelector(".geTempDlgNewDiagramCat"),
+aa=C.querySelector(".geTempDlgNewDiagramCatList"),U=C.querySelector(".geTempDlgCreateBtn"),ba=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(C.querySelector(".geTempDlgNewDiagramlbl"),"click",function(){e();fa.style.display="";ga.style.minHeight="calc(100% - 280px)";G(E)});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){m(this,"geTempDlgAllDiagramsBtnImg",
+"all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(E=!0,null==R?G(E):x(R))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){m(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(E=!1,null==R?G(E):x(R))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){m(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg",
+"tiles",!1)&&(K=!0,y(M,!1,K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){m(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(K=!1,y(M,!1,K))});mxEvent.addListener(W,"click",function(){H?(fa.style.height="280px",aa.style.height="190px",W.innerHTML=mxUtils.htmlEntities(mxResources.get("showAll",null,"+ Show all")),z(ea)):(fa.style.height="440px",aa.style.height="355px",W.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess",
+null,"- Show less")),z(ea,!0));H=!H});var Q=!1,ca=!1,Y={},ea=[],P=1;mxUtils.get(b,function(a){if(!Q){Q=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=Y[b];null==c&&(P++,c=[],Y[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),imgUrl:a.getAttribute("imgUrl")})}}a=
+a.nextSibling}B(Y)}});mxUtils.get(f,function(a){if(!ca){ca=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&ea.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title")}),a=a.nextSibling;z(ea)}});var N=function(a,b){V.style.display="";ba.stop();A=!1;D?D=!1:b?T.innerHTML=b:0==a.length?T.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found")):
+y(a,!1,K)};G(E);var da=null;l&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=da&&clearTimeout(da);13==a.keyCode?x(b.value):da=setTimeout(function(){x(b.value)},500)});mxEvent.addListener(U,"click",v);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){v(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=d&&d();a.hideDialog(!0)})};
+var BtnDialog=function(a,c,d,b){var f=document.createElement("div");f.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("done"));var k="Unknown",l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("align","absmiddle");l.style.marginRight="10px";c==a.drive?(k=mxResources.get("googleDrive"),l.src=IMAGE_PATH+"/google-drive-logo-white.svg"):c==a.dropbox?
(k=mxResources.get("dropbox"),l.src=IMAGE_PATH+"/dropbox-logo-white.svg"):c==a.oneDrive?(k=mxResources.get("oneDrive"),l.src=IMAGE_PATH+"/onedrive-logo-white.svg"):c==a.gitHub?(k=mxResources.get("github"),l.src=IMAGE_PATH+"/github-logo-white.svg"):c==a.gitLab?(k=mxResources.get("gitlab"),l.src=IMAGE_PATH+"/gitlab-logo.svg"):c==a.trello&&(k=mxResources.get("trello"),l.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizedIn",[k],"You are now authorized in {1}"));
-d=mxUtils.button(d,b);d.insertBefore(l,d.firstChild);d.style.marginTop="6px";d.className="geBigButton";d.style.fontSize="18px";d.style.padding="14px";e.appendChild(g);e.appendChild(a);e.appendChild(d);this.container=e},FontDialog=function(a,c,d,b,e){function g(a){this.style.border="";13==a.keyCode&&C.click()}var k,l,n,q=document.createElement("table"),f=document.createElement("tbody");q.style.marginTop="8px";k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.whiteSpace=
-"nowrap";l.style.fontSize="10pt";l.style.fontWeight="bold";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";m.setAttribute("value","sysfonts");m.setAttribute("type","radio");m.setAttribute("name","current-fontdialog");m.setAttribute("id","fontdialog-sysfonts");l.appendChild(m);n=document.createElement("label");n.setAttribute("for","fontdialog-sysfonts");mxUtils.write(n,mxResources.get("sysFonts",null,"System Fonts"));l.appendChild(n);k.appendChild(l);f.appendChild(k);
-k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(l);var p=document.createElement("input");"s"==b&&p.setAttribute("value",c);p.style.marginLeft="4px";p.style.width="250px";p.className="dlg_fontName_s";l=document.createElement("td");l.appendChild(p);k.appendChild(l);f.appendChild(k);k=document.createElement("tr");
+d=mxUtils.button(d,b);d.insertBefore(l,d.firstChild);d.style.marginTop="6px";d.className="geBigButton";d.style.fontSize="18px";d.style.padding="14px";f.appendChild(g);f.appendChild(a);f.appendChild(d);this.container=f},FontDialog=function(a,c,d,b,f){function g(a){this.style.border="";13==a.keyCode&&B.click()}var k,l,n,q=document.createElement("table"),e=document.createElement("tbody");q.style.marginTop="8px";k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.whiteSpace=
+"nowrap";l.style.fontSize="10pt";l.style.fontWeight="bold";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";m.setAttribute("value","sysfonts");m.setAttribute("type","radio");m.setAttribute("name","current-fontdialog");m.setAttribute("id","fontdialog-sysfonts");l.appendChild(m);n=document.createElement("label");n.setAttribute("for","fontdialog-sysfonts");mxUtils.write(n,mxResources.get("sysFonts",null,"System Fonts"));l.appendChild(n);k.appendChild(l);e.appendChild(k);
+k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(l);var p=document.createElement("input");"s"==b&&p.setAttribute("value",c);p.style.marginLeft="4px";p.style.width="250px";p.className="dlg_fontName_s";l=document.createElement("td");l.appendChild(p);k.appendChild(l);e.appendChild(k);k=document.createElement("tr");
l=document.createElement("td");l.colSpan=2;l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.fontWeight="bold";var u=document.createElement("input");u.style.cssText="margin-right:8px;margin-bottom:8px;";u.setAttribute("value","googlefonts");u.setAttribute("type","radio");u.setAttribute("name","current-fontdialog");u.setAttribute("id","fontdialog-googlefonts");l.appendChild(u);n=document.createElement("label");n.setAttribute("for","fontdialog-googlefonts");mxUtils.write(n,mxResources.get("googleFonts",
-null,"Google Fonts"));l.appendChild(n);k.appendChild(l);f.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(l);var v=document.createElement("input");"g"==b&&v.setAttribute("value",c);v.style.marginLeft="4px";v.style.width="250px";v.className="dlg_fontName_g";l=document.createElement("td");l.appendChild(v);
-k.appendChild(l);f.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.fontWeight="bold";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","webfonts");t.setAttribute("type","radio");t.setAttribute("name","current-fontdialog");t.setAttribute("id","fontdialog-webfonts");l.appendChild(t);n=document.createElement("label");n.setAttribute("for",
-"fontdialog-webfonts");mxUtils.write(n,mxResources.get("webfonts",null,"Web Fonts"));l.appendChild(n);k.appendChild(l);f.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(l);var z=document.createElement("input");"w"==b&&z.setAttribute("value",c);z.style.marginLeft="4px";z.style.width="250px";
-z.className="dlg_fontName_w";l=document.createElement("td");l.appendChild(z);k.appendChild(l);f.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontUrl",null,"Font URL")+":");k.appendChild(l);var x=document.createElement("input");x.setAttribute("value",d||"");x.style.marginLeft="4px";x.style.width="250px";x.className="dlg_fontUrl";l=document.createElement("td");
-l.appendChild(x);k.appendChild(l);f.appendChild(k);this.init=function(){var a=p;"g"==b?a=v:"w"==b&&(a=z);a.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?a.select():document.execCommand("selectAll",!1,null)};k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="20px";l.style.whiteSpace="nowrap";l.setAttribute("align","right");a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://www.diagrams.net/blog/external-fonts")}),
-c.className="geBtn",l.appendChild(c));c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&l.appendChild(c);var C=mxUtils.button(mxResources.get("apply"),function(){var b,c,d;m.checked?(b=p.value,d="s"):u.checked?(b=v.value,c=Editor.GOOGLE_FONTS+encodeURIComponent(b).replace(/%20/g,"+"),d="g"):t.checked&&(b=z.value,c=x.value,d="w");var f;f=c;var g=d,k=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;null==
-b||0==b.length?(q.querySelector(".dlg_fontName_"+g).style.border="1px solid red",f=!1):"w"!=g||k.test(f)?f=!0:(q.querySelector(".dlg_fontUrl").style.border="1px solid red",f=!1);f&&(e(b,c,d),a.hideDialog())});C.className="geBtn gePrimaryBtn";mxEvent.addListener(p,"keypress",g);mxEvent.addListener(v,"keypress",g);mxEvent.addListener(z,"keypress",g);mxEvent.addListener(x,"keypress",g);mxEvent.addListener(p,"focus",function(){m.setAttribute("checked","checked");m.checked=!0});mxEvent.addListener(v,"focus",
-function(){u.setAttribute("checked","checked");u.checked=!0});mxEvent.addListener(z,"focus",function(){t.setAttribute("checked","checked");t.checked=!0});mxEvent.addListener(x,"focus",function(){t.setAttribute("checked","checked");t.checked=!0});l.appendChild(C);a.editor.cancelFirst||l.appendChild(c);k.appendChild(l);f.appendChild(k);q.appendChild(f);this.container=q};
-function AspectDialog(a,c,d,b,e){this.aspect={pageId:c||a.pages[0].getId(),layerIds:d||[]};c=document.createElement("div");var g=document.createElement("h5");g.style.margin="0 0 10px";mxUtils.write(g,mxResources.get("pages"));c.appendChild(g);d=document.createElement("div");d.className="geAspectDlgList";c.appendChild(d);g=document.createElement("h5");g.style.margin="0 0 10px";mxUtils.write(g,mxResources.get("layers"));c.appendChild(g);g=document.createElement("div");g.className="geAspectDlgList";
-c.appendChild(g);this.pagesContainer=d;this.layersContainer=g;this.ui=a;d=document.createElement("div");d.style.marginTop="16px";d.style.textAlign="center";g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=e&&e()});g.className="geBtn";a.editor.cancelFirst&&d.appendChild(g);var k=mxUtils.button(mxResources.get("ok"),mxUtils.bind(this,function(){a.hideDialog();b({pageId:this.selectedPage,layerIds:Object.keys(this.selectedLayers)})}));d.appendChild(k);k.className="geBtn gePrimaryBtn";
+null,"Google Fonts"));l.appendChild(n);k.appendChild(l);e.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(l);var v=document.createElement("input");"g"==b&&v.setAttribute("value",c);v.style.marginLeft="4px";v.style.width="250px";v.className="dlg_fontName_g";l=document.createElement("td");l.appendChild(v);
+k.appendChild(l);e.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.fontWeight="bold";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","webfonts");t.setAttribute("type","radio");t.setAttribute("name","current-fontdialog");t.setAttribute("id","fontdialog-webfonts");l.appendChild(t);n=document.createElement("label");n.setAttribute("for",
+"fontdialog-webfonts");mxUtils.write(n,mxResources.get("webfonts",null,"Web Fonts"));l.appendChild(n);k.appendChild(l);e.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(l);var y=document.createElement("input");"w"==b&&y.setAttribute("value",c);y.style.marginLeft="4px";y.style.width="250px";
+y.className="dlg_fontName_w";l=document.createElement("td");l.appendChild(y);k.appendChild(l);e.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.style.whiteSpace="nowrap";l.style.fontSize="10pt";l.style.width="120px";l.style.paddingLeft="15px";mxUtils.write(l,mxResources.get("fontUrl",null,"Font URL")+":");k.appendChild(l);var z=document.createElement("input");z.setAttribute("value",d||"");z.style.marginLeft="4px";z.style.width="250px";z.className="dlg_fontUrl";l=document.createElement("td");
+l.appendChild(z);k.appendChild(l);e.appendChild(k);this.init=function(){var a=p;"g"==b?a=v:"w"==b&&(a=y);a.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?a.select():document.execCommand("selectAll",!1,null)};k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="20px";l.style.whiteSpace="nowrap";l.setAttribute("align","right");a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://www.diagrams.net/blog/external-fonts")}),
+c.className="geBtn",l.appendChild(c));c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&l.appendChild(c);var B=mxUtils.button(mxResources.get("apply"),function(){var b,c,e;m.checked?(b=p.value,e="s"):u.checked?(b=v.value,c=Editor.GOOGLE_FONTS+encodeURIComponent(b).replace(/%20/g,"+"),e="g"):t.checked&&(b=y.value,c=z.value,e="w");var d;d=c;var g=e,k=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;null==
+b||0==b.length?(q.querySelector(".dlg_fontName_"+g).style.border="1px solid red",d=!1):"w"!=g||k.test(d)?d=!0:(q.querySelector(".dlg_fontUrl").style.border="1px solid red",d=!1);d&&(f(b,c,e),a.hideDialog())});B.className="geBtn gePrimaryBtn";mxEvent.addListener(p,"keypress",g);mxEvent.addListener(v,"keypress",g);mxEvent.addListener(y,"keypress",g);mxEvent.addListener(z,"keypress",g);mxEvent.addListener(p,"focus",function(){m.setAttribute("checked","checked");m.checked=!0});mxEvent.addListener(v,"focus",
+function(){u.setAttribute("checked","checked");u.checked=!0});mxEvent.addListener(y,"focus",function(){t.setAttribute("checked","checked");t.checked=!0});mxEvent.addListener(z,"focus",function(){t.setAttribute("checked","checked");t.checked=!0});l.appendChild(B);a.editor.cancelFirst||l.appendChild(c);k.appendChild(l);e.appendChild(k);q.appendChild(e);this.container=q};
+function AspectDialog(a,c,d,b,f){this.aspect={pageId:c||a.pages[0].getId(),layerIds:d||[]};c=document.createElement("div");var g=document.createElement("h5");g.style.margin="0 0 10px";mxUtils.write(g,mxResources.get("pages"));c.appendChild(g);d=document.createElement("div");d.className="geAspectDlgList";c.appendChild(d);g=document.createElement("h5");g.style.margin="0 0 10px";mxUtils.write(g,mxResources.get("layers"));c.appendChild(g);g=document.createElement("div");g.className="geAspectDlgList";
+c.appendChild(g);this.pagesContainer=d;this.layersContainer=g;this.ui=a;d=document.createElement("div");d.style.marginTop="16px";d.style.textAlign="center";g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});g.className="geBtn";a.editor.cancelFirst&&d.appendChild(g);var k=mxUtils.button(mxResources.get("ok"),mxUtils.bind(this,function(){a.hideDialog();b({pageId:this.selectedPage,layerIds:Object.keys(this.selectedLayers)})}));d.appendChild(k);k.className="geBtn gePrimaryBtn";
a.editor.cancelFirst||d.appendChild(g);k.setAttribute("disabled","disabled");this.okBtn=k;c.appendChild(d);this.container=c}AspectDialog.prototype.init=function(){for(var a=0;a<this.ui.pages.length;a++){var c=this.ui.updatePageRoot(this.ui.pages[a]);this.createPageItem(c.getId(),c.getName(),c.node,c.root)}};
-AspectDialog.prototype.createViewer=function(a,c,d){mxEvent.disableContextMenu(a);a.style.userSelect="none";var b=new Graph(a);b.setTooltips(!1);b.setEnabled(!1);b.setPanning(!1);b.minFitScale=null;b.maxFitScale=null;b.centerZoom=!0;c=c.firstElementChild;if(null!=c){var e=c.getAttribute("background");if(null==e||""==e||e==mxConstants.NONE)e="#ffffff";a.style.backgroundColor=e;e=new mxCodec(c.ownerDocument);a=b.getModel();e.decode(c,a);c=a.getChildCount(a.root);for(var e=null==d,g=0;g<c;g++){var k=
-a.getChildAt(a.root,g);a.setVisible(k,e||d==k.id)}b.maxFitScale=1;b.fit(0);b.center()}return b};
-AspectDialog.prototype.createPageItem=function(a,c,d,b){var e=document.createElement("div");e.className="geAspectDlgListItem";e.setAttribute("data-page-id",a);e.innerHTML='<div style="max-width: 100%; max-height: 100%;"></div><div class="geAspectDlgListItemText">'+c+"</div>";this.pagesContainer.appendChild(e);var g=this.createViewer(e.childNodes[0],d);c=mxUtils.bind(this,function(){null!=this.selectedItem&&(this.selectedItem.className="geAspectDlgListItem");this.selectedItem=e;this.selectedPage=a;
-e.className+=" geAspectDlgListItemSelected";this.layersContainer.innerHTML="";this.selectedLayers={};this.okBtn.setAttribute("disabled","disabled");for(var b=g.model,b=b.getChildCells(b.getRoot()),c=0;c<b.length;c++)this.createLayerItem(b[c],a,g,d)});mxEvent.addListener(e,"click",c);this.aspect.pageId==a&&c()};
-AspectDialog.prototype.createLayerItem=function(a,c,d,b){c=d.convertValueToString(a)||mxResources.get("background")||"Background";var e=document.createElement("div");e.setAttribute("data-layer-id",a.id);e.className="geAspectDlgListItem";e.innerHTML='<div style="max-width: 100%; max-height: 100%;"></div><div class="geAspectDlgListItemText">'+c+"</div>";this.layersContainer.appendChild(e);this.createViewer(e.childNodes[0],b,a.id);b=mxUtils.bind(this,function(){0<=e.className.indexOf("geAspectDlgListItemSelected")?
-(e.className="geAspectDlgListItem",delete this.selectedLayers[a.id],0==Object.keys(this.selectedLayers).length&&this.okBtn.setAttribute("disabled","disabled")):(e.className+=" geAspectDlgListItemSelected",this.selectedLayers[a.id]=!0,this.okBtn.removeAttribute("disabled"))});mxEvent.addListener(e,"click",b);-1!=this.aspect.layerIds.indexOf(a.id)&&b()};(function(){Editor.prototype.appName="draw.io";Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
+AspectDialog.prototype.createViewer=function(a,c,d){mxEvent.disableContextMenu(a);a.style.userSelect="none";var b=new Graph(a);b.setTooltips(!1);b.setEnabled(!1);b.setPanning(!1);b.minFitScale=null;b.maxFitScale=null;b.centerZoom=!0;c=c.firstElementChild;if(null!=c){var f=c.getAttribute("background");if(null==f||""==f||f==mxConstants.NONE)f="#ffffff";a.style.backgroundColor=f;f=new mxCodec(c.ownerDocument);a=b.getModel();f.decode(c,a);c=a.getChildCount(a.root);for(var f=null==d,g=0;g<c;g++){var k=
+a.getChildAt(a.root,g);a.setVisible(k,f||d==k.id)}b.maxFitScale=1;b.fit(0);b.center()}return b};
+AspectDialog.prototype.createPageItem=function(a,c,d,b){var f=document.createElement("div");f.className="geAspectDlgListItem";f.setAttribute("data-page-id",a);f.innerHTML='<div style="max-width: 100%; max-height: 100%;"></div><div class="geAspectDlgListItemText">'+c+"</div>";this.pagesContainer.appendChild(f);var g=this.createViewer(f.childNodes[0],d);c=mxUtils.bind(this,function(){null!=this.selectedItem&&(this.selectedItem.className="geAspectDlgListItem");this.selectedItem=f;this.selectedPage=a;
+f.className+=" geAspectDlgListItemSelected";this.layersContainer.innerHTML="";this.selectedLayers={};this.okBtn.setAttribute("disabled","disabled");for(var b=g.model,b=b.getChildCells(b.getRoot()),c=0;c<b.length;c++)this.createLayerItem(b[c],a,g,d)});mxEvent.addListener(f,"click",c);this.aspect.pageId==a&&c()};
+AspectDialog.prototype.createLayerItem=function(a,c,d,b){c=d.convertValueToString(a)||mxResources.get("background")||"Background";var f=document.createElement("div");f.setAttribute("data-layer-id",a.id);f.className="geAspectDlgListItem";f.innerHTML='<div style="max-width: 100%; max-height: 100%;"></div><div class="geAspectDlgListItemText">'+c+"</div>";this.layersContainer.appendChild(f);this.createViewer(f.childNodes[0],b,a.id);b=mxUtils.bind(this,function(){0<=f.className.indexOf("geAspectDlgListItemSelected")?
+(f.className="geAspectDlgListItem",delete this.selectedLayers[a.id],0==Object.keys(this.selectedLayers).length&&this.okBtn.setAttribute("disabled","disabled")):(f.className+=" geAspectDlgListItemSelected",this.selectedLayers[a.id]=!0,this.okBtn.removeAttribute("disabled"))});mxEvent.addListener(f,"click",b);-1!=this.aspect.layerIds.indexOf(a.id)&&b()};(function(){Editor.prototype.appName="draw.io";Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=":
IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,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":
IMAGE_PATH+"/spin.gif";Editor.globeImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==";
@@ -8303,59 +8307,60 @@ enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{v
type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"north",dispName:"North"},{val:"east",dispName:"East"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Rotate Constraint",type:"bool",defVal:!1},{name:"connectable",dispName:"Connectable",type:"bool",defVal:!0},{name:"allowArrows",dispName:"Allow Arrows",type:"bool",defVal:!0},{name:"snapToPoint",dispName:"Snap to Point",type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",
defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",dispName:"Callout"},{val:"parallelogramPerimeter",
dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"jiggle",dispName:"Jiggle",type:"float",min:0,defVal:1.5,isVisible:function(a){return"1"==mxUtils.getValue(a.style,"comic","0")}},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"container",dispName:"Container",type:"bool",defVal:!1},{name:"recursiveResize",
-dispName:"Resize Children",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",
-dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",defVal:!1},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(a,b){return 0<a.vertices.length&&b.editorUi.editor.graph.isContainer(a.vertices[0])}}];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
-Editor.fastCompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.deflateRaw(a,{to:"string"})};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(a,{to:"string"})};Editor.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var f=0;f<c.length;f++)if("mxgraph"==c[f].getAttribute("class")){d.push(c[f]);break}0<d.length&&
-(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=Graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),
-null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||b||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=Editor.parseDiagramNode(d)));null==a||"mxGraphModel"==a.nodeName||b&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a){var b=mxUtils.trim(mxUtils.getTextContent(a)),c=null;0<
+dispName:"Resize Children",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"movableLabel",dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(a,b){var c=0<a.vertices.length?b.editorUi.editor.graph.getCellGeometry(a.vertices[0]):null;return null!=c&&!c.relative}},
+{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",
+defVal:!1},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(a,b){return 0<a.vertices.length&&b.editorUi.editor.graph.isContainer(a.vertices[0])}}];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
+Editor.fastCompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.deflateRaw(a,{to:"string"})};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(a,{to:"string"})};Editor.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),e=[];if(null!=c&&0<c.length)for(var d=0;d<c.length;d++)if("mxgraph"==c[d].getAttribute("class")){e.push(c[d]);break}0<e.length&&
+(c=e[0].getAttribute("data-mxgraph"),null!=c?(e=JSON.parse(c),null!=e&&null!=e.xml&&(e=mxUtils.parseXml(e.xml),a=e.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(c=mxUtils.getTextContent(e[0]),c=Graph.decompress(c),0<c.length&&(e=mxUtils.parseXml(c),a=e.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),
+null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||b||(e=null,"diagram"==a.nodeName?e=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(e=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=e&&(a=Editor.parseDiagramNode(e)));null==a||"mxGraphModel"==a.nodeName||b&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a){var b=mxUtils.trim(mxUtils.getTextContent(a)),c=null;0<
b.length?(a=Graph.decompress(b),null!=a&&0<a.length&&(c=mxUtils.parseXml(a).documentElement)):(a=mxUtils.getChildNodes(a),0<a.length&&(c=mxUtils.createXmlDocument(),c.appendChild(c.importNode(a[0],!0)),c=c.documentElement));return c};Editor.getDiagramNodeXml=function(a){var b=mxUtils.getTextContent(a),c=null;0<b.length?c=Graph.decompress(b):null!=a.firstChild&&(c=mxUtils.getXml(a.firstChild));return c};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&!mxClient.IS_SF?
-atob(a):Base64.decode(a,!0);for(var b=null,c="",d=0,f=0,m=[],p=null;f<a.length;){var e=a.charCodeAt(f),f=f+1;10!=e&&(c+=String.fromCharCode(e));e=="\n/Subject (".charCodeAt(d)?d++:d=0;if(11==d){var g=a.indexOf(")\n",f);if(g>f){b=a.substring(f,g);break}}10==e&&("endobj"==c?p=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(p=[],m[c.split(" ")[0]]=p):null!=p&&p.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(m));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,
-")")));return b};Editor.extractGraphModelFromXref=function(a){var b=a.trailer,c=null;null!=b&&(b=/.* \/Info (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<b.length&&(b=a[b[1]],null!=b&&(b=/.* \/Subject (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<b.length&&(a=a[b[1]],null!=a&&(a=a.join("\n"),c=a.substring(1,a.length-1))))));return c};Editor.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,
-mxUtils.bind(this,function(a,c,f){a=d.substring(a+8,a+8+f);"zTXt"==c?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(a.substring(f+2),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(K){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};
-Editor.extractParserError=function(a,b){var c=null,d=null!=a?a.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(c=b||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0])));return c};Editor.configure=function(a,b){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;
+atob(a):Base64.decode(a,!0);for(var b=null,c="",e=0,d=0,m=[],p=null;d<a.length;){var f=a.charCodeAt(d),d=d+1;10!=f&&(c+=String.fromCharCode(f));f=="\n/Subject (".charCodeAt(e)?e++:e=0;if(11==e){var g=a.indexOf(")\n",d);if(g>d){b=a.substring(d,g);break}}10==f&&("endobj"==c?p=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(p=[],m[c.split(" ")[0]]=p):null!=p&&p.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(m));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,
+")")));return b};Editor.extractGraphModelFromXref=function(a){var b=a.trailer,c=null;null!=b&&(b=/.* \/Info (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<b.length&&(b=a[b[1]],null!=b&&(b=/.* \/Subject (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<b.length&&(a=a[b[1]],null!=a&&(a=a.join("\n"),c=a.substring(1,a.length-1))))));return c};Editor.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),e=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(e,
+mxUtils.bind(this,function(a,c,d){a=e.substring(a+8,a+8+d);"zTXt"==c?(d=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,d)&&(a=pako.inflateRaw(a.substring(d+2),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(J){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};
+Editor.extractParserError=function(a,b){var c=null,e=null!=a?a.getElementsByTagName("parsererror"):null;null!=e&&0<e.length&&(c=b||mxResources.get("invalidChars"),e=e[0].getElementsByTagName("div"),0<e.length&&(c=mxUtils.getTextContent(e[0])));return c};Editor.configure=function(a,b){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;
ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=
a.compressXml&&(Editor.compressXml=a.compressXml);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var c=document.createElement("style");c.setAttribute("type","text/css");
-c.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(c,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=
+c.appendChild(document.createTextNode(a.css));var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(c,e)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=
a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=
a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(c=parseInt(a.autosaveDelay),!isNaN(c)&&0<c?DrawioFile.prototype.autosaveDelay=c:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!b)for(App.initPluginCallback(),c=0;c<a.plugins.length;c++)mxscript(a.plugins[c])}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var b=document.getElementsByTagName("script")[0];if(null!=b&&null!=b.parentNode){var c=document.createElement("style");
-c.setAttribute("type","text/css");c.appendChild(document.createTextNode(a));b.parentNode.insertBefore(c,b);a=a.split("url(");for(c=1;c<a.length;c++){var d=a[c].indexOf(")"),d=a[c].substring(0,d).replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),""),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");b.parentNode.insertBefore(f,b)}}}};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";
+c.setAttribute("type","text/css");c.appendChild(document.createTextNode(a));b.parentNode.insertBefore(c,b);a=a.split("url(");for(c=1;c<a.length;c++){var e=a[c].indexOf(")"),e=a[c].substring(0,e).replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),""),d=document.createElement("link");d.setAttribute("rel","preload");d.setAttribute("href",e);d.setAttribute("as","font");d.setAttribute("crossorigin","");b.parentNode.insertBefore(d,b)}}}};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";
Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var b=[],c=0;c<a;c++)b.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return b.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!mxClient.IS_SF;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;var a=Editor.prototype.setGraphXml;
-Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],d=c.getElementsByTagName("div");null!=d&&0<d.length&&(c=d[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==b.nodeName){c=b.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=c&&""!=c)c!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+
-"/"+c+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,
-c.width,c.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==b.getAttribute("shadow"),!1);if(c=b.getAttribute("extFonts"))try{for(c=c.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),d=0;d<c.length;d++)this.graph.addExtFont(c[d].name,
-c[d].url)}catch(K){console.log("ExtFonts format error: "+K.message)}}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var c=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",
-JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});b.setAttribute("extFonts",d.join("|"))}return b};Editor.prototype.isDataSvg=function(a){try{var b=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=b&&(null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=
+Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],e=c.getElementsByTagName("div");null!=e&&0<e.length&&(c=e[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==b.nodeName){c=b.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=c&&""!=c)c!=this.graph.currentStyle&&(e=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+
+"/"+c+".xml").getDocumentElement(),null!=e&&(d=new mxCodec(e.ownerDocument),d.decode(e,this.graph.getStylesheet())));else if(e=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=e){var d=new mxCodec(e.ownerDocument);d.decode(e,this.graph.getStylesheet())}this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,
+c.width,c.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==b.getAttribute("shadow"),!1);if(c=b.getAttribute("extFonts"))try{for(c=c.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),e=0;e<c.length;e++)this.graph.addExtFont(c[e].name,
+c[e].url)}catch(J){console.log("ExtFonts format error: "+J.message)}}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var c=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",
+JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var e=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});b.setAttribute("extFonts",e.join("|"))}return b};Editor.prototype.isDataSvg=function(a){try{var b=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=b&&(null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=
unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)){var c=mxUtils.parseXml(b).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(I){}return!1};Editor.prototype.extractGraphModel=function(a,b){return Editor.extractGraphModel.apply(this,arguments)};var d=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=
null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();d.apply(this,arguments)};var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;
this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(a,b){a=null!=a?a:DRAW_MATH_URL+"/MathJax.js?config=TeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||
{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],"HTML-CSS":{imageFont:null},TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==
-typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script");if(null!=d&&0<d.length){var f=
-document.createElement("script");f.type="text/javascript";f.src=a;d[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
-function(a,c,d,f){void 0!==c?b.push(c.replace(/\\'/g,"'")):void 0!==d?b.push(d.replace(/\\"/g,'"')):void 0!==f&&b.push(f);return""});/,\s*$/.test(a)&&b.push("");return b};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||
-"https://cdn.rawgit.com/"===a.substring(0,23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.blob.core.windows.net\//.test(a)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.draw\.io\/proxy/.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,c=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&
-!navigator.onLine?d=EditorUi.prototype.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||EditorUi.prototype.crossOriginImages&&c.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};Editor.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,
-mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(EditorUi.prototype.svgBrokenImage.src)});else{var c=new Image;EditorUi.prototype.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);try{b(a.toDataURL())}catch(G){b(EditorUi.prototype.svgBrokenImage.src)}};c.onerror=function(){b(EditorUi.prototype.svgBrokenImage.src)};c.src=a}};Editor.prototype.convertImages=
-function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var f=0,m=c||{};c=mxUtils.bind(this,function(c,p){for(var e=a.getElementsByTagName(c),g=0;g<e.length;g++)mxUtils.bind(this,function(c){var e=d.convert(c.getAttribute(p));if(null!=e&&"data:"!=e.substring(0,5)){var g=m[e];null==g?(f++,this.convertImageToDataUri(e,function(d){null!=d&&(m[e]=d,c.setAttribute(p,d));f--;0==f&&b(a)})):c.setAttribute(p,g)}else null!=e&&c.setAttribute(p,e)})(e[g])});c("image","xlink:href");c("img","src");0==f&&
-b(a)};Editor.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,f,m,p;c<d;){f=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);b+="==";break}m=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<
-4|(m&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((m&15)<<2);b+="=";break}p=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(m&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((m&15)<<2|(p&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(p&63)}return b};
-Editor.prototype.loadUrl=function(a,b,c,d,f,m){try{var p=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);f=null!=f?f:!0;var e=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(p){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),
-f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}m=null!=m?m:"data:image/png;base64,";d=m+this.base64Encode(d)}b(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},p,this.timeout,function(){f&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:e})})});e()}catch(N){null!=c&&c(N)}};Editor.prototype.loadFonts=function(a){if(null!=this.fontCss&&null==this.resolvedFontCss){var b=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$",
-"g"),"")},c=this.fontCss.split("url("),d=0,f={},m=mxUtils.bind(this,function(){if(0==d){for(var m=[c[0]],p=1;p<c.length;p++){var e=c[p].indexOf(")");m.push('url("');m.push(f[b(c[p].substring(0,e))]);m.push('"'+c[p].substring(e))}this.resolvedFontCss=m.join("");a()}});if(0<c.length)for(var p=1;p<c.length;p++){var e=c[p].indexOf(")"),g=null,k=c[p].indexOf("format(",e);0<k&&(g=b(c[p].substring(k+7,c[p].indexOf(")",k))));mxUtils.bind(this,function(a){if(null==f[a]){f[a]=a;d++;var b="application/x-font-ttf";
+typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};var e=document.getElementsByTagName("script");if(null!=e&&0<e.length){var d=
+document.createElement("script");d.type="text/javascript";d.src=a;e[0].parentNode.appendChild(d)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
+function(a,c,e,d){void 0!==c?b.push(c.replace(/\\'/g,"'")):void 0!==e?b.push(e.replace(/\\"/g,'"')):void 0!==d&&b.push(d);return""});/,\s*$/.test(a)&&b.push("");return b};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||
+"https://cdn.rawgit.com/"===a.substring(0,23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.blob.core.windows.net\//.test(a)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.draw\.io\/proxy/.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,c=this;a.convert=function(e){if(null!=e){var d="http://"==e.substring(0,7)||"https://"==e.substring(0,8);d&&
+!navigator.onLine?e=EditorUi.prototype.svgBrokenImage.src:!d||e.substring(0,a.baseUrl.length)==a.baseUrl||EditorUi.prototype.crossOriginImages&&c.isCorsEnabledForUrl(e)?"chrome-extension://"==e.substring(0,19)||mxClient.IS_CHROMEAPP||(e=b.apply(this,arguments)):e=PROXY_URL+"?url="+encodeURIComponent(e)}return e};return a};Editor.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,
+mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(EditorUi.prototype.svgBrokenImage.src)});else{var c=new Image;EditorUi.prototype.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),e=a.getContext("2d");a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(H){b(EditorUi.prototype.svgBrokenImage.src)}};c.onerror=function(){b(EditorUi.prototype.svgBrokenImage.src)};c.src=a}};Editor.prototype.convertImages=
+function(a,b,c,e){null==e&&(e=this.createImageUrlConverter());var d=0,m=c||{};c=mxUtils.bind(this,function(c,p){for(var f=a.getElementsByTagName(c),g=0;g<f.length;g++)mxUtils.bind(this,function(c){var f=e.convert(c.getAttribute(p));if(null!=f&&"data:"!=f.substring(0,5)){var g=m[f];null==g?(d++,this.convertImageToDataUri(f,function(e){null!=e&&(m[f]=e,c.setAttribute(p,e));d--;0==d&&b(a)})):c.setAttribute(p,g)}else null!=f&&c.setAttribute(p,f)})(f[g])});c("image","xlink:href");c("img","src");0==d&&
+b(a)};Editor.prototype.base64Encode=function(a){for(var b="",c=0,e=a.length,d,m,p;c<e;){d=a.charCodeAt(c++)&255;if(c==e){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4);b+="==";break}m=a.charCodeAt(c++);if(c==e){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<
+4|(m&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((m&15)<<2);b+="=";break}p=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(m&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((m&15)<<2|(p&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(p&63)}return b};
+Editor.prototype.loadUrl=function(a,b,c,e,d,m){try{var p=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);d=null!=d?d:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var e=a.getText();if(p){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),
+d=0;d<a.length;d++)e[d]=String.fromCharCode(a[d]);e=e.join("")}m=null!=m?m:"data:image/png;base64,";e=m+this.base64Encode(e)}b(e)}}else null!=c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},p,this.timeout,function(){d&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(M){null!=c&&c(M)}};Editor.prototype.loadFonts=function(a){if(null!=this.fontCss&&null==this.resolvedFontCss){var b=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$",
+"g"),"")},c=this.fontCss.split("url("),e=0,d={},m=mxUtils.bind(this,function(){if(0==e){for(var m=[c[0]],p=1;p<c.length;p++){var f=c[p].indexOf(")");m.push('url("');m.push(d[b(c[p].substring(0,f))]);m.push('"'+c[p].substring(f))}this.resolvedFontCss=m.join("");a()}});if(0<c.length)for(var p=1;p<c.length;p++){var f=c[p].indexOf(")"),g=null,k=c[p].indexOf("format(",f);0<k&&(g=b(c[p].substring(k+7,c[p].indexOf(")",k))));mxUtils.bind(this,function(a){if(null==d[a]){d[a]=a;e++;var b="application/x-font-ttf";
if("svg"==g||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==g||"embedded-opentype"==g||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==g||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==g||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==g||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==g||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var c=a;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
-(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){f[a]=b;d--;m()}),mxUtils.bind(this,function(a){d--;m()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[p].substring(0,e)),g)}}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var b=document.getElementsByTagName("style"),c=0;c<b.length;c++)0<mxUtils.getTextContent(b[c]).indexOf("MathJax")&&a[0].appendChild(b[c].cloneNode(!0))};Editor.prototype.addFontCss=
-function(a,b){b=null!=b?b:this.fontCss;if(null!=b){var c=a.getElementsByTagName("defs"),d=a.ownerDocument;0==c.length?(c=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)):c=c[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,b);c.appendChild(d)}};Editor.prototype.isExportToCanvas=
-function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport&&(!this.graph.mathEnabled||!mxClient.IS_SF&&!((mxClient.IS_GC||mxClient.IS_EDGE)&&!mxClient.IS_MAC))};Editor.prototype.exportToCanvas=function(a,b,c,d,f,m,p,e,g,k,t,y,u,l){m=null!=m?m:!0;y=null!=y?y:this.graph;u=null!=u?u:0;var A=g?null:y.background;A==mxConstants.NONE&&(A=null);null==A&&(A=d);null==A&&0==g&&(A=this.graph.defaultPageBackgroundColor);this.convertImages(y.getSvg(A,null,null,l,null,null!=p?p:!0,null,null,null,k),mxUtils.bind(this,
-function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var p=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height"));e=null!=e?e:1;null!=b&&(e=m?Math.min(1,Math.min(3*b/(4*k),b/g)):b/g);g=Math.ceil(e*g)+2*u;k=Math.ceil(e*k)+2*u;p.setAttribute("width",g);p.setAttribute("height",k);var t=p.getContext("2d");null!=A&&(t.beginPath(),t.rect(0,0,g,k),t.fillStyle=A,t.fill());t.scale(e,e);mxClient.IS_SF?window.setTimeout(function(){t.drawImage(d,
-u/e,u/e);a(p)},0):(t.drawImage(d,u/e,u/e),a(p))}catch(Y){null!=f&&f(Y)}});d.onerror=function(a){null!=f&&f(a)};try{k&&this.graph.addSvgShadow(c);var p=mxUtils.bind(this,function(){if(null!=this.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}y.mathEnabled&&this.addMathCss(c);d.src=this.createSvgDataUri(mxUtils.getXml(c))});this.loadFonts(p)}catch(U){null!=f&&f(U)}}),c,t)};Editor.prototype.writeGraphModelToPng=
-function(a,b,c,d,f){function m(a,b){var c=g;g+=b;return a.substring(c,g)}function p(a){a=m(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function e(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(m(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(m(a,4),"IHDR"!=m(a,4))null!=f&&f();else{m(a,17);f=a.substring(0,
-g);do{var k=p(a);if("IDAT"==m(a,4)){f=a.substring(0,g-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d;d=4294967295;d=EditorUi.prototype.updateCRC(d,b,0,4);d=EditorUi.prototype.updateCRC(d,c,0,c.length);f+=e(c.length)+b+c+e(d^4294967295);f+=a.substring(g-8,a.length);break}f+=a.substring(g-8,g-4+k);m(a,k);m(a,4)}while(k);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://desk.draw.io/support/solutions/articles/16000091426";
-var e=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)?c=b.getId():null!=a.currentPage&&
+(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){d[a]=b;e--;m()}),mxUtils.bind(this,function(a){e--;m()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[p].substring(0,f)),g)}}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var b=document.getElementsByTagName("style"),c=0;c<b.length;c++)0<mxUtils.getTextContent(b[c]).indexOf("MathJax")&&a[0].appendChild(b[c].cloneNode(!0))};Editor.prototype.addFontCss=
+function(a,b){b=null!=b?b:this.fontCss;if(null!=b){var c=a.getElementsByTagName("defs"),e=a.ownerDocument;0==c.length?(c=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)):c=c[0];e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"style"):e.createElement("style");e.setAttribute("type","text/css");mxUtils.setTextContent(e,b);c.appendChild(e)}};Editor.prototype.isExportToCanvas=
+function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport&&(!this.graph.mathEnabled||!mxClient.IS_SF&&!((mxClient.IS_GC||mxClient.IS_EDGE)&&!mxClient.IS_MAC))};Editor.prototype.exportToCanvas=function(a,b,c,e,d,m,p,f,g,k,t,x,u,l){m=null!=m?m:!0;x=null!=x?x:this.graph;u=null!=u?u:0;var A=g?null:x.background;A==mxConstants.NONE&&(A=null);null==A&&(A=e);null==A&&0==g&&(A=this.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(A,null,null,l,null,null!=p?p:!0,null,null,null,k),mxUtils.bind(this,
+function(c){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var p=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height"));f=null!=f?f:1;null!=b&&(f=m?Math.min(1,Math.min(3*b/(4*k),b/g)):b/g);g=Math.ceil(f*g)+2*u;k=Math.ceil(f*k)+2*u;p.setAttribute("width",g);p.setAttribute("height",k);var t=p.getContext("2d");null!=A&&(t.beginPath(),t.rect(0,0,g,k),t.fillStyle=A,t.fill());t.scale(f,f);mxClient.IS_SF?window.setTimeout(function(){t.drawImage(e,
+u/f,u/f);a(p)},0):(t.drawImage(e,u/f,u/f),a(p))}catch(Y){null!=d&&d(Y)}});e.onerror=function(a){null!=d&&d(a)};try{k&&this.graph.addSvgShadow(c);var p=mxUtils.bind(this,function(){if(null!=this.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}x.mathEnabled&&this.addMathCss(c);e.src=this.createSvgDataUri(mxUtils.getXml(c))});this.loadFonts(p)}catch(U){null!=d&&d(U)}}),c,t)};Editor.prototype.writeGraphModelToPng=
+function(a,b,c,e,d){function m(a,b){var c=g;g+=b;return a.substring(c,g)}function p(a){a=m(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function f(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(m(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(m(a,4),"IHDR"!=m(a,4))null!=d&&d();else{m(a,17);d=a.substring(0,
+g);do{var k=p(a);if("IDAT"==m(a,4)){d=a.substring(0,g-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+e;e=4294967295;e=EditorUi.prototype.updateCRC(e,b,0,4);e=EditorUi.prototype.updateCRC(e,c,0,c.length);d+=f(c.length)+b+c+f(e^4294967295);d+=a.substring(g-8,a.length);break}d+=a.substring(g-8,g-4+k);m(a,k);m(a,4)}while(k);return"data:image/png;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://desk.draw.io/support/solutions/articles/16000091426";
+var f=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)?c=b.getId():null!=a.currentPage&&
(c=a.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?l.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();
-return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var n=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=n.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,c=b.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(a){var d=new ChangePageSetup(b);d.ignoreColor=!0;d.ignoreImage=
-!0;d.shadowVisible=a;c.model.execute(d)},{install:function(a){this.listener=function(){a(c.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var q=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=q.apply(this,arguments);var b=this.editorUi,
-c=b.editor.graph;if(c.isEnabled()){var d=b.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a);b.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}});a.appendChild(f)}}if(this.isMathOptionVisible()&&
-c.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(c.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var m=b.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000032875");
-m.style.position="relative";m.style.marginLeft="6px";m.style.top="2px";f.appendChild(m)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
+return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var n=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=n.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,c=b.editor.graph,e=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(a){var e=new ChangePageSetup(b);e.ignoreColor=!0;e.ignoreImage=
+!0;e.shadowVisible=a;c.model.execute(e)},{install:function(a){this.listener=function(){a(c.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(e.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(e,60));a.appendChild(e)}return a};var q=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=q.apply(this,arguments);var b=this.editorUi,
+c=b.editor.graph;if(c.isEnabled()){var e=b.getCurrentFile();if(null!=e&&e.isAutosaveOptional()){var d=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a);b.editor.autosave&&e.isModified()&&e.fileChanged()},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}});a.appendChild(d)}}if(this.isMathOptionVisible()&&
+c.isEnabled()&&"undefined"!==typeof MathJax){d=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(c.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});d.style.paddingTop="5px";a.appendChild(d);var m=b.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000032875");
+m.style.position="relative";m.style.marginLeft="6px";m.style.top="2px";d.appendChild(m)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",
dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=
@@ -8376,62 +8381,62 @@ defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName
font:"#ffffff"},{fill:"#aa00ff",stroke:"#7700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#ffffff"},{fill:"#f0a30a",stroke:"#BD7000",font:"#ffffff"},{fill:"#e3c800",stroke:"#B09500",font:"#ffffff"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},
{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",
stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=
-null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,c){if(null!=b){var d=function(a){if(null!=a)if(c)for(var d=0;d<a.length;d++)b[a[d].name]=a[d];else for(var f in b){for(var m=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==b[f].type){m=!0;break}m||delete b[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&null!=f.shape&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,
-Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(G){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));f.apply(this,arguments);if(Editor.enableCustomProperties){for(var b=
+null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,c){if(null!=b){var e=function(a){if(null!=a)if(c)for(var e=0;e<a.length;e++)b[a[e].name]=a[e];else for(var d in b){for(var m=!1,e=0;e<a.length;e++)if(a[e].name==d&&a[e].type==b[d].type){m=!0;break}m||delete b[d]}},d=this.editorUi.editor.graph.view.getState(a);null!=d&&null!=d.shape&&(d.shape.commonCustomPropAdded||(d.shape.commonCustomPropAdded=!0,d.shape.customProperties=d.shape.customProperties||[],d.cell.vertex?Array.prototype.push.apply(d.shape.customProperties,
+Editor.commonVertexProperties):Array.prototype.push.apply(d.shape.customProperties,Editor.commonEdgeProperties)),e(d.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{e(JSON.parse(a))}catch(H){}}};var e=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));e.apply(this,arguments);if(Editor.enableCustomProperties){for(var b=
{},c=a.vertices,d=a.edges,m=0;m<c.length;m++)this.findCommonProperties(c[m],b,0==m);for(m=0;m<d.length;m++)this.findCommonProperties(d[m],b,0==c.length&&0==m);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var m=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));
b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);
-mxUtils.br(a);return m.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function d(a,b,c,d){y.getModel().beginUpdate();try{var f=[],m=[];if(null!=c.index){for(var p=[],e=c.parentRow.nextSibling;e&&e.getAttribute("data-pName")==a;)p.push(e.getAttribute("data-pValue")),e=e.nextSibling;c.index<p.length?null!=d?p.splice(d,1):p[c.index]=b:p.push(b);null!=c.size&&p.length>c.size&&(p=p.slice(0,c.size));b=p.join(",");null!=c.countProperty&&
-(y.setCellStyles(c.countProperty,p.length,y.getSelectionCells()),f.push(c.countProperty),m.push(p.length))}y.setCellStyles(a,b,y.getSelectionCells());f.push(a);m.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var g=c.dependentPropsDefVal[a],k=c.dependentPropsVals[a];if(k.length>b)k=k.slice(0,b);else for(var u=k.length;u<b;u++)k.push(g);k=k.join(",");y.setCellStyles(c.dependentProps[a],k,y.getSelectionCells());f.push(c.dependentProps[a]);m.push(k)}if("function"==typeof c.onChange)c.onChange(y,
-b);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",m,"cells",y.getSelectionCells()))}finally{y.getModel().endUpdate()}}function f(b,c,d){var f=mxUtils.getOffset(a,!0),m=mxUtils.getOffset(b,!0);c.style.position="absolute";c.style.left=m.x-f.x+"px";c.style.top=m.y-f.y+"px";c.style.width=b.offsetWidth+"px";c.style.height=b.offsetHeight-(d?4:0)+"px";c.style.zIndex=5}function m(a,b,c){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";
-f.style.border="1px solid black";f.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,function(m){this.editorUi.pickColor(b,function(b){f.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;d(a,b,c)});mxEvent.consume(m)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function p(a,b,c,f,m,p,e){null!=b&&(b=b.split(","),u.push({name:a,values:b,type:c,defVal:f,countProperty:m,
-parentRow:p,isDeletable:!0,flipBkg:e}));btn=mxUtils.button("+",mxUtils.bind(t,function(b){for(var g=p,t=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==a)g=g.nextSibling,t++;else break;var y={type:c,parentRow:p,index:t,isDeletable:!0,defVal:f,countProperty:m},t=k(a,"",y,0==t%2,e);d(a,f,y);g.parentNode.insertBefore(t,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function e(a,b,c,d,f,m,p){if(0<f){var e=Array(f);
-b=null!=b?b.split(","):[];for(var g=0;g<f;g++)e[g]=null!=b[g]?b[g]:null!=d?d:"";u.push({name:a,values:e,type:c,defVal:d,parentRow:m,flipBkg:p,size:f})}return document.createElement("div")}function g(a,b,c){var f=document.createElement("input");f.type="checkbox";f.checked="1"==b;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",c)});return f}function k(b,c,k,y,u){var l=k.dispName,n=k.type,v=document.createElement("tr");v.className="gePropRow"+(u?"Dark":"")+(y?"Alt":"")+" gePropNonHeaderRow";
-v.setAttribute("data-pName",b);v.setAttribute("data-pValue",c);y=!1;null!=k.index&&(v.setAttribute("data-index",k.index),l=(null!=l?l:"")+"["+k.index+"]",y=!0);var A=document.createElement("td");A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));y&&(A.style.textAlign="right");v.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==n)A.appendChild(m(b,c,k));else if("bool"==n||"boolean"==n)A.appendChild(g(b,c,k));else if("enum"==n){var B=
-k.enumList;for(u=0;u<B.length;u++)if(l=B[u],l.val==c){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var m=document.createElement("select");f(A,m);for(var p=0;p<B.length;p++){var e=B[p],g=document.createElement("option");g.value=mxUtils.htmlEntities(e.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(e.dispName,null,e.dispName));m.appendChild(g)}m.value=c;a.appendChild(m);mxEvent.addListener(m,"change",
-function(){var a=mxUtils.htmlEntities(m.value);d(b,a,k)});m.focus();mxEvent.addListener(m,"blur",function(){a.removeChild(m)})}))}else"dynamicArr"==n?A.appendChild(p(b,c,k.subType,k.subDefVal,k.countProperty,v,u)):"staticArr"==n?A.appendChild(e(b,c,k.subType,k.subDefVal,k.size,v,u)):(A.innerHTML=c,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function m(){var a=p.value,a=0==a.length&&"string"!=n?0:a;k.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",n="string"):(a=parseFloat(a),
-a=isNaN(a)?0:a));null!=k.min&&a<k.min?a=k.min:null!=k.max&&a>k.max&&(a=k.max);a=mxUtils.htmlEntities(("int"==n?parseInt(a):a)+"");d(b,a,k)}var p=document.createElement("input");f(A,p,!0);p.value=c;p.className="gePropEditor";"int"!=n&&"float"!=n||k.allowAuto||(p.type="number",p.step="int"==n?"1":"any",null!=k.min&&(p.min=parseFloat(k.min)),null!=k.max&&(p.max=parseFloat(k.max)));a.appendChild(p);mxEvent.addListener(p,"keypress",function(a){13==a.keyCode&&m()});p.focus();mxEvent.addListener(p,"blur",
-function(){m()})})));k.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(t,function(a){d(b,"",k,k.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",A.appendChild(u));v.appendChild(A);return v}var t=this,y=this.editorUi.editor.graph,u=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.style.whiteSpace="nowrap";l.style.width="100%";var n=document.createElement("tr");n.className="gePropHeader";
-var v=document.createElement("th");v.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;v.appendChild(A);mxUtils.write(v,mxResources.get("property"));n.style.cursor="pointer";var B=function(){var b=l.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;c="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],m=f.nodeName.toUpperCase();"INPUT"!=m&&"SELECT"!=m||a.removeChild(f)}catch(O){}}else A.src=
-Sidebar.prototype.expandedImage,c="";for(d=0;d<b.length;d++)b[d].style.display=c};mxEvent.addListener(n,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;B()});n.appendChild(v);v=document.createElement("th");v.className="gePropHeaderCell";v.innerHTML=mxResources.get("value");n.appendChild(v);l.appendChild(n);var x=!1,z=!1,D;for(D in b)if(n=b[D],"function"!=typeof n.isVisible||n.isVisible(c,this)){var C=null!=c.style[D]?mxUtils.htmlEntities(c.style[D]+""):n.defVal;if("separator"==
-n.type)z=!z;else{if("staticArr"==n.type)n.size=parseInt(c.style[n.sizeProperty]||b[n.sizeProperty].defVal)||0;else if(null!=n.dependentProps){for(var q=n.dependentProps,H=[],F=[],v=0;v<q.length;v++){var M=c.style[q[v]];F.push(b[q[v]].subDefVal);H.push(null!=M?M.split(","):[])}n.dependentPropsDefVal=F;n.dependentPropsVals=H}l.appendChild(k(D,C,n,x,z));x=!x}}for(v=0;v<u.length;v++)for(n=u[v],b=n.parentRow,c=0;c<n.values.length;c++)D=k(n.name,n.values[c],{type:n.type,parentRow:n.parentRow,isDeletable:n.isDeletable,
-index:c,defVal:n.defVal,countProperty:n.countProperty,size:n.size},0==c%2,n.flipBkg),b.parentNode.insertBefore(D,b.nextSibling),b=D;a.appendChild(l);B();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var f=d.getModel().getStyle(c[b]),p=0;p<m.length;p++)f=mxUtils.removeStylename(f,m[p]);var e=d.getModel().isVertex(c[b])?d.defaultVertexStyle:
-d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f=""==a.fill?mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),f=""==a.stroke?mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,
-null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&
-(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(c[b],f)}}finally{d.getModel().endUpdate()}});b.className="geStyleButton";b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":
-b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=""==a.fill?mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"),b.style.border=a.stroke==mxConstants.NONE?"1px solid transparent":""==a.stroke?"1px solid "+
-mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"):"1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"));else{var c=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+p}f.appendChild(b)}f.innerHTML="";for(var c=
-0;c<a.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(f),b(a[c])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var m="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");
+mxUtils.br(a);return m.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function e(a,b,c,e){x.getModel().beginUpdate();try{var d=[],m=[];if(null!=c.index){for(var p=[],f=c.parentRow.nextSibling;f&&f.getAttribute("data-pName")==a;)p.push(f.getAttribute("data-pValue")),f=f.nextSibling;c.index<p.length?null!=e?p.splice(e,1):p[c.index]=b:p.push(b);null!=c.size&&p.length>c.size&&(p=p.slice(0,c.size));b=p.join(",");null!=c.countProperty&&
+(x.setCellStyles(c.countProperty,p.length,x.getSelectionCells()),d.push(c.countProperty),m.push(p.length))}x.setCellStyles(a,b,x.getSelectionCells());d.push(a);m.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var g=c.dependentPropsDefVal[a],k=c.dependentPropsVals[a];if(k.length>b)k=k.slice(0,b);else for(var u=k.length;u<b;u++)k.push(g);k=k.join(",");x.setCellStyles(c.dependentProps[a],k,x.getSelectionCells());d.push(c.dependentProps[a]);m.push(k)}if("function"==typeof c.onChange)c.onChange(x,
+b);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",d,"values",m,"cells",x.getSelectionCells()))}finally{x.getModel().endUpdate()}}function d(b,c,e){var d=mxUtils.getOffset(a,!0),m=mxUtils.getOffset(b,!0);c.style.position="absolute";c.style.left=m.x-d.x+"px";c.style.top=m.y-d.y+"px";c.style.width=b.offsetWidth+"px";c.style.height=b.offsetHeight-(e?4:0)+"px";c.style.zIndex=5}function m(a,b,c){var d=document.createElement("div");d.style.width="32px";d.style.height="4px";d.style.margin="2px";
+d.style.border="1px solid black";d.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,function(m){this.editorUi.pickColor(b,function(b){d.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;e(a,b,c)});mxEvent.consume(m)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(d);return btn}function p(a,b,c,d,m,p,f){null!=b&&(b=b.split(","),u.push({name:a,values:b,type:c,defVal:d,countProperty:m,
+parentRow:p,isDeletable:!0,flipBkg:f}));btn=mxUtils.button("+",mxUtils.bind(t,function(b){for(var g=p,t=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==a)g=g.nextSibling,t++;else break;var x={type:c,parentRow:p,index:t,isDeletable:!0,defVal:d,countProperty:m},t=k(a,"",x,0==t%2,f);e(a,d,x);g.parentNode.insertBefore(t,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function f(a,b,c,e,d,m,p){if(0<d){var f=Array(d);
+b=null!=b?b.split(","):[];for(var g=0;g<d;g++)f[g]=null!=b[g]?b[g]:null!=e?e:"";u.push({name:a,values:f,type:c,defVal:e,parentRow:m,flipBkg:p,size:d})}return document.createElement("div")}function g(a,b,c){var d=document.createElement("input");d.type="checkbox";d.checked="1"==b;mxEvent.addListener(d,"change",function(){e(a,d.checked?"1":"0",c)});return d}function k(b,c,k,x,u){var l=k.dispName,v=k.type,n=document.createElement("tr");n.className="gePropRow"+(u?"Dark":"")+(x?"Alt":"")+" gePropNonHeaderRow";
+n.setAttribute("data-pName",b);n.setAttribute("data-pValue",c);x=!1;null!=k.index&&(n.setAttribute("data-index",k.index),l=(null!=l?l:"")+"["+k.index+"]",x=!0);var A=document.createElement("td");A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));x&&(A.style.textAlign="right");n.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==v)A.appendChild(m(b,c,k));else if("bool"==v||"boolean"==v)A.appendChild(g(b,c,k));else if("enum"==v){var C=
+k.enumList;for(u=0;u<C.length;u++)if(l=C[u],l.val==c){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var m=document.createElement("select");d(A,m);for(var p=0;p<C.length;p++){var f=C[p],g=document.createElement("option");g.value=mxUtils.htmlEntities(f.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(f.dispName,null,f.dispName));m.appendChild(g)}m.value=c;a.appendChild(m);mxEvent.addListener(m,"change",
+function(){var a=mxUtils.htmlEntities(m.value);e(b,a,k)});m.focus();mxEvent.addListener(m,"blur",function(){a.removeChild(m)})}))}else"dynamicArr"==v?A.appendChild(p(b,c,k.subType,k.subDefVal,k.countProperty,n,u)):"staticArr"==v?A.appendChild(f(b,c,k.subType,k.subDefVal,k.size,n,u)):(A.innerHTML=c,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function m(){var a=p.value,a=0==a.length&&"string"!=v?0:a;k.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",v="string"):(a=parseFloat(a),
+a=isNaN(a)?0:a));null!=k.min&&a<k.min?a=k.min:null!=k.max&&a>k.max&&(a=k.max);a=mxUtils.htmlEntities(("int"==v?parseInt(a):a)+"");e(b,a,k)}var p=document.createElement("input");d(A,p,!0);p.value=c;p.className="gePropEditor";"int"!=v&&"float"!=v||k.allowAuto||(p.type="number",p.step="int"==v?"1":"any",null!=k.min&&(p.min=parseFloat(k.min)),null!=k.max&&(p.max=parseFloat(k.max)));a.appendChild(p);mxEvent.addListener(p,"keypress",function(a){13==a.keyCode&&m()});p.focus();mxEvent.addListener(p,"blur",
+function(){m()})})));k.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(t,function(a){e(b,"",k,k.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",A.appendChild(u));n.appendChild(A);return n}var t=this,x=this.editorUi.editor.graph,u=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.style.whiteSpace="nowrap";l.style.width="100%";var v=document.createElement("tr");v.className="gePropHeader";
+var n=document.createElement("th");n.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;n.appendChild(A);mxUtils.write(n,mxResources.get("property"));v.style.cursor="pointer";var C=function(){var b=l.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;c="none";for(var e=a.childNodes.length-1;0<=e;e--)try{var d=a.childNodes[e],m=d.nodeName.toUpperCase();"INPUT"!=m&&"SELECT"!=m||a.removeChild(d)}catch(O){}}else A.src=
+Sidebar.prototype.expandedImage,c="";for(e=0;e<b.length;e++)b[e].style.display=c};mxEvent.addListener(v,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;C()});v.appendChild(n);n=document.createElement("th");n.className="gePropHeaderCell";n.innerHTML=mxResources.get("value");v.appendChild(n);l.appendChild(v);var z=!1,y=!1,B;for(B in b)if(v=b[B],"function"!=typeof v.isVisible||v.isVisible(c,this)){var D=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):v.defVal;if("separator"==
+v.type)y=!y;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||b[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var q=v.dependentProps,G=[],F=[],n=0;n<q.length;n++){var N=c.style[q[n]];F.push(b[q[n]].subDefVal);G.push(null!=N?N.split(","):[])}v.dependentPropsDefVal=F;v.dependentPropsVals=G}l.appendChild(k(B,D,v,z,y));z=!z}}for(n=0;n<u.length;n++)for(v=u[n],b=v.parentRow,c=0;c<v.values.length;c++)B=k(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
+index:c,defVal:v.defVal,countProperty:v.countProperty,size:v.size},0==c%2,v.flipBkg),b.parentNode.insertBefore(B,b.nextSibling),b=B;a.appendChild(l);C();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){e.getModel().beginUpdate();try{var c=e.getSelectionCells();for(b=0;b<c.length;b++){for(var d=e.getModel().getStyle(c[b]),p=0;p<m.length;p++)d=mxUtils.removeStylename(d,m[p]);var f=e.getModel().isVertex(c[b])?e.defaultVertexStyle:
+e.defaultEdgeStyle;null!=a?(d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(f,mxConstants.STYLE_GRADIENTCOLOR,null)),d=""==a.fill?mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(f,mxConstants.STYLE_FILLCOLOR,null)),d=""==a.stroke?mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(f,mxConstants.STYLE_STROKECOLOR,
+null)),e.getModel().isVertex(c[b])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(f,mxConstants.STYLE_FONTCOLOR,null)))):(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(f,mxConstants.STYLE_FILLCOLOR,"#ffffff")),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(f,mxConstants.STYLE_STROKECOLOR,"#000000")),d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(f,mxConstants.STYLE_GRADIENTCOLOR,null)),e.getModel().isVertex(c[b])&&
+(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(f,mxConstants.STYLE_FONTCOLOR,null))));e.getModel().setStyle(c[b],d)}}finally{e.getModel().endUpdate()}});b.className="geStyleButton";b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":
+b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=""==a.fill?mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"),b.style.border=a.stroke==mxConstants.NONE?"1px solid transparent":""==a.stroke?"1px solid "+
+mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"):"1px solid "+(a.stroke||mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"));else{var c=mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+p}d.appendChild(b)}d.innerHTML="";for(var c=
+0;c<a.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(d),b(a[c])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var e=this.editorUi.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.paddingLeft="24px";d.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(d);var m="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");
null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var p=document.createElement("div");p.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));var e=document.createElement("div");e.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(a.appendChild(p),a.appendChild(e));mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(p);c(e);b(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&
-(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,
+mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));var f=document.createElement("div");f.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(a.appendChild(p),a.appendChild(f));mxEvent.addListener(f,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(p);c(f);b(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&
+(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var e=this.editorUi.editor.graph,d=e.view.getState(e.getSelectionCell());1==e.getSelectionCount()&&null!=d&&null!=d.shape&&null!=d.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,
function(a){this.editorUi.actions.get("editShape").funct()})),b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":
(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize=
"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var p=Graph.prototype.init;Graph.prototype.init=function(){function a(a){b=a;try{if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=document.createEventObject(a),b.type=a.type,b.canBubble=a.canBubble,b.cancelable=a.cancelable,b.view=a.view,b.detail=a.detail,b.screenX=a.screenX,b.screenY=a.screenY,b.clientX=a.clientX,b.clientY=a.clientY,b.ctrlKey=a.ctrlKey,b.altKey=a.altKey,b.shiftKey=a.shiftKey,b.metaKey=a.metaKey,b.button=
-a.button,b.relatedTarget=a.relatedTarget}catch(G){}}p.apply(this,arguments);window.mxFreehand&&(this.freehand=new mxFreehand(this));var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;
+a.button,b.relatedTarget=a.relatedTarget}catch(H){}}p.apply(this,arguments);window.mxFreehand&&(this.freehand=new mxFreehand(this));var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var e=this.layoutManager.getLayout;
this.layoutManager.getLayout=function(a){var b=this.graph.getCellStyle(a);if(null!=b){if("rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.gridSize=null!=b.rackUnitSize?parseFloat(b.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.fill=!0;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.allowGaps=b.allowGaps||0;c.resizeParent=!1;return c}if("undefined"!==typeof mxTableLayout&&"tableLayout"==
b.childLayout)return c=new mxTableLayout(this.graph),c.rows=b.tableRows||2,c.columns=b.tableColumns||2,c.colPercentages=b.colPercentages,c.rowPercentages=b.rowPercentages,c.equalColumns="1"==mxUtils.getValue(b,"equalColumns",c.colPercentages?"0":"1"),c.equalRows="1"==mxUtils.getValue(b,"equalRows",c.rowPercentages?"0":"1"),c.resizeParent="1"==mxUtils.getValue(b,"resizeParent","1"),c.border=b.tableBorder||c.border,c.marginLeft=b.marginLeft||0,c.marginRight=b.marginRight||0,c.marginTop=b.marginTop||
-0,c.marginBottom=b.marginBottom||0,c.autoAddCol="1"==mxUtils.getValue(b,"autoAddCol","0"),c.autoAddRow="1"==mxUtils.getValue(b,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=b.colWidths||"100",c.rowHeights=b.rowHeights||"50",c}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));
+0,c.marginBottom=b.marginBottom||0,c.autoAddCol="1"==mxUtils.getValue(b,"autoAddCol","0"),c.autoAddRow="1"==mxUtils.getValue(b,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=b.colWidths||"100",c.rowHeights=b.rowHeights||"50",c}return e.apply(this,arguments)};this.updateGlobalUrlVariables()};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));
if(null!=a)for(var b in a)this.globalVars[b]=a[b]}catch(F){null!=window.console&&console.log("Error in vars URL parameter: "+F)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var u=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var b=u.apply(this,arguments);null==b&&null!=this.globalVars&&(b=this.globalVars[a]);return b};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=
-this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var v=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,b,c,d,f,m,p,e,g,k,t){var y=null;null!=this.themes&&"darkTheme"==this.defaultThemeName&&(y=this.stylesheet,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var u=v.apply(this,arguments);if(t&&null!=this.extFonts&&0<this.extFonts.length){var l=
-u.ownerDocument,n=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"style"):l.createElement("style");null!=l.setAttributeNS?n.setAttributeNS("type","text/css"):n.setAttribute("type","text/css");for(var A="",B="",x=0;x<this.extFonts.length;x++){var z=this.extFonts[x].name,C=this.extFonts[x].url;0==C.indexOf(Editor.GOOGLE_FONTS)?A+="@import url("+C+");\n":B+='@font-face {\nfont-family: "'+z+'";\nsrc: url("'+C+'");\n}\n'}n.appendChild(l.createTextNode(A+B));u.getElementsByTagName("defs")[0].appendChild(n)}null!=
-y&&(this.stylesheet=y,this.refresh());return u};var t=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=t.apply(this,arguments);if(this.mathEnabled){this.container.getBoundingClientRect();var b=a.drawText;a.drawText=function(a,c){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=a.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var f=
-d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<f.length;)f[0].parentNode.removeChild(f[0]);null!=d.innerHTML&&(f=a.text.value,a.text.value=d.innerHTML,b.apply(this,arguments),a.text.value=f)}}else b.apply(this,arguments)}}return a};var z=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){z.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
+this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var v=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,b,c,e,d,m,p,f,g,k,t){var x=null;null!=this.themes&&"darkTheme"==this.defaultThemeName&&(x=this.stylesheet,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var u=v.apply(this,arguments);if(t&&null!=this.extFonts&&0<this.extFonts.length){var l=
+u.ownerDocument,n=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"style"):l.createElement("style");null!=l.setAttributeNS?n.setAttributeNS("type","text/css"):n.setAttribute("type","text/css");for(var A="",C="",z=0;z<this.extFonts.length;z++){var y=this.extFonts[z].name,B=this.extFonts[z].url;0==B.indexOf(Editor.GOOGLE_FONTS)?A+="@import url("+B+");\n":C+='@font-face {\nfont-family: "'+y+'";\nsrc: url("'+B+'");\n}\n'}n.appendChild(l.createTextNode(A+C));u.getElementsByTagName("defs")[0].appendChild(n)}null!=
+x&&(this.stylesheet=x,this.refresh());return u};var t=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=t.apply(this,arguments);if(this.mathEnabled){this.container.getBoundingClientRect();var b=a.drawText;a.drawText=function(a,c){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var e=a.text.getContentNode();if(null!=e){e=e.cloneNode(!0);if(e.getElementsByTagNameNS)for(var d=
+e.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<d.length;)d[0].parentNode.removeChild(d[0]);null!=e.innerHTML&&(d=a.text.value,a.text.value=e.innerHTML,b.apply(this,arguments),a.text.value=d)}}else b.apply(this,arguments)}}return a};var y=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){y.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
-this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var x=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){x.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var b=0;b<a.actions.length;b++){var c=a.actions[b];if(null!=c.open)if(this.isCustomLink(c.open)){if(!this.customLinkClicked(c.open))return}else this.openLink(c.open)}this.model.beginUpdate();
-try{for(b=0;b<a.actions.length;b++)c=a.actions[b],null!=c.toggle&&this.toggleCells(this.getCellsForAction(c.toggle,!0)),null!=c.show&&this.setCellsVisible(this.getCellsForAction(c.show,!0),!0),null!=c.hide&&this.setCellsVisible(this.getCellsForAction(c.hide,!0),!1)}finally{this.model.endUpdate()}for(b=0;b<a.actions.length;b++){var c=a.actions[b],d=[];null!=c.select&&this.isEnabled()&&(d=this.getCellsForAction(c.select),this.setSelectionCells(d));null!=c.highlight&&(d=this.getCellsForAction(c.highlight),
-this.highlightCells(d,c.highlight.color,c.highlight.duration,c.highlight.opacity));null!=c.scroll&&(d=this.getCellsForAction(c.scroll));0<d.length&&this.scrollCellToVisible(d[0])}}};Graph.prototype.updateCustomLinksForCell=function(a,b){var c=this.getLinkForCell(b);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(b,this.updateCustomLink(a,c));if(this.isHtmlLabel(b)){var d=document.createElement("div");d.innerHTML=this.getLabel(b);for(var f=d.getElementsByTagName("a"),m=!1,p=0;p<
-f.length;p++)c=f[p].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(f[p].setAttribute("href",this.updateCustomLink(a,c)),m=!0);m&&this.labelChanged(b,d.innerHTML)}};Graph.prototype.updateCustomLink=function(a,b){if("data:action/json,"==b.substring(0,17))try{var c=JSON.parse(b.substring(17));null!=c.actions&&(this.updateCustomLinkActions(a,c.actions),b="data:action/json,"+JSON.stringify(c))}catch(I){}return b};Graph.prototype.updateCustomLinkActions=function(a,b){for(var c=0;c<
-b.length;c++){var d=b[c];this.updateCustomLinkAction(a,d.toggle);this.updateCustomLinkAction(a,d.show);this.updateCustomLinkAction(a,d.hide);this.updateCustomLinkAction(a,d.select);this.updateCustomLinkAction(a,d.highlight);this.updateCustomLinkAction(a,d.scroll)}};Graph.prototype.updateCustomLinkAction=function(a,b){if(null!=b&&null!=b.cells){for(var c=[],d=0;d<b.cells.length;d++)if("*"==b.cells[d])c.push(b.cells[d]);else{var f=a[b.cells[d]];null!=f?""!=f&&c.push(f):c.push(b.cells[d])}b.cells=c}};
-Graph.prototype.getCellsForAction=function(a,b){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,b))};Graph.prototype.getCellsById=function(a){var b=[];if(null!=a)for(var c=0;c<a.length;c++)if("*"==a[c])var d=this.getDefaultParent(),b=b.concat(this.model.filterDescendants(function(a){return a!=d},d));else{var f=this.model.getCell(a[c]);null!=f&&b.push(f)}return b};Graph.prototype.getCellsForTags=function(a,b,c,d){var f=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());
-c=null!=c?c:"tags";for(var m=0,p={},e=0;e<a.length;e++)0<a[e].length&&(p[a[e].toLowerCase()]=!0,m++);for(e=0;e<b.length;e++)if(d&&this.model.getParent(b[e])==this.model.root||this.model.isVertex(b[e])||this.model.isEdge(b[e])){var g=null!=b[e].value&&"object"==typeof b[e].value?mxUtils.trim(b[e].value.getAttribute(c)||""):"",k=!1;if(0<g.length){if(g=g.toLowerCase().split(" "),g.length>=a.length){for(var t=k=0;t<g.length&&k<m;t++)null!=p[g[t]]&&k++;k=k==m}}else k=0==a.length;k&&f.push(b[e])}}return f};
-Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],!this.model.isVisible(a[b]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,b){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,b,c,d){for(var f=0;f<a.length;f++)this.highlightCell(a[f],b,c,d)};Graph.prototype.highlightCell=function(a,b,
-c,d){b=null!=b?b:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),m=new mxCellHighlight(this,b,f,!1);null!=d&&(m.opacity=d);m.highlight(a);window.setTimeout(function(){null!=m.shape&&(mxUtils.setPrefixedStyle(m.shape.node.style,"transition","all 1200ms ease-in-out"),m.shape.node.style.opacity=0);window.setTimeout(function(){m.destroy()},1200)},c)}};Graph.prototype.addSvgShadow=function(a,
-b,c){c=null!=c?c:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var m=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");m.setAttribute("in","SourceAlpha");m.setAttribute("stdDeviation",this.svgShadowBlur);m.setAttribute("result","blur");f.appendChild(m);m=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):
-d.createElement("feOffset");m.setAttribute("in","blur");m.setAttribute("dx",this.svgShadowSize);m.setAttribute("dy",this.svgShadowSize);m.setAttribute("result","offsetBlur");f.appendChild(m);m=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");m.setAttribute("flood-color",this.svgShadowColor);m.setAttribute("flood-opacity",this.svgShadowOpacity);m.setAttribute("result","offsetColor");f.appendChild(m);m=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"feComposite"):d.createElement("feComposite");m.setAttribute("in","offsetColor");m.setAttribute("in2","offsetBlur");m.setAttribute("operator","in");m.setAttribute("result","offsetBlur");f.appendChild(m);m=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");m.setAttribute("in","SourceGraphic");m.setAttribute("in2","offsetBlur");f.appendChild(m);m=a.getElementsByTagName("defs");0==m.length?(d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(d,a.firstChild):a.appendChild(d)):d=m[0];d.appendChild(f);c||(b=null!=b?b:a.getElementsByTagName("g")[0],null!=b&&(b.setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6),b=a.getAttribute("viewBox"),null!=b&&0<b.length&&(b=b.split(" "),3<b.length&&(w=parseFloat(b[2])+6,h=parseFloat(b[3])+
-6,a.setAttribute("viewBox",b[0]+" "+b[1]+" "+w+" "+h))))));return f};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b,c=0;do b=this.model.getChildAt(this.model.root,
+this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var z=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){z.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var b=0;b<a.actions.length;b++){var c=a.actions[b];if(null!=c.open)if(this.isCustomLink(c.open)){if(!this.customLinkClicked(c.open))return}else this.openLink(c.open)}this.model.beginUpdate();
+try{for(b=0;b<a.actions.length;b++)c=a.actions[b],null!=c.toggle&&this.toggleCells(this.getCellsForAction(c.toggle,!0)),null!=c.show&&this.setCellsVisible(this.getCellsForAction(c.show,!0),!0),null!=c.hide&&this.setCellsVisible(this.getCellsForAction(c.hide,!0),!1)}finally{this.model.endUpdate()}for(b=0;b<a.actions.length;b++){var c=a.actions[b],e=[];null!=c.select&&this.isEnabled()&&(e=this.getCellsForAction(c.select),this.setSelectionCells(e));null!=c.highlight&&(e=this.getCellsForAction(c.highlight),
+this.highlightCells(e,c.highlight.color,c.highlight.duration,c.highlight.opacity));null!=c.scroll&&(e=this.getCellsForAction(c.scroll));0<e.length&&this.scrollCellToVisible(e[0])}}};Graph.prototype.updateCustomLinksForCell=function(a,b){var c=this.getLinkForCell(b);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(b,this.updateCustomLink(a,c));if(this.isHtmlLabel(b)){var e=document.createElement("div");e.innerHTML=this.getLabel(b);for(var d=e.getElementsByTagName("a"),m=!1,p=0;p<
+d.length;p++)c=d[p].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(d[p].setAttribute("href",this.updateCustomLink(a,c)),m=!0);m&&this.labelChanged(b,e.innerHTML)}};Graph.prototype.updateCustomLink=function(a,b){if("data:action/json,"==b.substring(0,17))try{var c=JSON.parse(b.substring(17));null!=c.actions&&(this.updateCustomLinkActions(a,c.actions),b="data:action/json,"+JSON.stringify(c))}catch(I){}return b};Graph.prototype.updateCustomLinkActions=function(a,b){for(var c=0;c<
+b.length;c++){var e=b[c];this.updateCustomLinkAction(a,e.toggle);this.updateCustomLinkAction(a,e.show);this.updateCustomLinkAction(a,e.hide);this.updateCustomLinkAction(a,e.select);this.updateCustomLinkAction(a,e.highlight);this.updateCustomLinkAction(a,e.scroll)}};Graph.prototype.updateCustomLinkAction=function(a,b){if(null!=b&&null!=b.cells){for(var c=[],e=0;e<b.cells.length;e++)if("*"==b.cells[e])c.push(b.cells[e]);else{var d=a[b.cells[e]];null!=d?""!=d&&c.push(d):c.push(b.cells[e])}b.cells=c}};
+Graph.prototype.getCellsForAction=function(a,b){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,b))};Graph.prototype.getCellsById=function(a){var b=[];if(null!=a)for(var c=0;c<a.length;c++)if("*"==a[c])var e=this.getDefaultParent(),b=b.concat(this.model.filterDescendants(function(a){return a!=e},e));else{var d=this.model.getCell(a[c]);null!=d&&b.push(d)}return b};Graph.prototype.getCellsForTags=function(a,b,c,e){var d=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());
+c=null!=c?c:"tags";for(var m=0,p={},f=0;f<a.length;f++)0<a[f].length&&(p[a[f].toLowerCase()]=!0,m++);for(f=0;f<b.length;f++)if(e&&this.model.getParent(b[f])==this.model.root||this.model.isVertex(b[f])||this.model.isEdge(b[f])){var g=null!=b[f].value&&"object"==typeof b[f].value?mxUtils.trim(b[f].value.getAttribute(c)||""):"",k=!1;if(0<g.length){if(g=g.toLowerCase().split(" "),g.length>=a.length){for(var t=k=0;t<g.length&&k<m;t++)null!=p[g[t]]&&k++;k=k==m}}else k=0==a.length;k&&d.push(b[f])}}return d};
+Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],!this.model.isVisible(a[b]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,b){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,b,c,e){for(var d=0;d<a.length;d++)this.highlightCell(a[d],b,c,e)};Graph.prototype.highlightCell=function(a,b,
+c,e){b=null!=b?b:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;a=this.view.getState(a);if(null!=a){var d=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),m=new mxCellHighlight(this,b,d,!1);null!=e&&(m.opacity=e);m.highlight(a);window.setTimeout(function(){null!=m.shape&&(mxUtils.setPrefixedStyle(m.shape.node.style,"transition","all 1200ms ease-in-out"),m.shape.node.style.opacity=0);window.setTimeout(function(){m.destroy()},1200)},c)}};Graph.prototype.addSvgShadow=function(a,
+b,c){c=null!=c?c:!1;var e=a.ownerDocument,d=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");d.setAttribute("id",this.shadowId);var m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");m.setAttribute("in","SourceAlpha");m.setAttribute("stdDeviation",this.svgShadowBlur);m.setAttribute("result","blur");d.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):
+e.createElement("feOffset");m.setAttribute("in","blur");m.setAttribute("dx",this.svgShadowSize);m.setAttribute("dy",this.svgShadowSize);m.setAttribute("result","offsetBlur");d.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");m.setAttribute("flood-color",this.svgShadowColor);m.setAttribute("flood-opacity",this.svgShadowOpacity);m.setAttribute("result","offsetColor");d.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
+"feComposite"):e.createElement("feComposite");m.setAttribute("in","offsetColor");m.setAttribute("in2","offsetBlur");m.setAttribute("operator","in");m.setAttribute("result","offsetBlur");d.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");m.setAttribute("in","SourceGraphic");m.setAttribute("in2","offsetBlur");d.appendChild(m);m=a.getElementsByTagName("defs");0==m.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
+"defs"):e.createElement("defs"),null!=a.firstChild?a.insertBefore(e,a.firstChild):a.appendChild(e)):e=m[0];e.appendChild(d);c||(b=null!=b?b:a.getElementsByTagName("g")[0],null!=b&&(b.setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6),b=a.getAttribute("viewBox"),null!=b&&0<b.length&&(b=b.split(" "),3<b.length&&(w=parseFloat(b[2])+6,h=parseFloat(b[3])+
+6,a.setAttribute("viewBox",b[0]+" "+b[1]+" "+w+" "+h))))));return d};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b,c=0;do b=this.model.getChildAt(this.model.root,
c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];
mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.dfd=[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=
[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=
@@ -8441,435 +8446,436 @@ STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[S
STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",
STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=
-function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var C=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,f,m,p,e,g,k){if(null!=c&&null==mxMarker.markers[c]){var t=this.getPackageForType(c);null!=t&&mxStencilRegistry.getStencil(t)}return C.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){l.value=Math.max(1,Math.min(e,Math.max(parseInt(l.value),parseInt(u.value))));u.value=
-Math.max(1,Math.min(e,Math.min(parseInt(l.value),parseInt(u.value))))}function d(b){function c(b,c,m){var p=b.useCssTransforms,e=b.currentTranslate,g=b.currentScale,k=b.view.translate,t=b.view.scale;b.useCssTransforms&&(b.useCssTransforms=!1,b.currentTranslate=new mxPoint(0,0),b.currentScale=1,b.view.translate=new mxPoint(0,0),b.view.scale=1);var y=b.getGraphBounds(),u=0,l=0,n=ja.get(),v=1/b.pageScale,A=x.checked;if(A)var v=parseInt(S.value),z=parseInt(X.value),v=Math.min(n.height*z/(y.height/b.view.scale),
-n.width*v/(y.width/b.view.scale));else v=parseInt(B.value)/(100*b.pageScale),isNaN(v)&&(d=1/b.pageScale,B.value="100 %");n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*d);n.height=Math.ceil(n.height*d);v*=d;!A&&b.pageVisible?(y=b.getPageLayout(),u-=y.x*n.width,l-=y.y*n.height):A=!0;if(null==c){c=PrintDialog.createPrintPreview(b,v,n,0,u,l,A);c.pageSelector=!1;c.mathEnabled=!1;u=a.getCurrentFile();null!=u&&(c.title=u.getTitle());var C=c.writeHead;c.writeHead=function(c){C.apply(this,arguments);
-null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"));if(null!=b.extFonts)for(var d=0;d<b.extFonts.length;d++){var f=b.extFonts[d].name,m=b.extFonts[d].url;0==m.indexOf(Editor.GOOGLE_FONTS)?c.writeln('<link rel="stylesheet" href="'+m+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\n\tfont-family: "'+f+'";\n\tsrc: url("'+m+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var q=
-c.renderPage;c.renderPage=function(b,c,d,f,m,p){var e=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var g=q.apply(this,arguments);mxClient.NO_FO=e;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:g.className="geDisableMathJax";return g}}u=null;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(u=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());c.open(null,null,m,!0);null!=u&&(f.stylesheet=u,f.refresh())}else{n=
-b.background;if(null==n||""==n||n==mxConstants.NONE)n="#ffffff";c.backgroundColor=n;c.autoOrigin=A;c.appendGraph(b,v,u,l,m,!0);if(null!=b.extFonts&&null!=c.wnd)for(m=0;m<b.extFonts.length;m++)u=b.extFonts[m].name,l=b.extFonts[m].url,0==l.indexOf(Editor.GOOGLE_FONTS)?c.wnd.document.writeln('<link rel="stylesheet" href="'+l+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\n\tfont-family: "'+u+'";\n\tsrc: url("'+l+'");\n}'),
-c.wnd.document.writeln("</style>"))}p&&(b.useCssTransforms=p,b.currentTranslate=e,b.currentScale=g,b.view.translate=k,b.view.scale=t);return c}var d=parseInt(ka.value)/100;isNaN(d)&&(d=1,ka.value="100 %");var d=.75*d,m=u.value,p=l.value,e=!t.checked,k=null;e&&(e=m==g&&p==g);if(!e&&null!=a.pages&&a.pages.length){var y=0,e=a.pages.length-1;t.checked||(y=parseInt(m)-1,e=parseInt(p)-1);for(var n=y;n<=e;n++){var v=a.pages[n],m=v==a.currentPage?f:null;if(null==m){var m=a.createTemporaryGraph(f.getStylesheet()),
-p=!0,y=!1,A=null,z=null;null==v.viewState&&null==v.root&&a.updatePageRoot(v);null!=v.viewState&&(p=v.viewState.pageVisible,y=v.viewState.mathEnabled,A=v.viewState.background,z=v.viewState.backgroundImage,m.extFonts=v.viewState.extFonts);m.background=A;m.backgroundImage=null!=z?new mxImage(z.src,z.width,z.height):null;m.pageVisible=p;m.mathEnabled=y;var C=m.getGlobalVariable;m.getGlobalVariable=function(b){return"page"==b?v.getName():"pagenumber"==b?n+1:"pagecount"==b?null!=a.pages?a.pages.length:
-1:C.apply(this,arguments)};document.body.appendChild(m.container);a.updatePageRoot(v);m.model.setRoot(v.root)}k=c(m,k,n!=e);m!=f&&m.container.parentNode.removeChild(m.container)}}else k=c(f);null==k?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(k.mathEnabled&&(e=k.wnd.document,e.writeln('<script type="text/x-mathjax-config">'),e.writeln("MathJax.Hub.Config({"),e.writeln("showMathMenu: false,"),e.writeln('messageStyle: "none",'),e.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),
-e.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),e.writeln('"HTML-CSS": {'),e.writeln("imageFont: null"),e.writeln("},"),e.writeln("TeX: {"),e.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),e.writeln("},"),e.writeln("tex2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("},"),e.writeln("asciimath2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("}"),e.writeln("});"),b&&(e.writeln("MathJax.Hub.Queue(function () {"),
-e.writeln("window.print();"),e.writeln("});")),e.writeln("\x3c/script>"),e.writeln('<script type="text/javascript" src="'+DRAW_MATH_URL+'/MathJax.js">\x3c/script>')),k.closeDocument(),!k.mathEnabled&&b&&PrintDialog.printPreview(k))}var f=a.editor.graph,m=document.createElement("div"),p=document.createElement("h3");p.style.width="100%";p.style.textAlign="center";p.style.marginTop="0px";mxUtils.write(p,b||mxResources.get("print"));m.appendChild(p);var e=1,g=1,k=document.createElement("div");k.style.cssText=
-"border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","all");t.setAttribute("type","radio");t.setAttribute("name","pages-printdialog");k.appendChild(t);p=document.createElement("span");mxUtils.write(p,mxResources.get("printAllPages"));k.appendChild(p);mxUtils.br(k);var y=t.cloneNode(!0);t.setAttribute("checked","checked");y.setAttribute("value","range");k.appendChild(y);
-p=document.createElement("span");mxUtils.write(p,mxResources.get("pages")+":");k.appendChild(p);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";k.appendChild(u);p=document.createElement("span");mxUtils.write(p,mxResources.get("to"));k.appendChild(p);var l=u.cloneNode(!0);k.appendChild(l);mxEvent.addListener(u,"focus",function(){y.checked=!0});mxEvent.addListener(l,
-"focus",function(){y.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(l,"change",c);if(null!=a.pages&&(e=a.pages.length,null!=a.currentPage))for(p=0;p<a.pages.length;p++)if(a.currentPage==a.pages[p]){g=p+1;u.value=g;l.value=g;break}u.setAttribute("max",e);l.setAttribute("max",e);1<e&&m.appendChild(k);var n=document.createElement("div");n.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type",
-"radio");v.setAttribute("name","printZoom");n.appendChild(v);p=document.createElement("span");mxUtils.write(p,mxResources.get("adjustTo"));n.appendChild(p);var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","100 %");B.style.width="50px";n.appendChild(B);mxEvent.addListener(B,"focus",function(){v.checked=!0});m.appendChild(n);var k=k.cloneNode(!1),x=v.cloneNode(!0);x.setAttribute("value","fit");v.setAttribute("checked","checked");p=document.createElement("div");
-p.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";p.appendChild(x);k.appendChild(p);n=document.createElement("table");n.style.display="inline-block";var A=document.createElement("tbody"),z=document.createElement("tr"),C=z.cloneNode(!0),q=document.createElement("td"),D=q.cloneNode(!0),H=q.cloneNode(!0),P=q.cloneNode(!0),M=q.cloneNode(!0),da=q.cloneNode(!0);q.style.textAlign="right";P.style.textAlign="right";mxUtils.write(q,mxResources.get("fitTo"));var S=document.createElement("input");
-S.style.cssText="margin:0 8px 0 8px;";S.setAttribute("value","1");S.setAttribute("min","1");S.setAttribute("type","number");S.style.width="40px";D.appendChild(S);p=document.createElement("span");mxUtils.write(p,mxResources.get("fitToSheetsAcross"));H.appendChild(p);mxUtils.write(P,mxResources.get("fitToBy"));var X=S.cloneNode(!0);M.appendChild(X);mxEvent.addListener(S,"focus",function(){x.checked=!0});mxEvent.addListener(X,"focus",function(){x.checked=!0});p=document.createElement("span");mxUtils.write(p,
-mxResources.get("fitToSheetsDown"));da.appendChild(p);z.appendChild(q);z.appendChild(D);z.appendChild(H);C.appendChild(P);C.appendChild(M);C.appendChild(da);A.appendChild(z);A.appendChild(C);n.appendChild(A);k.appendChild(n);m.appendChild(k);k=document.createElement("div");p=document.createElement("div");p.style.fontWeight="bold";p.style.marginBottom="12px";mxUtils.write(p,mxResources.get("paperSize"));k.appendChild(p);p=document.createElement("div");p.style.marginBottom="12px";var ja=PageSetupDialog.addPageFormatPanel(p,
+function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var B=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,e,d,m,p,f,g,k){if(null!=c&&null==mxMarker.markers[c]){var t=this.getPackageForType(c);null!=t&&mxStencilRegistry.getStencil(t)}return B.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){l.value=Math.max(1,Math.min(f,Math.max(parseInt(l.value),parseInt(u.value))));u.value=
+Math.max(1,Math.min(f,Math.min(parseInt(l.value),parseInt(u.value))))}function e(b){function c(b,c,m){var p=b.useCssTransforms,f=b.currentTranslate,g=b.currentScale,k=b.view.translate,t=b.view.scale;b.useCssTransforms&&(b.useCssTransforms=!1,b.currentTranslate=new mxPoint(0,0),b.currentScale=1,b.view.translate=new mxPoint(0,0),b.view.scale=1);var x=b.getGraphBounds(),u=0,v=0,l=ja.get(),n=1/b.pageScale,A=z.checked;if(A)var n=parseInt(S.value),y=parseInt(X.value),n=Math.min(l.height*y/(x.height/b.view.scale),
+l.width*n/(x.width/b.view.scale));else n=parseInt(C.value)/(100*b.pageScale),isNaN(n)&&(e=1/b.pageScale,C.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width*e);l.height=Math.ceil(l.height*e);n*=e;!A&&b.pageVisible?(x=b.getPageLayout(),u-=x.x*l.width,v-=x.y*l.height):A=!0;if(null==c){c=PrintDialog.createPrintPreview(b,n,l,0,u,v,A);c.pageSelector=!1;c.mathEnabled=!1;u=a.getCurrentFile();null!=u&&(c.title=u.getTitle());var B=c.writeHead;c.writeHead=function(c){B.apply(this,arguments);
+null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"));if(null!=b.extFonts)for(var e=0;e<b.extFonts.length;e++){var d=b.extFonts[e].name,m=b.extFonts[e].url;0==m.indexOf(Editor.GOOGLE_FONTS)?c.writeln('<link rel="stylesheet" href="'+m+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\n\tfont-family: "'+d+'";\n\tsrc: url("'+m+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var q=
+c.renderPage;c.renderPage=function(b,c,e,d,m,p){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var g=q.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:g.className="geDisableMathJax";return g}}u=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(u=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());c.open(null,null,m,!0);null!=u&&(d.stylesheet=u,d.refresh())}else{l=
+b.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";c.backgroundColor=l;c.autoOrigin=A;c.appendGraph(b,n,u,v,m,!0);if(null!=b.extFonts&&null!=c.wnd)for(m=0;m<b.extFonts.length;m++)u=b.extFonts[m].name,v=b.extFonts[m].url,0==v.indexOf(Editor.GOOGLE_FONTS)?c.wnd.document.writeln('<link rel="stylesheet" href="'+v+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\n\tfont-family: "'+u+'";\n\tsrc: url("'+v+'");\n}'),
+c.wnd.document.writeln("</style>"))}p&&(b.useCssTransforms=p,b.currentTranslate=f,b.currentScale=g,b.view.translate=k,b.view.scale=t);return c}var e=parseInt(ka.value)/100;isNaN(e)&&(e=1,ka.value="100 %");var e=.75*e,m=u.value,p=l.value,f=!t.checked,k=null;f&&(f=m==g&&p==g);if(!f&&null!=a.pages&&a.pages.length){var x=0,f=a.pages.length-1;t.checked||(x=parseInt(m)-1,f=parseInt(p)-1);for(var v=x;v<=f;v++){var n=a.pages[v],m=n==a.currentPage?d:null;if(null==m){var m=a.createTemporaryGraph(d.getStylesheet()),
+p=!0,x=!1,A=null,y=null;null==n.viewState&&null==n.root&&a.updatePageRoot(n);null!=n.viewState&&(p=n.viewState.pageVisible,x=n.viewState.mathEnabled,A=n.viewState.background,y=n.viewState.backgroundImage,m.extFonts=n.viewState.extFonts);m.background=A;m.backgroundImage=null!=y?new mxImage(y.src,y.width,y.height):null;m.pageVisible=p;m.mathEnabled=x;var B=m.getGlobalVariable;m.getGlobalVariable=function(b){return"page"==b?n.getName():"pagenumber"==b?v+1:"pagecount"==b?null!=a.pages?a.pages.length:
+1:B.apply(this,arguments)};document.body.appendChild(m.container);a.updatePageRoot(n);m.model.setRoot(n.root)}k=c(m,k,v!=f);m!=d&&m.container.parentNode.removeChild(m.container)}}else k=c(d);null==k?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(k.mathEnabled&&(f=k.wnd.document,f.writeln('<script type="text/x-mathjax-config">'),f.writeln("MathJax.Hub.Config({"),f.writeln("showMathMenu: false,"),f.writeln('messageStyle: "none",'),f.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),
+f.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),f.writeln('"HTML-CSS": {'),f.writeln("imageFont: null"),f.writeln("},"),f.writeln("TeX: {"),f.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),f.writeln("},"),f.writeln("tex2jax: {"),f.writeln('\tignoreClass: "geDisableMathJax"'),f.writeln("},"),f.writeln("asciimath2jax: {"),f.writeln('\tignoreClass: "geDisableMathJax"'),f.writeln("}"),f.writeln("});"),b&&(f.writeln("MathJax.Hub.Queue(function () {"),
+f.writeln("window.print();"),f.writeln("});")),f.writeln("\x3c/script>"),f.writeln('<script type="text/javascript" src="'+DRAW_MATH_URL+'/MathJax.js">\x3c/script>')),k.closeDocument(),!k.mathEnabled&&b&&PrintDialog.printPreview(k))}var d=a.editor.graph,m=document.createElement("div"),p=document.createElement("h3");p.style.width="100%";p.style.textAlign="center";p.style.marginTop="0px";mxUtils.write(p,b||mxResources.get("print"));m.appendChild(p);var f=1,g=1,k=document.createElement("div");k.style.cssText=
+"border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","all");t.setAttribute("type","radio");t.setAttribute("name","pages-printdialog");k.appendChild(t);p=document.createElement("span");mxUtils.write(p,mxResources.get("printAllPages"));k.appendChild(p);mxUtils.br(k);var x=t.cloneNode(!0);t.setAttribute("checked","checked");x.setAttribute("value","range");k.appendChild(x);
+p=document.createElement("span");mxUtils.write(p,mxResources.get("pages")+":");k.appendChild(p);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";k.appendChild(u);p=document.createElement("span");mxUtils.write(p,mxResources.get("to"));k.appendChild(p);var l=u.cloneNode(!0);k.appendChild(l);mxEvent.addListener(u,"focus",function(){x.checked=!0});mxEvent.addListener(l,
+"focus",function(){x.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(l,"change",c);if(null!=a.pages&&(f=a.pages.length,null!=a.currentPage))for(p=0;p<a.pages.length;p++)if(a.currentPage==a.pages[p]){g=p+1;u.value=g;l.value=g;break}u.setAttribute("max",f);l.setAttribute("max",f);1<f&&m.appendChild(k);var v=document.createElement("div");v.style.marginBottom="10px";var n=document.createElement("input");n.style.marginRight="8px";n.setAttribute("value","adjust");n.setAttribute("type",
+"radio");n.setAttribute("name","printZoom");v.appendChild(n);p=document.createElement("span");mxUtils.write(p,mxResources.get("adjustTo"));v.appendChild(p);var C=document.createElement("input");C.style.cssText="margin:0 8px 0 8px;";C.setAttribute("value","100 %");C.style.width="50px";v.appendChild(C);mxEvent.addListener(C,"focus",function(){n.checked=!0});m.appendChild(v);var k=k.cloneNode(!1),z=n.cloneNode(!0);z.setAttribute("value","fit");n.setAttribute("checked","checked");p=document.createElement("div");
+p.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";p.appendChild(z);k.appendChild(p);v=document.createElement("table");v.style.display="inline-block";var A=document.createElement("tbody"),y=document.createElement("tr"),B=y.cloneNode(!0),q=document.createElement("td"),D=q.cloneNode(!0),G=q.cloneNode(!0),P=q.cloneNode(!0),N=q.cloneNode(!0),da=q.cloneNode(!0);q.style.textAlign="right";P.style.textAlign="right";mxUtils.write(q,mxResources.get("fitTo"));var S=document.createElement("input");
+S.style.cssText="margin:0 8px 0 8px;";S.setAttribute("value","1");S.setAttribute("min","1");S.setAttribute("type","number");S.style.width="40px";D.appendChild(S);p=document.createElement("span");mxUtils.write(p,mxResources.get("fitToSheetsAcross"));G.appendChild(p);mxUtils.write(P,mxResources.get("fitToBy"));var X=S.cloneNode(!0);N.appendChild(X);mxEvent.addListener(S,"focus",function(){z.checked=!0});mxEvent.addListener(X,"focus",function(){z.checked=!0});p=document.createElement("span");mxUtils.write(p,
+mxResources.get("fitToSheetsDown"));da.appendChild(p);y.appendChild(q);y.appendChild(D);y.appendChild(G);B.appendChild(P);B.appendChild(N);B.appendChild(da);A.appendChild(y);A.appendChild(B);v.appendChild(A);k.appendChild(v);m.appendChild(k);k=document.createElement("div");p=document.createElement("div");p.style.fontWeight="bold";p.style.marginBottom="12px";mxUtils.write(p,mxResources.get("paperSize"));k.appendChild(p);p=document.createElement("div");p.style.marginBottom="12px";var ja=PageSetupDialog.addPageFormatPanel(p,
"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);k.appendChild(p);p=document.createElement("span");mxUtils.write(p,mxResources.get("pageScale"));k.appendChild(p);var ka=document.createElement("input");ka.style.cssText="margin:0 8px 0 8px;";ka.setAttribute("value","100 %");ka.style.width="60px";k.appendChild(ka);m.appendChild(k);p=document.createElement("div");p.style.cssText="text-align:right;margin:48px 0 0 0;";k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
-k.className="geBtn";a.editor.cancelFirst&&p.appendChild(k);a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),n.className="geBtn",p.appendChild(n));PrintDialog.previewEnabled&&(n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),n.className="geBtn",p.appendChild(n));n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});n.className=
-"geBtn gePrimaryBtn";p.appendChild(n);a.editor.cancelFirst||p.appendChild(k);m.appendChild(p);this.container=m};var H=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)):(H.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))};
-Editor.prototype.useCanvasForExport=!1;try{var y=document.createElement("canvas"),B=new Image;B.onload=function(){try{y.getContext("2d").drawImage(B,0,0);var a=y.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(D){}};B.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(A){}})();
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="12.5.5";EditorUi.compactUi="atlas"!=uiTheme;mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";"dark"==uiTheme&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost="https://www.draw.io";EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";
+k.className="geBtn";a.editor.cancelFirst&&p.appendChild(k);a.isOffline()||(v=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),v.className="geBtn",p.appendChild(v));PrintDialog.previewEnabled&&(v=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();e(!1)}),v.className="geBtn",p.appendChild(v));v=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();e(!0)});v.className=
+"geBtn gePrimaryBtn";p.appendChild(v);a.editor.cancelFirst||p.appendChild(k);m.appendChild(p);this.container=m};var G=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)):(G.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))};
+Editor.prototype.useCanvasForExport=!1;try{var x=document.createElement("canvas"),C=new Image;C.onload=function(){try{x.getContext("2d").drawImage(C,0,0);var a=x.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(D){}};C.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(A){}})();
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="12.5.7";EditorUi.compactUi="atlas"!=uiTheme;mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";"dark"==uiTheme&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost="https://www.draw.io";EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";
EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;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.logError=
-function(a,b,c,d,e){if("1"==urlParams.dev)EditorUi.debug("logError",a,b,c,d,e);else if(EditorUi.enableLogging)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var f=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",m=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";
-e=null!=e?e:Error(a);(new Image).src=m+"/log?severity="+f+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=e&&null!=e.stack?"&stack="+encodeURIComponent(e.stack):"")}}catch(x){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:
+function(a,b,c,d,f){if("1"==urlParams.dev)EditorUi.debug("logError",a,b,c,d,f);else if(EditorUi.enableLogging)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var e=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",m=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";
+f=null!=f?f:Error(a);(new Image).src=m+"/log?severity="+e+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(z){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else 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(p){}};EditorUi.sendReport=function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(p){}};
-EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)a.push(arguments[b]);console.log.apply(console,a)}}catch(p){}};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=m;m+=b;return a.substring(c,m)}function f(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var m=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 p=d(a,4);if(null!=b&&b(m-8,p,c))break;value=d(a,c);d(a,4);if("IEND"==p)break}while(c)}};EditorUi.removeChildNodes=function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};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.timeout=Editor.prototype.timeout;
+EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)a.push(arguments[b]);console.log.apply(console,a)}}catch(p){}};EditorUi.parsePng=function(a,b,c){function e(a,b){var c=m;m+=b;return a.substring(c,m)}function d(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var m=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(e(a,
+4),"IHDR"!=e(a,4))null!=c&&c();else{e(a,17);do{c=d(a);var p=e(a,4);if(null!=b&&b(m-8,p,c))break;value=e(a,c);e(a,4);if("IEND"==p)break}while(c)}};EditorUi.removeChildNodes=function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};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.timeout=Editor.prototype.timeout;
EditorUi.prototype.sidebarFooterHeight=38;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.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;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(v){}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=null!=a&&6<a.length}catch(t){}};c.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(v){}try{b=
document.createElement("canvas");b.width=b.height=1;var d=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==d.match("image/jpeg")}catch(v){}})();EditorUi.prototype.openLink=function(a,b,c){return this.editor.graph.openLink(a,b,c)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);null!=c&&c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isAppCache=function(){return("1"==urlParams.appcache||this.isOfflineApp())&&!("serviceWorker"in navigator)};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=
-function(a){return this.isOfflineApp()||!navigator.onLine||!a&&"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=d.spin;d.spin=function(c,m){var p=!1;this.active||(f.call(this,c),this.active=!0,null!=m&&(p=document.createElement("div"),p.style.position="absolute",p.style.whiteSpace=
+function(a){return this.isOfflineApp()||!navigator.onLine||!a&&"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var e=new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),d=e.spin;e.spin=function(c,m){var p=!1;this.active||(d.call(this,c),this.active=!0,null!=m&&(p=document.createElement("div"),p.style.position="absolute",p.style.whiteSpace=
"nowrap",p.style.background="#4B4243",p.style.color="white",p.style.fontFamily="Helvetica, Arial",p.style.fontSize="9pt",p.style.padding="6px",p.style.paddingLeft="10px",p.style.paddingRight="10px",p.style.zIndex=2E9,p.style.left=Math.max(0,a)+"px",p.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(p.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(p.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(p.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=m.substring(m.length-
-3,m.length)&&"!"!=m.charAt(m.length-1)&&(m+="..."),p.innerHTML=m,c.appendChild(p),d.status=p,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(p.style.left=Math.round(Math.max(0,a-p.offsetWidth/2))+"px",p.style.top=Math.round(Math.max(0,b+70-p.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,m)}));this.stop();return a}),p=!0);return p};var m=d.stop;d.stop=function(){m.call(this);this.active=
-!1;null!=d.status&&null!=d.status.parentNode&&d.status.parentNode.removeChild(d.status);d.status=null};d.pause=function(){return function(){}};return d};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(u){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==
+3,m.length)&&"!"!=m.charAt(m.length-1)&&(m+="..."),p.innerHTML=m,c.appendChild(p),e.status=p,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(p.style.left=Math.round(Math.max(0,a-p.offsetWidth/2))+"px",p.style.top=Math.round(Math.max(0,b+70-p.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,m)}));this.stop();return a}),p=!0);return p};var m=e.stop;e.stop=function(){m.call(this);this.active=
+!1;null!=e.status&&null!=e.status.parentNode&&e.status.parentNode.removeChild(e.status);e.status=null};e.pause=function(){return function(){}};return e};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(u){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==
a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&3==a.charCodeAt(2)&&4==a.charCodeAt(3)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&3==a.charCodeAt(2)&&6==a.charCodeAt(3)};EditorUi.prototype.isPngData=function(a){return 8<a.length&&137==a.charCodeAt(0)&&80==a.charCodeAt(1)&&78==a.charCodeAt(2)&&71==a.charCodeAt(3)&&13==a.charCodeAt(4)&&10==a.charCodeAt(5)&&26==a.charCodeAt(6)&&10==a.charCodeAt(7)};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(z){}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));a=Graph.zapGremlins(a)}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,k,n,l,q,y){b=null!=
-b?b:this.editor.graph;e=null!=e?e:!1;l=null!=l?l:!0;var f,m=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":m=f=d;if(null==a)return"";var p=a;if("mxfile"!=p.nodeName.toLowerCase()){if(y){var t=a.ownerDocument.createElement("diagram");t.setAttribute("id",Editor.guid());t.appendChild(a)}else{t=Graph.zapGremlins(mxUtils.getXml(a));p=Graph.compress(t);if(Graph.decompress(p)!=t)return t;t=a.ownerDocument.createElement("diagram");t.setAttribute("id",Editor.guid());mxUtils.setTextContent(t,
+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 e=b.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=b.substring(d,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),g=this.editor.extractGraphModel(f.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=g?mxUtils.getXml(g):
+""}catch(y){}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));a=Graph.zapGremlins(a)}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 e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));b.model.execute(new ChangePage(this,f,0==e?f: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(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,f,g,k,l,n,q,x){b=null!=
+b?b:this.editor.graph;f=null!=f?f:!1;n=null!=n?n:!0;var e,m=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?e="_blank":m=e=d;if(null==a)return"";var p=a;if("mxfile"!=p.nodeName.toLowerCase()){if(x){var t=a.ownerDocument.createElement("diagram");t.setAttribute("id",Editor.guid());t.appendChild(a)}else{t=Graph.zapGremlins(mxUtils.getXml(a));p=Graph.compress(t);if(Graph.decompress(p)!=t)return t;t=a.ownerDocument.createElement("diagram");t.setAttribute("id",Editor.guid());mxUtils.setTextContent(t,
p)}p=a.ownerDocument.createElement("mxfile");p.appendChild(t)}q?(p=p.cloneNode(!0),p.removeAttribute("modified"),p.removeAttribute("host"),p.removeAttribute("agent"),p.removeAttribute("etag"),p.removeAttribute("userAgent"),p.removeAttribute("version"),p.removeAttribute("editor"),p.removeAttribute("type")):(p.removeAttribute("userAgent"),p.removeAttribute("version"),p.removeAttribute("editor"),p.removeAttribute("pages"),p.removeAttribute("type"),mxClient.IS_CHROMEAPP?p.setAttribute("host","Chrome"):
-EditorUi.isElectronApp?p.setAttribute("host","Electron"):p.setAttribute("host",window.location.hostname),p.setAttribute("modified",(new Date).toISOString()),p.setAttribute("agent",navigator.userAgent),p.setAttribute("version",EditorUi.VERSION),p.setAttribute("etag",Editor.guid()),a=null!=c?c.getMode():this.mode,null!=a&&p.setAttribute("type",a),1<p.getElementsByTagName("diagram").length&&null!=this.pages&&p.setAttribute("pages",this.pages.length));y=y?mxUtils.getPrettyXml(p):mxUtils.getXml(p);if(!g&&
-!e&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))y=this.getHtml2(mxUtils.getXml(p),b,null!=c?c.getTitle():null,f,m);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),y=this.getEmbeddedSvg(y,b,d,null,n,l,m);return y};EditorUi.prototype.getXmlFileData=function(a,b,c){a=null!=a?a:!0;b=null!=b?b:!1;c=null!=c?c:!Editor.compressXml;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=
+EditorUi.isElectronApp?p.setAttribute("host","Electron"):p.setAttribute("host",window.location.hostname),p.setAttribute("modified",(new Date).toISOString()),p.setAttribute("agent",navigator.userAgent),p.setAttribute("version",EditorUi.VERSION),p.setAttribute("etag",Editor.guid()),a=null!=c?c.getMode():this.mode,null!=a&&p.setAttribute("type",a),1<p.getElementsByTagName("diagram").length&&null!=this.pages&&p.setAttribute("pages",this.pages.length));x=x?mxUtils.getPrettyXml(p):mxUtils.getXml(p);if(!g&&
+!f&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))x=this.getHtml2(mxUtils.getXml(p),b,null!=c?c.getTitle():null,e,m);else if(g||!f&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(d=null),x=this.getEmbeddedSvg(x,b,d,null,l,n,m);return x};EditorUi.prototype.getXmlFileData=function(a,b,c){a=null!=a?a:!0;b=null!=b?b:!1;c=null!=c?c:!Editor.compressXml;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=
function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&c?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):null==b||c?a=a.cloneNode(!0):(a=a.cloneNode(!1),mxUtils.setTextContent(a,Graph.compressNode(b)));d.appendChild(a)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),
-b)a(this.currentPage.node);else for(b=0;b<this.pages.length;b++){if(this.currentPage!=this.pages[b]&&this.pages[b].needsUpdate){var f=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(this.pages[b].root));this.editor.graph.saveViewState(this.pages[b].viewState,f);EditorUi.removeChildNodes(this.pages[b].node);mxUtils.setTextContent(this.pages[b].node,Graph.compressNode(f));delete this.pages[b].needsUpdate}a(this.pages[b].node)}return d};EditorUi.prototype.anonymizeString=function(a,
-b){for(var c=[],d=0;d<a.length;d++){var f=a.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(f)?c.push(f):isNaN(parseInt(f))?f.toLowerCase()!=f?c.push(String.fromCharCode(65+Math.round(25*Math.random()))):f.toUpperCase()!=f?c.push(String.fromCharCode(97+Math.round(25*Math.random()))):/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var b=0;b<a[EditorUi.DIFF_INSERT].length;b++)try{var c=
-mxUtils.parseXml(a[EditorUi.DIFF_INSERT][b].data).documentElement.cloneNode(!1);null!=c.getAttribute("name")&&c.setAttribute("name",this.anonymizeString(c.getAttribute("name")));a[EditorUi.DIFF_INSERT][b].data=mxUtils.getXml(c)}catch(t){a[EditorUi.DIFF_INSERT][b].data=t.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var f=a[EditorUi.DIFF_UPDATE][d];null!=f.name&&(f.name=this.anonymizeString(f.name));null!=f.cells&&(b=mxUtils.bind(this,function(a){var b=f.cells[a];
-if(null!=b){for(var c in b)null!=b[c].value&&(b[c].value="["+b[c].value.length+"]"),null!=b[c].xmlValue&&(b[c].xmlValue="["+b[c].xmlValue.length+"]"),null!=b[c].style&&(b[c].style="["+b[c].style.length+"]"),0==Object.keys(b[c]).length&&delete b[c];0==Object.keys(b).length&&delete f.cells[a]}}),b(EditorUi.DIFF_INSERT),b(EditorUi.DIFF_UPDATE),0==Object.keys(f.cells).length&&delete f.cells);0==Object.keys(f).length&&delete a[EditorUi.DIFF_UPDATE][d]}0==Object.keys(a[EditorUi.DIFF_UPDATE]).length&&delete a[EditorUi.DIFF_UPDATE]}return a};
+b)a(this.currentPage.node);else for(b=0;b<this.pages.length;b++){if(this.currentPage!=this.pages[b]&&this.pages[b].needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(this.pages[b].root));this.editor.graph.saveViewState(this.pages[b].viewState,e);EditorUi.removeChildNodes(this.pages[b].node);mxUtils.setTextContent(this.pages[b].node,Graph.compressNode(e));delete this.pages[b].needsUpdate}a(this.pages[b].node)}return d};EditorUi.prototype.anonymizeString=function(a,
+b){for(var c=[],d=0;d<a.length;d++){var e=a.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(e)?c.push(e):isNaN(parseInt(e))?e.toLowerCase()!=e?c.push(String.fromCharCode(65+Math.round(25*Math.random()))):e.toUpperCase()!=e?c.push(String.fromCharCode(97+Math.round(25*Math.random()))):/\s/.test(e)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var b=0;b<a[EditorUi.DIFF_INSERT].length;b++)try{var c=
+mxUtils.parseXml(a[EditorUi.DIFF_INSERT][b].data).documentElement.cloneNode(!1);null!=c.getAttribute("name")&&c.setAttribute("name",this.anonymizeString(c.getAttribute("name")));a[EditorUi.DIFF_INSERT][b].data=mxUtils.getXml(c)}catch(t){a[EditorUi.DIFF_INSERT][b].data=t.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(b=mxUtils.bind(this,function(a){var b=e.cells[a];
+if(null!=b){for(var c in b)null!=b[c].value&&(b[c].value="["+b[c].value.length+"]"),null!=b[c].xmlValue&&(b[c].xmlValue="["+b[c].xmlValue.length+"]"),null!=b[c].style&&(b[c].style="["+b[c].style.length+"]"),0==Object.keys(b[c]).length&&delete b[c];0==Object.keys(b).length&&delete e.cells[a]}}),b(EditorUi.DIFF_INSERT),b(EditorUi.DIFF_UPDATE),0==Object.keys(e.cells).length&&delete e.cells);0==Object.keys(e).length&&delete a[EditorUi.DIFF_UPDATE][d]}0==Object.keys(a[EditorUi.DIFF_UPDATE]).length&&delete a[EditorUi.DIFF_UPDATE]}return a};
EditorUi.prototype.anonymizeAttributes=function(a,b){if(null!=a.attributes)for(var c=0;c<a.attributes.length;c++)"as"!=a.attributes[c].name&&a.setAttribute(a.attributes[c].name,this.anonymizeString(a.attributes[c].value,b));if(null!=a.childNodes)for(c=0;c<a.childNodes.length;c++)this.anonymizeAttributes(a.childNodes[c],b)};EditorUi.prototype.anonymizeNode=function(a,b){for(var c=a.getElementsByTagName("mxCell"),d=0;d<c.length;d++)null!=c[d].getAttribute("value")&&c[d].setAttribute("value","["+c[d].getAttribute("value").length+
"]"),null!=c[d].getAttribute("xmlValue")&&c[d].setAttribute("xmlValue","["+c[d].getAttribute("xmlValue").length+"]"),null!=c[d].getAttribute("style")&&c[d].setAttribute("style","["+c[d].getAttribute("style").length+"]"),null!=c[d].parentNode&&"root"!=c[d].parentNode.nodeName&&null!=c[d].parentNode.parentNode&&(c[d].setAttribute("id",c[d].parentNode.getAttribute("id")),c[d].parentNode.parentNode.replaceChild(c[d],c[d].parentNode));return a};EditorUi.prototype.synchronizeCurrentFile=function(a){var b=
this.getCurrentFile();null!=b&&(b.savingFile?this.handleError({message:mxResources.get("busy")}):!a&&b.invalidChecksum?b.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(b.clearAutosave(),this.editor.setStatus(""),a?b.reloadFile(mxUtils.bind(this,function(){b.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){b.handleFileError(a,!0)})):b.synchronizeFile(mxUtils.bind(this,function(){b.handleFileSuccess("manual"==DrawioFile.SYNC)}),
-mxUtils.bind(this,function(a){b.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,c,d,e,g,k,n,l,q){e=null!=e?e:!0;g=null!=g?g:!1;var f=this.editor.graph;if(b||!a&&null!=l&&/(\.svg)$/i.test(l.getTitle()))if(q=!1,null!=this.pages&&this.currentPage!=this.pages[0]){var m=f.getGlobalVariable,f=this.createTemporaryGraph(f.getStylesheet()),p=this.pages[0];f.getGlobalVariable=function(a){return"page"==a?p.getName():"pagenumber"==a?1:m.apply(this,arguments)};document.body.appendChild(f.container);
-f.model.setRoot(p.root)}k=null!=k?k:this.getXmlFileData(e,g,q);l=null!=l?l:this.getCurrentFile();a=this.createFileData(k,f,l,window.location.href,a,b,c,d,e,n,q);f!=this.editor.graph&&f.container.parentNode.removeChild(f.container);return a};EditorUi.prototype.getHtml=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=null,m=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var f=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),p=b.view.scale;g=Math.floor(f.x/p-b.view.translate.x);p=Math.floor(f.y/
-p-b.view.translate.y);f=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(m=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",p)}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?Graph.zapGremlins(mxUtils.getXml(a)):"";d=Graph.compress(a);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="'+m+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){b=EditorUi.drawHost+"/js/viewer.min.js";
-null!=e&&(e=e.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml: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="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="'+
+mxUtils.bind(this,function(a){b.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,c,d,f,g,k,l,n,q){f=null!=f?f:!0;g=null!=g?g:!1;var e=this.editor.graph;if(b||!a&&null!=n&&/(\.svg)$/i.test(n.getTitle()))if(q=!1,null!=this.pages&&this.currentPage!=this.pages[0]){var m=e.getGlobalVariable,e=this.createTemporaryGraph(e.getStylesheet()),p=this.pages[0];e.getGlobalVariable=function(a){return"page"==a?p.getName():"pagenumber"==a?1:m.apply(this,arguments)};document.body.appendChild(e.container);
+e.model.setRoot(p.root)}k=null!=k?k:this.getXmlFileData(f,g,q);n=null!=n?n:this.getCurrentFile();a=this.createFileData(k,e,n,window.location.href,a,b,c,d,f,l,q);e!=this.editor.graph&&e.container.parentNode.removeChild(e.container);return a};EditorUi.prototype.getHtml=function(a,b,c,d,f,g){g=null!=g?g:!0;var e=null,m=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var e=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),p=b.view.scale;g=Math.floor(e.x/p-b.view.translate.x);p=Math.floor(e.y/
+p-b.view.translate.y);e=b.background;null==f&&(b=this.getBasenames().join(";"),0<b.length&&(m=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",p)}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!=f&&(f=f.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";d=Graph.compress(a);Graph.decompress(d)!=
+a&&(d=encodeURIComponent(a));return(null==f?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=f?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==f?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=f?'<meta http-equiv="refresh" content="0;URL=\''+f+"'\"/>\n":"")+"</head>\n<body"+(null==f&&null!=e&&e!=mxConstants.NONE?' style="background-color:'+e+';">':">")+
+'\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==f?'<script type="text/javascript" src="'+m+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+f+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,f){b=EditorUi.drawHost+"/js/viewer.min.js";
+null!=f&&(f=f.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==f?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=f?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==f?null!=c?"<title>"+mxUtils.htmlEntities(c)+
+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=f?'<meta http-equiv="refresh" content="0;URL=\''+f+"'\"/>\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==f?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+f+'" target="_blank"><img border="0" src="'+
EditorUi.drawHost+'/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;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=Editor.extractParserError(a,mxResources.get("invalidOrMissingFile"));if(b)throw Error(b);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"))){var c=null;this.fileNode=a;this.pages=[];for(var d=0;d<b.length;d++)null==b[d].getAttribute("id")&&b[d].setAttribute("id",d),a=new DiagramPage(b[d]),null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[d+1])),this.pages.push(a),null!=urlParams["page-id"]&&a.getId()==urlParams["page-id"]&&(c=a);this.currentPage=null!=c?c: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);if(null!=urlParams["layer-ids"])try{var f=urlParams["layer-ids"].split(" ");a={};for(d=0;d<f.length;d++)a[f[d]]=!0;for(var e=this.editor.graph.getModel(),
-g=e.getChildren(e.root),d=0;d<g.length;d++){var k=g[d];e.setVisible(k,a[k.id]||!1)}}catch(C){}};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)||/(\.drawio)$/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,k,n,l,q,y){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),m=f+"."+a;if("xml"==a){var p='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,d,e,null,null,null,b);this.saveData(m,a,p,"text/xml")}else if("html"==a)p=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(m,a,p,"text/html");else if("svg"!=
-a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?m=f+".png":"jpeg"==a&&(m=f+".jpg"),this.saveRequest(m,a,mxUtils.bind(this,function(b,c){try{var f=this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var m=this.createDownloadRequest(b,a,d,c,k,e,n,l,q,y);this.editor.graph.pageVisible=f;return m}catch(W){this.handleError(W)}}));else{var t=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",a,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(t)}))});if("svg"==a){var v=this.editor.graph.background;if(k||v==mxConstants.NONE)v=null;var x=this.editor.graph.getSvg(v,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(x);this.convertImages(x,mxUtils.bind(this,mxUtils.bind(this,function(a){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(a))})))}else m=f+".svg",t=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),d)}}catch(E){this.handleError(E)}};EditorUi.prototype.createDownloadRequest=function(a,b,c,d,e,g,k,n,l,q){var f=this.editor.graph,m=f.getGraphBounds();c=this.getFileData(!0,null,null,null,c,0==g?!1:"xmlpng"!=b);var p="",t="";if(m.width*m.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};q=q?"1":"0";"pdf"==b&&0==g&&(t="&allPages=1");
-if("xmlpng"==b&&(q="1",b="png",null!=this.pages&&null!=this.currentPage))for(g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){p="&from="+g;break}g=f.background;"png"==b&&e?g=mxConstants.NONE:e||null!=g&&g!=mxConstants.NONE||(g="#ffffff");e={globalVars:f.getExportVariables()};l&&(e.grid={size:f.gridSize,steps:f.view.gridSteps,color:f.view.gridColor});return new mxXmlRequest(EXPORT_URL,"format="+b+p+t+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+d+"&embedXml="+q+"&xml="+encodeURIComponent(c)+
-(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(e))+(null!=k?"&scale="+k:"")+(null!=n?"&border="+n:""))};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 m=null!=a.interval?parseInt(a.interval):6E4,p=null,e=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(p);p=window.setTimeout(e,m)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();e()}));g();e()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var m=a.url;/^https?:\/\//.test(m)&&!this.editor.isCorsEnabledForUrl(m)&&(m=PROXY_URL+
-"?url="+encodeURIComponent(m));this.loadUrl(m,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||f.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){d.alert(a.tooltip)});return b}var c=null,d=this;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null,null!=a&&"updates"==a.nodeName)){var f=this.editor.graph,
-e=f.getModel();e.beginUpdate();var g=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var k=e.getCell(a.getAttribute("id"));if(null!=k){try{var n=a.getAttribute("value");if(null!=n){var l=mxUtils.parseXml(n).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(k,l);else for(var y=l.attributes,B=0;B<y.length;B++)f.setAttributeForCell(k,y[B].nodeName,0<y[B].nodeValue.length?y[B].nodeValue:null)}}catch(J){null!=window.console&&console.log("Error in value for "+
-k.id+": "+J)}try{var A=a.getAttribute("style");null!=A&&f.model.setStyle(k,A)}catch(J){null!=window.console&&console.log("Error in style for "+k.id+": "+J)}try{var q=a.getAttribute("icon");if(null!=q){var F=0<q.length?JSON.parse(q):null;null!=F&&F.append||f.removeCellOverlays(k);null!=F&&f.addCellOverlay(k,b(F))}}catch(J){null!=window.console&&console.log("Error in icon for "+k.id+": "+J)}try{var I=a.getAttribute("geometry");if(null!=I){var I=JSON.parse(I),K=f.getCellGeometry(k);if(null!=K){K=K.clone();
-for(key in I){var G=parseFloat(I[key]);"dx"==key?K.x+=G:"dy"==key?K.y+=G:"dw"==key?K.width+=G:"dh"==key?K.height+=G:K[key]=parseFloat(I[key])}f.model.setGeometry(k,K)}}}catch(J){null!=window.console&&console.log("Error in icon for "+k.id+": "+J)}}}else if("model"==a.nodeName){for(var E=a.firstChild;null!=E&&E.nodeType!=mxConstants.NODETYPE_ELEMENT;)E=E.nextSibling;null!=E&&(new mxCodec(a.firstChild)).decode(E,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(f.view.scale=parseFloat(a.getAttribute("scale"))),
-a.hasAttribute("dx")||a.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(g=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=
-c.substring(f),c=c.substring(0,f));if(b)var m=new Date,f=m.getFullYear(),e=m.getMonth()+1,g=m.getDate(),k=m.getHours(),l=m.getMinutes(),m=m.getSeconds(),c=c+(" "+(f+"-"+e+"-"+g+"-"+k+"-"+l+"-"+m));return c=mxResources.get("copyOf",[c])+d};EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=c&&(EditorUi.debug("File.closed",[c]),c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();
-this.editor.undoManager.clear();var f=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);!b&&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.editor.setStatus("");
+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);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var f=this.editor.graph.getModel(),
+g=f.getChildren(f.root),d=0;d<g.length;d++){var k=g[d];f.setVisible(k,a[k.id]||!1)}}catch(B){}};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)||/(\.drawio)$/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,f,g,k,l,n,q,x){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var e=this.getBaseFilename(!f),m=e+"."+a;if("xml"==a){var p='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,d,f,null,null,null,b);this.saveData(m,a,p,"text/xml")}else if("html"==a)p=this.getHtml2(this.getFileData(!0),this.editor.graph,e),this.saveData(m,a,p,"text/html");else if("svg"!=
+a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?m=e+".png":"jpeg"==a&&(m=e+".jpg"),this.saveRequest(m,a,mxUtils.bind(this,function(b,c){try{var e=this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var m=this.createDownloadRequest(b,a,d,c,k,f,l,n,q,x);this.editor.graph.pageVisible=e;return m}catch(W){this.handleError(W)}}));else{var t=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",a,"image/svg+xml"):
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(t)}))});if("svg"==a){var v=this.editor.graph.background;if(k||v==mxConstants.NONE)v=null;var z=this.editor.graph.getSvg(v,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(z);this.convertImages(z,mxUtils.bind(this,mxUtils.bind(this,function(a){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(a))})))}else m=e+".svg",t=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),d)}}catch(E){this.handleError(E)}};EditorUi.prototype.createDownloadRequest=function(a,b,c,d,f,g,k,l,n,q){var e=this.editor.graph,m=e.getGraphBounds();c=this.getFileData(!0,null,null,null,c,0==g?!1:"xmlpng"!=b);var p="",t="";if(m.width*m.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};q=q?"1":"0";"pdf"==b&&0==g&&(t="&allPages=1");
+if("xmlpng"==b&&(q="1",b="png",null!=this.pages&&null!=this.currentPage))for(g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){p="&from="+g;break}g=e.background;"png"==b&&f?g=mxConstants.NONE:f||null!=g&&g!=mxConstants.NONE||(g="#ffffff");f={globalVars:e.getExportVariables()};n&&(f.grid={size:e.gridSize,steps:e.view.gridSteps,color:e.view.gridColor});return new mxXmlRequest(EXPORT_URL,"format="+b+p+t+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+d+"&embedXml="+q+"&xml="+encodeURIComponent(c)+
+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(f))+(null!=k?"&scale="+k:"")+(null!=l?"&border="+l:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,e=mxUtils.bind(this,function(c){var e=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<e.length&&(e+="\n"),e+=c);c=new LocalFile(this,"csv"!=a.format&&0<e.length?e:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):
+this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(e,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var m=null!=a.interval?parseInt(a.interval):6E4,p=null,f=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(p);p=window.setTimeout(f,m)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();f()}));g();f()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var m=a.url;/^https?:\/\//.test(m)&&!this.editor.isCorsEnabledForUrl(m)&&(m=PROXY_URL+
+"?url="+encodeURIComponent(m));this.loadUrl(m,mxUtils.bind(this,function(a){e(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else e("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||e.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){d.alert(a.tooltip)});return b}var c=null,d=this;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,
+f=e.getModel();f.beginUpdate();var g=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var k=f.getCell(a.getAttribute("id"));if(null!=k){try{var l=a.getAttribute("value");if(null!=l){var n=mxUtils.parseXml(l).documentElement;if(null!=n)if("1"==n.getAttribute("replace-value"))f.setValue(k,n);else for(var x=n.attributes,C=0;C<x.length;C++)e.setAttributeForCell(k,x[C].nodeName,0<x[C].nodeValue.length?x[C].nodeValue:null)}}catch(K){null!=window.console&&console.log("Error in value for "+
+k.id+": "+K)}try{var A=a.getAttribute("style");null!=A&&e.model.setStyle(k,A)}catch(K){null!=window.console&&console.log("Error in style for "+k.id+": "+K)}try{var q=a.getAttribute("icon");if(null!=q){var F=0<q.length?JSON.parse(q):null;null!=F&&F.append||e.removeCellOverlays(k);null!=F&&e.addCellOverlay(k,b(F))}}catch(K){null!=window.console&&console.log("Error in icon for "+k.id+": "+K)}try{var I=a.getAttribute("geometry");if(null!=I){var I=JSON.parse(I),J=e.getCellGeometry(k);if(null!=J){J=J.clone();
+for(key in I){var H=parseFloat(I[key]);"dx"==key?J.x+=H:"dy"==key?J.y+=H:"dw"==key?J.width+=H:"dh"==key?J.height+=H:J[key]=parseFloat(I[key])}e.model.setGeometry(k,J)}}}catch(K){null!=window.console&&console.log("Error in icon for "+k.id+": "+K)}}}else if("model"==a.nodeName){for(var E=a.firstChild;null!=E&&E.nodeType!=mxConstants.NODETYPE_ELEMENT;)E=E.nextSibling;null!=E&&(new mxCodec(a.firstChild)).decode(E,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),
+a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(g=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{f.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",e=c.lastIndexOf(".");0<=e&&(d=
+c.substring(e),c=c.substring(0,e));if(b)var m=new Date,e=m.getFullYear(),f=m.getMonth()+1,g=m.getDate(),k=m.getHours(),l=m.getMinutes(),m=m.getSeconds(),c=c+(" "+(e+"-"+f+"-"+g+"-"+k+"-"+l+"-"+m));return c=mxResources.get("copyOf",[c])+d};EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=c&&(EditorUi.debug("File.closed",[c]),c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();
+this.editor.undoManager.clear();var e=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);!b&&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.editor.setStatus("");
this.updateUi();b||this.showSplash()});if(null!=a)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();
a.isEditable()?a.isModified()?(a.addUnsavedStatus(),null!=a.backupPatch&&a.patch([a.backupPatch])):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()||EditorUi.logEvent({category:a.getMode().toUpperCase()+"-OPEN-FILE-"+a.getHash(),action:"size_"+a.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[a]);if(this.editor.editable&&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(z){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+
-1),mxSettings.save()}catch(z){}}catch(z){this.fileLoadedError=z;null!=window.console&&(console.error(z),console.log("error in fileLoaded:",a,z));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!=z&&null!=z.message?":err:"+encodeURIComponent(z.message):"")+(null!=z&&null!=z.stack?"&stack="+encodeURIComponent(z.stack):
-"")}catch(x){}var m=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):f()});b?m():this.handleError(z,mxResources.get("errorLoadingFile"),m,!0)}else f();return d};EditorUi.prototype.getHashValueForPages=function(a,b){var c=0,d=new mxGraphModel,f=new mxCodec;null!=b&&(b.byteCount=0,b.attrCount=0,b.eltCount=0,b.nodeCount=0);for(var m=0;m<a.length;m++){this.updatePageRoot(a[m]);
-var e=a[m].node.cloneNode(!1);e.removeAttribute("name");d.root=a[m].root;var g=f.encode(d);this.editor.graph.saveViewState(a[m].viewState,g,!0);g.removeAttribute("pageWidth");g.removeAttribute("pageHeight");e.appendChild(g);null!=b&&(b.eltCount+=e.getElementsByTagName("*").length,b.nodeCount+=e.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(e,function(a,b,c,d){return!d||"mxGeometry"!=a.nodeName&&"mxPoint"!=a.nodeName||"x"!=b&&"y"!=b&&"width"!=b&&"height"!=b?d&&"mxCell"==a.nodeName&&
-"previous"==b?null:c:Math.round(c)},b)<<0}return c};EditorUi.prototype.hashValue=function(a,b,c){var d=0;if(null!=a&&"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName&&"function"===typeof a.getAttribute){null!=a.nodeName&&(d^=this.hashValue(a.nodeName,b,c));if(null!=a.attributes){null!=c&&(c.attrCount+=a.attributes.length);for(var f=0;f<a.attributes.length;f++){var m=a.attributes[f].name,e=null!=b?b(a,m,a.attributes[f].value,!0):a.attributes[f].value;null!=e&&(d^=this.hashValue(m,
-b,c)+this.hashValue(e,b,c))}}if(null!=a.childNodes)for(f=0;f<a.childNodes.length;f++)d=(d<<5)-d+this.hashValue(a.childNodes[f],b,c)<<0}else if(null!=a&&"function"!==typeof a){a=String(a);b=0;null!=c&&(c.byteCount+=a.length);for(f=0;f<a.length;f++)b=(b<<5)-b+a.charCodeAt(f)<<0;d^=b}return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,e,g,k){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||
+this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||EditorUi.logEvent({category:a.getMode().toUpperCase()+"-OPEN-FILE-"+a.getHash(),action:"size_"+a.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[a]);if(this.editor.editable&&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(y){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+
+1),mxSettings.save()}catch(y){}}catch(y){this.fileLoadedError=y;null!=window.console&&(console.error(y),console.log("error in fileLoaded:",a,y));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!=y&&null!=y.message?":err:"+encodeURIComponent(y.message):"")+(null!=y&&null!=y.stack?"&stack="+encodeURIComponent(y.stack):
+"")}catch(z){}var m=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):e()});b?m():this.handleError(y,mxResources.get("errorLoadingFile"),m,!0)}else e();return d};EditorUi.prototype.getHashValueForPages=function(a,b){var c=0,d=new mxGraphModel,e=new mxCodec;null!=b&&(b.byteCount=0,b.attrCount=0,b.eltCount=0,b.nodeCount=0);for(var m=0;m<a.length;m++){this.updatePageRoot(a[m]);
+var f=a[m].node.cloneNode(!1);f.removeAttribute("name");d.root=a[m].root;var g=e.encode(d);this.editor.graph.saveViewState(a[m].viewState,g,!0);g.removeAttribute("pageWidth");g.removeAttribute("pageHeight");f.appendChild(g);null!=b&&(b.eltCount+=f.getElementsByTagName("*").length,b.nodeCount+=f.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(f,function(a,b,c,d){return!d||"mxGeometry"!=a.nodeName&&"mxPoint"!=a.nodeName||"x"!=b&&"y"!=b&&"width"!=b&&"height"!=b?d&&"mxCell"==a.nodeName&&
+"previous"==b?null:c:Math.round(c)},b)<<0}return c};EditorUi.prototype.hashValue=function(a,b,c){var d=0;if(null!=a&&"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName&&"function"===typeof a.getAttribute){null!=a.nodeName&&(d^=this.hashValue(a.nodeName,b,c));if(null!=a.attributes){null!=c&&(c.attrCount+=a.attributes.length);for(var e=0;e<a.attributes.length;e++){var m=a.attributes[e].name,f=null!=b?b(a,m,a.attributes[e].value,!0):a.attributes[e].value;null!=f&&(d^=this.hashValue(m,
+b,c)+this.hashValue(f,b,c))}}if(null!=a.childNodes)for(e=0;e<a.childNodes.length;e++)d=(d<<5)-d+this.hashValue(a.childNodes[e],b,c)<<0}else if(null!=a&&"function"!==typeof a){a=String(a);b=0;null!=c&&(c.byteCount+=a.length);for(e=0;e<a.length;e++)b=(b<<5)-b+a.charCodeAt(e)<<0;d^=b}return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,f,g,k){};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,m=mxUtils.bind(this,function(b,c){0==b.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",
-mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(b,c)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);c=null!=c&&0<c.length?c:a.getTitle();var e=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){m(b,a)}));this.repositionLibrary(d);var p=e.parentNode.previousSibling;c=p.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&p.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var g=document.createElement("div");
-g.style.position="absolute";g.style.right="0px";g.style.top="0px";g.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(g.style.backgroundColor="inherit");p.style.position="relative";var k=document.createElement("img");k.setAttribute("src",Dialog.prototype.closeImage);k.setAttribute("title",mxResources.get("close"));k.setAttribute("valign","absmiddle");k.setAttribute("border","0");k.style.cursor="pointer";k.style.margin="0 3px";var y=null;if(".scratchpad"!=a.title||this.closableScratchpad)g.appendChild(k),
-mxEvent.addListener(k,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=y?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var l=this.editor.graph,n=null,q=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),e,b,a,a.getMode());mxEvent.consume(c)}),F=mxUtils.bind(this,function(c){a.setModified(!0);
+};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 e=null,m=mxUtils.bind(this,function(b,c){0==b.length&&a.isEditable()?(null==e&&(e=document.createElement("div"),e.className="geDropTarget",
+mxUtils.write(e,mxResources.get("dragElementsHere"))),c.appendChild(e)):this.addLibraryEntries(b,c)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);c=null!=c&&0<c.length?c:a.getTitle();var f=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){m(b,a)}));this.repositionLibrary(d);var p=f.parentNode.previousSibling;c=p.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&p.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var g=document.createElement("div");
+g.style.position="absolute";g.style.right="0px";g.style.top="0px";g.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(g.style.backgroundColor="inherit");p.style.position="relative";var k=document.createElement("img");k.setAttribute("src",Dialog.prototype.closeImage);k.setAttribute("title",mxResources.get("close"));k.setAttribute("valign","absmiddle");k.setAttribute("border","0");k.style.cursor="pointer";k.style.margin="0 3px";var x=null;if(".scratchpad"!=a.title||this.closableScratchpad)g.appendChild(k),
+mxEvent.addListener(k,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=x?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var l=this.editor.graph,n=null,q=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),f,b,a,a.getMode());mxEvent.consume(c)}),F=mxUtils.bind(this,function(c){a.setModified(!0);
a.isAutosave()?(null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n),n=k.cloneNode(!1),n.setAttribute("src",Editor.spinImage),n.setAttribute("title",mxResources.get("saving")),n.style.cursor="default",n.style.marginRight="2px",n.style.marginTop="-2px",g.insertBefore(n,g.firstChild),p.style.paddingRight=18*g.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=n&&null!=n.parentNode&&(n.parentNode.removeChild(n),p.style.paddingRight=18*g.childNodes.length+
-"px")})):null==y&&(y=k.cloneNode(!1),y.setAttribute("src",IMAGE_PATH+"/download.png"),y.setAttribute("title",mxResources.get("save")),g.insertBefore(y,g.firstChild),mxEvent.addListener(y,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==y||a.isModified()||(p.style.paddingRight=18*g.childNodes.length+"px",y.parentNode.removeChild(y),y=null)});mxEvent.consume(c)})),p.style.paddingRight=18*g.childNodes.length+"px")}),I=
-mxUtils.bind(this,function(a,c,d,m){a=l.cloneCells(mxUtils.sortCells(l.model.getTopmostCells(a)));for(var p=0;p<a.length;p++){var g=l.getCellGeometry(a[p]);null!=g&&g.translate(-c.x,-c.y)}e.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,m||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=m&&(a.title=m);b.push(a);F(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=mxUtils.bind(this,
-function(a){if(l.isSelectionEmpty())l.getRubberband().isActive()?(l.getRubberband().execute(a),l.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=l.getSelectionCells(),c=l.view.getBounds(b),d=l.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=l.view.translate.x;c.y-=l.view.translate.y;I(b,c)}mxEvent.consume(a)});mxEvent.addGestureListeners(e,function(){},mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.panningManager&&
-null!=l.graphHandler.first&&(l.graphHandler.suspend(),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility="hidden"),e.style.backgroundColor="#f1f3f4",e.style.cursor="copy",l.panningManager.stop(),l.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler&&(e.style.backgroundColor="",e.style.cursor="default",this.sidebar.showTooltips=!0,l.panningManager.stop(),l.graphHandler.reset(),l.isMouseDown=!1,l.autoScroll=!0,K(a),
-mxEvent.consume(a))}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.graphHandler.first&&(l.graphHandler.resume(),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility="visible"),e.style.backgroundColor="",e.style.cursor="",l.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){e.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect="copy";e.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();
-a.preventDefault()})),mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){e.style.cursor="";e.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,p,g,k,y,t,l,n){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,k,y),c)],c[0].vertex=!0,I(c,new mxRectangle(0,0,k,y),a,mxEvent.isAltDown(a)?
-null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var u=!1,v=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var p=Editor.extractGraphModelFromPdf(c);null!=p&&0<p.length&&(d="text/xml",c=p)}if(null!=c&&"text/xml"==d)if(p=mxUtils.parseXml(c),"mxlibrary"==p.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(p.documentElement));m(g,e);b=b.concat(g);F(a);this.spinner.stop();u=
-!0}catch(P){}else if("mxfile"==p.documentElement.nodeName)try{for(var k=p.documentElement.getElementsByTagName("diagram"),g=0;g<k.length;g++){var y=this.stringToCells(Editor.getDiagramNodeXml(k[g])),t=this.editor.graph.getBoundingBoxFromGeometry(y);I(y,new mxRectangle(0,0,t.width,t.height),a)}u=!0}catch(P){null!=window.console&&console.log("error in drop handler:",P)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),
-f=null)});null!=n&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(n,function(a){v(a,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=n?this.parseFile(n,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(e,"dragleave",function(a){e.style.cursor="";e.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));k=k.cloneNode(!1);k.setAttribute("src",Editor.editImage);k.setAttribute("title",mxResources.get("edit"));g.insertBefore(k,g.firstChild);mxEvent.addListener(k,"click",q);mxEvent.addListener(e,"dblclick",function(a){mxEvent.getSource(a)==e&&q(a)});c=k.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",
-mxResources.get("add"));g.insertBefore(c,g.firstChild);mxEvent.addListener(c,"click",K);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)})),g.insertBefore(c,g.firstChild))}p.appendChild(g);
-p.style.paddingRight=18*g.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),m="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(m+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(m+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,
+"px")})):null==x&&(x=k.cloneNode(!1),x.setAttribute("src",IMAGE_PATH+"/download.png"),x.setAttribute("title",mxResources.get("save")),g.insertBefore(x,g.firstChild),mxEvent.addListener(x,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==x||a.isModified()||(p.style.paddingRight=18*g.childNodes.length+"px",x.parentNode.removeChild(x),x=null)});mxEvent.consume(c)})),p.style.paddingRight=18*g.childNodes.length+"px")}),I=
+mxUtils.bind(this,function(a,c,d,m){a=l.cloneCells(mxUtils.sortCells(l.model.getTopmostCells(a)));for(var p=0;p<a.length;p++){var g=l.getCellGeometry(a[p]);null!=g&&g.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,m||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=m&&(a.title=m);b.push(a);F(d);null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null)}),J=mxUtils.bind(this,
+function(a){if(l.isSelectionEmpty())l.getRubberband().isActive()?(l.getRubberband().execute(a),l.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=l.getSelectionCells(),c=l.view.getBounds(b),d=l.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=l.view.translate.x;c.y-=l.view.translate.y;I(b,c)}mxEvent.consume(a)});mxEvent.addGestureListeners(f,function(){},mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.panningManager&&
+null!=l.graphHandler.first&&(l.graphHandler.suspend(),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility="hidden"),f.style.backgroundColor="#f1f3f4",f.style.cursor="copy",l.panningManager.stop(),l.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler&&(f.style.backgroundColor="",f.style.cursor="default",this.sidebar.showTooltips=!0,l.panningManager.stop(),l.graphHandler.reset(),l.isMouseDown=!1,l.autoScroll=!0,J(a),
+mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.graphHandler.first&&(l.graphHandler.resume(),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility="visible"),f.style.backgroundColor="",f.style.cursor="",l.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(f,"dragover",mxUtils.bind(this,function(a){f.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect="copy";f.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();
+a.preventDefault()})),mxEvent.addListener(f,"drop",mxUtils.bind(this,function(a){f.style.cursor="";f.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,p,g,k,x,t,l,n){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,k,x),c)],c[0].vertex=!0,I(c,new mxRectangle(0,0,k,x),a,mxEvent.isAltDown(a)?
+null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null);else{var u=!1,v=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var p=Editor.extractGraphModelFromPdf(c);null!=p&&0<p.length&&(d="text/xml",c=p)}if(null!=c&&"text/xml"==d)if(p=mxUtils.parseXml(c),"mxlibrary"==p.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(p.documentElement));m(g,f);b=b.concat(g);F(a);this.spinner.stop();u=
+!0}catch(P){}else if("mxfile"==p.documentElement.nodeName)try{for(var k=p.documentElement.getElementsByTagName("diagram"),g=0;g<k.length;g++){var x=this.stringToCells(Editor.getDiagramNodeXml(k[g])),t=this.editor.graph.getBoundingBoxFromGeometry(x);I(x,new mxRectangle(0,0,t.width,t.height),a)}u=!0}catch(P){null!=window.console&&console.log("error in drop handler:",P)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),
+e=null)});null!=n&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(n,function(a){v(a,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=n?this.parseFile(n,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(f,"dragleave",function(a){f.style.cursor="";f.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));k=k.cloneNode(!1);k.setAttribute("src",Editor.editImage);k.setAttribute("title",mxResources.get("edit"));g.insertBefore(k,g.firstChild);mxEvent.addListener(k,"click",q);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&q(a)});c=k.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",
+mxResources.get("add"));g.insertBefore(c,g.firstChild);mxEvent.addListener(c,"click",J);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)})),g.insertBefore(c,g.firstChild))}p.appendChild(g);
+p.style.paddingRight=18*g.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],e=d.data;if(null!=e){var e=this.convertDataUri(e),m="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(m+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(m+"image="+e,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(e=this.stringToCells(Graph.decompress(d.xml)),0<e.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(e,
d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.offline||EditorUi.isElectronApp||("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.createFooter=function(){return document.getElementById("geFooter")});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):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor=
"#505759",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,640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var c=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=
+"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,f){a=new ImageDialog(this,a,b,c,d,f);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,f){a=new LibraryDialog(this,a,b,c,d,f);this.showDialog(a.container,640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var c=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=
c.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&b.refresh()}));return b};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML=
-'<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));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,d,e,g){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},
-m=null!=a&&null!=a.error?a.error:a;if(null!=m||null!=b){var p=mxUtils.htmlEntities(mxResources.get("unknownError")),k=mxResources.get("ok"),y=null;b=null!=b?b:mxResources.get("error");if(null!=m){null!=m.retry&&(k=mxResources.get("cancel"),y=function(){f();m.retry()});if(404==m.code||404==m.status||403==m.code){var p=403==m.code?null!=m.message?mxUtils.htmlEntities(m.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=e?e:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+
+'<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));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,d,f,g){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},
+m=null!=a&&null!=a.error?a.error:a;if(null!=m||null!=b){var p=mxUtils.htmlEntities(mxResources.get("unknownError")),k=mxResources.get("ok"),x=null;b=null!=b?b:mxResources.get("error");if(null!=m){null!=m.retry&&(k=mxResources.get("cancel"),x=function(){e();m.retry()});if(404==m.code||404==m.status||403==m.code){var p=403==m.code?null!=m.message?mxUtils.htmlEntities(m.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=f?f:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+
(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":"")),t=null!=g?g:window.location.hash;if(null!=t&&("#G"==t.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==t.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==m.code||404==m.status)){t="#U"==t.substring(0,2)?t.substring(45,
-t.lastIndexOf("%26ex")):t.substring(2);this.showError(b,p,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+t);this.handleError(a,b,c,d,e)}),y,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=0;a<b.length;a++){var c=document.createElement("option");mxUtils.write(c,b[a].displayName);c.value=a;f.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";
-mxUtils.write(c,"<"+b[a].email+">");c.setAttribute("disabled","disabled");f.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=b.length;f.appendChild(c)}var b=this.drive.getUsersList(),c=document.createElement("div"),d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+": ");c.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,
-function(){var c=f.value,d=b.length!=c;d&&this.drive.setUser(b[c]);this.drive.authorize(d,mxUtils.bind(this,function(){d||(b=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));c.appendChild(f);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=c&&c()}),480,150);return}}null!=m.message?
-p=mxUtils.htmlEntities(m.message):null!=m.response&&null!=m.response.error?p=mxUtils.htmlEntities(m.response.error):"undefined"!==typeof window.App&&(m.code==App.ERROR_TIMEOUT?p=mxUtils.htmlEntities(mxResources.get("timeout")):m.code==App.ERROR_BUSY&&(p=mxUtils.htmlEntities(mxResources.get("busy"))))}var l=g=null;null!=m&&null!=m.helpLink&&(g=mxResources.get("help"),l=mxUtils.bind(this,function(){return this.editor.graph.openLink(m.helpLink)}));this.showError(b,p,k,c,y,null,null,g,l,null,null,null,
-d?c:null)}else null!=c&&c()};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,g){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},m=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e,null,null,null,null,m);this.showDialog(a.container,340,46+
-m,!0,g);a.init()};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c,d){var f=a.toDataURL("image/"+c);if(6>=f.length||f==a.cloneNode(!1).toDataURL("image/"+
-c))throw{message:"Invalid image"};null!=b&&(f=this.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(b)));0<d&&(f=this.writeGraphModelToPng(f,"pHYs","dpi",d));return f};EditorUi.prototype.saveCanvas=function(a,b,c,d,e){var f="jpeg"==c?"jpg":c;d=this.getBaseFilename(d)+"."+f;a=this.createImageDataUri(a,b,c,e);this.saveData(d,f,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
+t.lastIndexOf("%26ex")):t.substring(2);this.showError(b,p,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+t);this.handleError(a,b,c,d,f)}),x,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){e.innerHTML="";for(var a=0;a<b.length;a++){var c=document.createElement("option");mxUtils.write(c,b[a].displayName);c.value=a;e.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";
+mxUtils.write(c,"<"+b[a].email+">");c.setAttribute("disabled","disabled");e.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=b.length;e.appendChild(c)}var b=this.drive.getUsersList(),c=document.createElement("div"),d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+": ");c.appendChild(d);var e=document.createElement("select");e.style.width="200px";a();mxEvent.addListener(e,"change",mxUtils.bind(this,
+function(){var c=e.value,d=b.length!=c;d&&this.drive.setUser(b[c]);this.drive.authorize(d,mxUtils.bind(this,function(){d||(b=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=c&&c()}),480,150);return}}null!=m.message?
+p=mxUtils.htmlEntities(m.message):null!=m.response&&null!=m.response.error?p=mxUtils.htmlEntities(m.response.error):"undefined"!==typeof window.App&&(m.code==App.ERROR_TIMEOUT?p=mxUtils.htmlEntities(mxResources.get("timeout")):m.code==App.ERROR_BUSY&&(p=mxUtils.htmlEntities(mxResources.get("busy"))))}var l=g=null;null!=m&&null!=m.helpLink&&(g=mxResources.get("help"),l=mxUtils.bind(this,function(){return this.editor.graph.openLink(m.helpLink)}));this.showError(b,p,k,c,x,null,null,g,l,null,null,null,
+d?c:null)}else null!=c&&c()};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,f,g){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},m=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){e();null!=b&&b()},function(){e();null!=c&&c()},d,f,null,null,null,null,m);this.showDialog(a.container,340,46+
+m,!0,g);a.init()};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c,d){var e=a.toDataURL("image/"+c);if(6>=e.length||e==a.cloneNode(!1).toDataURL("image/"+
+c))throw{message:"Invalid image"};null!=b&&(e=this.writeGraphModelToPng(e,"tEXt","mxfile",encodeURIComponent(b)));0<d&&(e=this.writeGraphModelToPng(e,"pHYs","dpi",d));return e};EditorUi.prototype.saveCanvas=function(a,b,c,d,f){var e="jpeg"==c?"jpg":c;d=this.getBaseFilename(d)+"."+e;a=this.createImageDataUri(a,b,c,f);this.saveData(d,e,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.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};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{var f=document.createElement("a"),m=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),
-m=65==(g?parseInt(g[2],10):!1)?!1:m;if(m||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));m?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(C){}}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,f=Math.ceil(d/1024),m=Array(f),e=0;e<f;++e){for(var g=1024*e,k=Math.min(g+1024,d),l=Array(k-g),y=0;g<k;++y,++g)l[y]=c[g].charCodeAt(0);m[e]=new Uint8Array(l)}return new Blob(m,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,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);isLocalStorage&&e++;var f=4>=e?2:6<e?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,f){try{if("_blank"==f)if(null!=c&&"image/"==c.substring(0,6))this.openInNewWindow(a,c,d);else{var e=window.open("about:blank");null==e?mxUtils.popup(a,!0):(e.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),e.document.close())}else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&
-this.pickFolder(f,mxUtils.bind(this,function(e){try{this.exportFile(a,b,c,d,f,e)}catch(A){this.handleError(A)}}))}catch(B){this.handleError(B)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,k,null,1<e,f,a,c,d);g=this.isServices(e)?e>f?390:270:160;this.showDialog(b.container,400,g,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(a,!0):("image/svg+xml"!=
-b||mxClient.IS_SVG?(c=c?a:btoa(unescape(encodeURIComponent(a))),"image/svg+xml"==b?mxClient.IS_GC&&mxClient.IS_MAC?d.document.write('<html><object style="max-width:100%;" data="data:'+b+";base64,"+c+'"/></html>'):d.document.write("<html>"+a+"</html>"):d.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+c+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),d.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=
-function(a){if(this.isExportToCanvas()){this.exportDialog=null;var b=a(mxUtils.bind(this,function(a){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 d=b.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 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 b=this.createImageDataUri(a,
-null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",b);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(b.substring(b.indexOf(",")+1),"image/png",!0);c.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",c);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.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,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);isLocalStorage&&f++;var m=4>=f?2:6<f?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,f){if("_blank"==f||null!=a&&0<a.length){var e=c("_blank"==f?null:a,f==App.MODE_DEVICE||"download"==f||null==f||"_blank"==f?"0":"1");null!=e&&(f==App.MODE_DEVICE||"download"==f||"_blank"==f?e.simulate(document,"_blank"):this.pickFolder(f,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,f,c)}catch(D){this.handleError(D)}else this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=e.getStatus()&&299>=e.getStatus())try{this.exportFile(e.getText(),a,g,!0,f,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,k,null,1<f,m,d,g,e);f=this.isServices(f)?4<f?390:270:160;this.showDialog(a.container,380,f,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};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,k,l,n,q){if(this.spinner.spin(document.body,mxResources.get("export")))try{var f=
-this.editor.graph.isSelectionEmpty();c=null!=c?c:f;var m=b?null:this.editor.graph.background;m==mxConstants.NONE&&(m=null);null==m&&0==b&&(m="#ffffff");var p=this.editor.graph.getSvg(m,a,k,l,null,c,null,null,"blank"==q?"_blank":"self"==q?"_top":null,null,!0);d&&this.editor.graph.addSvgShadow(p);var t=this.getBaseFilename()+".svg",u=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,n,null,null,null,!1));var b='<?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);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(t,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.editor.addFontCss(p);this.editor.graph.mathEnabled&&this.editor.addMathCss(p);g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(p,u,this.thumbImageCache)):u(p)}catch(I){this.handleError(I)}};EditorUi.prototype.addRadiobox=
-function(a,b,c,d,e,g,k){return this.addCheckbox(a,c,d,e,g,k,!0,b)};EditorUi.prototype.addCheckbox=function(a,b,c,d,e,g,k,l){g=null!=g?g:!0;var f=document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type",k?"radio":"checkbox");k="geCheckbox-"+Editor.guid();f.id=k;null!=l&&f.setAttribute("name",l);c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled","disabled");g&&(a.appendChild(f),c=document.createElement("label"),mxUtils.write(c,
-b),c.setAttribute("for",k),a.appendChild(c),e||mxUtils.br(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(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.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";d=document.createElement("option");
-d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);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(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.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 d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=
-null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};
-EditorUi.prototype.createLink=function(a,b,c,d,e,g,k,l){var f=this.getCurrentFile(),m=[];d&&(m.push("lightbox=1"),"auto"!=a&&m.push("target="+a),null!=b&&b!=mxConstants.NONE&&m.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&m.push("edit="+encodeURIComponent(e)),g&&m.push("layers=1"),this.editor.graph.foldingEnabled&&m.push("nav=1"));c&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&m.push("page-id="+this.currentPage.getId());a=!0;null!=k?c=
-"#U"+encodeURIComponent(k):(f=this.getCurrentFile(),l||null==f||f.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+f.getHash(),a=!1));a&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&m.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:
-"https://"+window.location.host+"/")+(0<m.length?"?"+m.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,g,k,l,n,q,y){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)));b&&(c.push("zoom"),f.resize=!0);
-l&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),f.toolbar=c.join(" "));null!=q&&0<q.length&&(f.edit=q);null!=a?f.url=a:f.xml=this.getFileData(!0,null,null,null,null,!k);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":
-EditorUi.drawHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.drawHost+"/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,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 m=document.createElement("div");
-m.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");m.appendChild(e);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));m.appendChild(k);mxUtils.br(m);m.appendChild(g);
-k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));m.appendChild(k);var p=this.getCurrentFile();null==c&&null!=p&&p.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")),m.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));e.setAttribute("checked",
-"checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(m);var y=this.addLinkSection(f),l=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px";n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="12px";n.value="100%";f.appendChild(n);var u=this.addCheckbox(f,mxResources.get("fit"),!0),m=null!=this.pages&&1<this.pages.length,q=q=this.addCheckbox(f,mxResources.get("allPages"),
-m,!m),I=this.addCheckbox(f,mxResources.get("layers"),!0),K=this.addCheckbox(f,mxResources.get("lightbox"),!0),G=this.addEditButton(f,K),E=G.getEditInput();E.style.marginBottom="16px";mxEvent.addListener(K,"change",function(){K.checked?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled");E.checked&&K.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,
-n.value,y.getTarget(),y.getColor(),u.checked,q.checked,I.checked,K.checked,G.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var m=document.createElement("h3");mxUtils.write(m,a||mxResources.get("link"));m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(m);var k=this.getCurrentFile(),m="https://desk.draw.io/support/solutions/articles/16000051941";
-a=0;if(null!=k&&k.constructor==window.DriveFile&&!b){a=80;var m="https://desk.draw.io/support/solutions/articles/16000039384",p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var y=document.createElement("div");y.style.whiteSpace="normal";mxUtils.write(y,mxResources.get("linkAccountRequired"));p.appendChild(y);y=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));
-y.style.marginTop="12px";y.className="geBtn";p.appendChild(y);f.appendChild(p);y=document.createElement("a");y.style.paddingLeft="12px";y.style.color="gray";y.style.fontSize="11px";y.setAttribute("href","javascript:void(0);");mxUtils.write(y,mxResources.get("check"));p.appendChild(y);mxEvent.addListener(y,"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,n=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")+
-":"),n=document.createElement("input"),n.setAttribute("type","text"),n.style.width="50px",n.style.marginLeft="6px",n.style.marginBottom="10px",n.value=d+"px",f.appendChild(n),mxUtils.br(f);var t=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var u=null;if(null==k||k.constructor!=window.DriveFile||b)u=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var q=this.addCheckbox(f,mxResources.get("lightbox"),!0),v=this.addEditButton(f,q),G=v.getEditInput(),E=this.addCheckbox(f,mxResources.get("layers"),
-!0);E.style.marginLeft=G.style.marginLeft;E.style.marginBottom="16px";E.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(E.removeAttribute("disabled"),G.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&q.checked?v.getEditSelect().removeAttribute("disabled"):v.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(t.getTarget(),t.getColor(),null==u?
-!0:u.checked,q.checked,v.getLink(),E.checked,null!=l?l.value:null,null!=n?n.value:null)}),null,mxResources.get("create"),m);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)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var m=document.createElement("h3");mxUtils.write(m,
-mxResources.get("image"));m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(e?"10":"4")+"px";f.appendChild(m);if(e){mxUtils.write(f,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";f.appendChild(g);mxUtils.write(f,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type",
-"text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";f.appendChild(k);mxUtils.br(f)}var p=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),y=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),!0),m=this.editor.graph,l=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),m.background==mxConstants.NONE||null==m.background);null!=l&&(l.style.marginBottom="16px");a=
-new CustomDialog(this,f,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,b=parseInt(k.value)||0;c(!p.checked,null!=y?y.checked:!1,null!=l?l.checked:!1,a,b)}),null,a,b);this.showDialog(a.container,300,(e?25:0)+(d?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e,g,k,l){k=null!=k?k:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var m=this.editor.graph,p="jpeg"==l?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
-f.appendChild(n);mxUtils.write(f,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=this.lastExportZoom||"100%";f.appendChild(t);mxUtils.write(f,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";f.appendChild(u);mxUtils.br(f);var q=this.addCheckbox(f,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=l),v=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,m.isSelectionEmpty()),x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.style.marginLeft="24px";x.setAttribute("disabled","disabled");x.setAttribute("type","checkbox");g&&(f.appendChild(x),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),p+=26,mxEvent.addListener(v,"change",function(){v.checked?
-x.removeAttribute("disabled"):x.setAttribute("disabled","disabled")}));m.isSelectionEmpty()||(x.setAttribute("checked","checked"),x.defaultChecked=!0);var z=this.addCheckbox(f,mxResources.get("shadow"),m.shadowVisible),E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||E.setAttribute("disabled","disabled");b&&(f.appendChild(E),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),p+=
-26);var J=null;if("png"==l||"jpeg"==l)J=this.addCheckbox(f,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),p+=26;var N=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=l),R=null!=this.pages&&1<this.pages.length,W=this.addCheckbox(f,R?mxResources.get("allPages"):"",R,!R,null,"jpeg"!=l);W.style.marginLeft="24px";W.style.marginBottom="16px";R?p+=26:W.style.display="none";mxEvent.addListener(N,"change",function(){N.checked&&R?W.removeAttribute("disabled"):
-W.setAttribute("disabled","disabled")});k&&R||W.setAttribute("disabled","disabled");var T=document.createElement("select");T.style.maxWidth="260px";T.style.marginLeft="8px";T.style.marginRight="10px";T.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));T.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");mxUtils.write(a,mxResources.get("openInNewWindow"));T.appendChild(a);a=document.createElement("option");
-a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));T.appendChild(a);"svg"==l&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(T),mxUtils.br(f),mxUtils.br(f),p+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=t.value;e(t.value,q.checked,!v.checked,z.checked,N.checked,E.checked,u.value,x.checked,!W.checked,T.value,null!=J?J.checked:null)}),null,c,d);this.showDialog(c.container,340,p,!0,!0,null,
-null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.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 m=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 k=this.addCheckbox(f,mxResources.get("fit"),
-!0),p=this.addCheckbox(f,mxResources.get("shadow"),m.shadowVisible&&d,!d),y=this.addCheckbox(f,c),l=this.addCheckbox(f,mxResources.get("lightbox"),!0),n=this.addEditButton(f,l),u=n.getEditInput(),q=1<m.model.getChildCount(m.model.getRoot()),v=this.addCheckbox(f,mxResources.get("layers"),q,!q);v.style.marginLeft=u.style.marginLeft;v.style.marginBottom="12px";v.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked?(q&&v.removeAttribute("disabled"),u.removeAttribute("disabled")):
-(v.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&l.checked?n.getEditSelect().removeAttribute("disabled"):n.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){a(k.checked,p.checked,y.checked,l.checked,n.getLink(),v.checked)}),null,mxResources.get("embed"),e);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,e,g,k,l){function f(b){var f=" ",p="";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('"+
-EditorUi.drawHost+"/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");a&&(p+="max-width:100%;");var l="";c&&(l=' width="'+Math.round(m.width)+'" height="'+Math.round(m.height)+'"');k('<img src="'+b+'"'+l+(""!=p?' style="'+p+'"':"")+f+"/>")}var m=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),m.width*m.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var p="";c&&(p="&w="+Math.round(2*m.width)+"&h="+Math.round(2*m.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+p+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?f("data:image/png;base64,"+n.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
-EditorUi.prototype.createEmbedSvg=function(a,b,c,d,e,g,k){var f=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!c),m=f.getElementsByTagName("a");if(null!=m)for(var p=0;p<m.length;p++){var l=m[p].getAttribute("href");null!=l&&"#"==l.charAt(0)&&"_blank"==m[p].getAttribute("target")&&m[p].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(f);if(c){var n=" ",t="";d&&(n="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('"+
-EditorUi.drawHost+"/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",t+="cursor:pointer;");a&&(t+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(a){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=t?' style="'+t+'"':"")+n+"/>")}))}else t="",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('"+
-EditorUi.drawHost+"/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),t+="cursor:pointer;"),a&&(a=parseInt(f.getAttribute("width")),b=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","-0.5 -0.5 "+a+" "+b),t+="max-width:100%;max-height:"+b+"px;",f.removeAttribute("height")),""!=t&&f.setAttribute("style",t),this.editor.addFontCss(f),this.editor.graph.mathEnabled&&this.editor.addMathCss(f),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-
+function(a,b,c,d,f){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&&mxClient.IS_SF&&this.isOffline())navigator.standalone||null==c||"image/"!=c.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,c,d);else{var e=
+document.createElement("a"),m=0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof e.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),m=65==(g?parseInt(g[2],10):!1)?!1:m;if(m||this.isOffline()){e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));m?e.download=b:e.setAttribute("target","_blank");document.body.appendChild(e);try{window.setTimeout(function(){URL.revokeObjectURL(e.href)},0),e.click(),e.parentNode.removeChild(e)}catch(B){}}else this.createEchoRequest(a,
+b,c,d,f).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,f,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=f?"&format="+f:"")+(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),m=0;m<e;++m){for(var g=1024*m,k=Math.min(g+1024,d),l=Array(k-g),x=0;g<k;++x,++g)l[x]=
+c[g].charCodeAt(0);f[m]=new Uint8Array(l)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,f,g,k){g=null!=g?g:!1;k=null!=k?k:"vsdx"!=f&&(!mxClient.IS_IOS||!navigator.standalone);f=this.getServiceCount(g);isLocalStorage&&f++;var e=4>=f?2:6<f?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null!=c&&"image/"==c.substring(0,6))this.openInNewWindow(a,c,d);else{var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write("<pre>"+
+mxUtils.htmlEntities(a,!1)+"</pre>"),f.document.close())}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(A){this.handleError(A)}}))}catch(C){this.handleError(C)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,k,null,1<f,e,a,c,d);g=this.isServices(f)?f>e?390:270:160;this.showDialog(b.container,400,g,!0,!0);b.init()};
+EditorUi.prototype.openInNewWindow=function(a,b,c){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?(c=c?a:btoa(unescape(encodeURIComponent(a))),"image/svg+xml"==b?mxClient.IS_GC&&mxClient.IS_MAC?d.document.write('<html><object style="max-width:100%;" data="data:'+b+";base64,"+c+'"/></html>'):d.document.write("<html>"+a+"</html>"):d.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+c+'"/></html>')):d.document.write("<html><pre>"+
+mxUtils.htmlEntities(a,!1)+"</pre></html>"),d.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var b=a(mxUtils.bind(this,function(a){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 d=b.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 b=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",b);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(b.substring(b.indexOf(",")+
+1),"image/png",!0);c.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",c);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,d,f){this.isLocalFileSave()?this.saveLocalFile(c,a,d,f,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,
+e){return this.createEchoRequest(c,a,d,f,b,e)}),c,f,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,f,g,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var e=this.getServiceCount(!1);isLocalStorage&&e++;var m=4>=e?2:6<e?4:3;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,k,null,1<e,m,d,g,f);e=this.isServices(e)?4<e?390:270:160;this.showDialog(a.container,380,e,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,d,f,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=
+function(a,b,c,d,f,g,k,l,n,q){if(this.spinner.spin(document.body,mxResources.get("export")))try{var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;var m=b?null:this.editor.graph.background;m==mxConstants.NONE&&(m=null);null==m&&0==b&&(m="#ffffff");var p=this.editor.graph.getSvg(m,a,k,l,null,c,null,null,"blank"==q?"_blank":"self"==q?"_top":null,null,!0);d&&this.editor.graph.addSvgShadow(p);var t=this.getBaseFilename()+".svg",u=mxUtils.bind(this,function(a){this.spinner.stop();f&&a.setAttribute("content",
+this.getFileData(!0,null,null,null,c,n,null,null,null,!1));var b='<?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);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(t,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.editor.addFontCss(p);this.editor.graph.mathEnabled&&
+this.editor.addMathCss(p);g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(p,u,this.thumbImageCache)):u(p)}catch(I){this.handleError(I)}};EditorUi.prototype.addRadiobox=function(a,b,c,d,f,g,k){return this.addCheckbox(a,c,d,f,g,k,!0,b)};EditorUi.prototype.addCheckbox=function(a,b,c,d,f,g,k,l){g=null!=g?g:!0;var e=document.createElement("input");e.style.marginRight="8px";e.style.marginTop="16px";e.setAttribute("type",k?"radio":"checkbox");k="geCheckbox-"+Editor.guid();e.id=
+k;null!=l&&e.setAttribute("name",l);c&&(e.setAttribute("checked","checked"),e.defaultChecked=!0);d&&e.setAttribute("disabled","disabled");g&&(a.appendChild(e),c=document.createElement("label"),mxUtils.write(c,b),c.setAttribute("for",k),a.appendChild(c),f||mxUtils.br(a));return e};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(){m.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",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width=
+"22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);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,f,g,k,l){var e=this.getCurrentFile(),m=[];d&&(m.push("lightbox=1"),"auto"!=a&&m.push("target="+a),null!=b&&b!=mxConstants.NONE&&m.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),
+null!=f&&0<f.length&&m.push("edit="+encodeURIComponent(f)),g&&m.push("layers=1"),this.editor.graph.foldingEnabled&&m.push("nav=1"));c&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&m.push("page-id="+this.currentPage.getId());a=!0;null!=k?c="#U"+encodeURIComponent(k):(e=this.getCurrentFile(),l||null==e||e.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
+(c="#"+e.getHash(),a=!1));a&&null!=e&&null!=e.getTitle()&&e.getTitle()!=this.defaultFilename&&m.push("title="+encodeURIComponent(e.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host+"/")+(0<m.length?"?"+m.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,f,g,k,l,n,q,x){this.getBasenames();var e={};""!=f&&f!=mxConstants.NONE&&(e.highlight=f);"auto"!==d&&(e.target=d);n||(e.lightbox=
+!1);e.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(e.zoom=c/100);c=[];k&&(c.push("pages"),e.resize=!0,null!=this.pages&&null!=this.currentPage&&(e.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),e.resize=!0);l&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),e.toolbar=c.join(" "));null!=q&&0<q.length&&(e.edit=q);null!=a?e.url=a:e.xml=this.getFileData(!0,null,null,null,null,!k);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":
+"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(e))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";x(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.drawHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.drawHost+"/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 m=document.createElement("div");m.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");m.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));m.appendChild(k);mxUtils.br(m);m.appendChild(g);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));m.appendChild(k);var p=this.getCurrentFile();null==c&&null!=p&&p.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")),m.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));f.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");e.appendChild(m);var x=this.addLinkSection(e),l=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px";
+n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="12px";n.value="100%";e.appendChild(n);var u=this.addCheckbox(e,mxResources.get("fit"),!0),m=null!=this.pages&&1<this.pages.length,q=q=this.addCheckbox(e,mxResources.get("allPages"),m,!m),I=this.addCheckbox(e,mxResources.get("layers"),!0),J=this.addCheckbox(e,mxResources.get("lightbox"),!0),H=this.addEditButton(e,J),E=H.getEditInput();E.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?E.removeAttribute("disabled"):
+E.setAttribute("disabled","disabled");E.checked&&J.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,n.value,x.getTarget(),x.getColor(),u.checked,q.checked,I.checked,J.checked,H.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,f,g){var e=document.createElement("div");e.style.whiteSpace=
+"nowrap";var m=document.createElement("h3");mxUtils.write(m,a||mxResources.get("link"));m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(m);var k=this.getCurrentFile(),m="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=k&&k.constructor==window.DriveFile&&!b){a=80;var m="https://desk.draw.io/support/solutions/articles/16000039384",p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var x=document.createElement("div");x.style.whiteSpace="normal";mxUtils.write(x,mxResources.get("linkAccountRequired"));p.appendChild(x);x=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));x.style.marginTop="12px";x.className="geBtn";p.appendChild(x);e.appendChild(p);x=document.createElement("a");x.style.paddingLeft="12px";x.style.color="gray";x.style.fontSize="11px";x.setAttribute("href","javascript:void(0);");mxUtils.write(x,mxResources.get("check"));
+p.appendChild(x);mxEvent.addListener(x,"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,t=null;if(null!=c||null!=d)a+=30,mxUtils.write(e,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%",e.appendChild(l),mxUtils.write(e,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=d+"px",e.appendChild(t),mxUtils.br(e);var n=this.addLinkSection(e,g);c=null!=this.pages&&1<this.pages.length;var u=null;
+if(null==k||k.constructor!=window.DriveFile||b)u=this.addCheckbox(e,mxResources.get("allPages"),c,!c);var q=this.addCheckbox(e,mxResources.get("lightbox"),!0),v=this.addEditButton(e,q),H=v.getEditInput(),E=this.addCheckbox(e,mxResources.get("layers"),!0);E.style.marginLeft=H.style.marginLeft;E.style.marginBottom="16px";E.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(E.removeAttribute("disabled"),H.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),H.setAttribute("disabled",
+"disabled"));H.checked&&q.checked?v.getEditSelect().removeAttribute("disabled"):v.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,function(){f(n.getTarget(),n.getColor(),null==u?!0:u.checked,q.checked,v.getLink(),E.checked,null!=l?l.value:null,null!=t?t.value:null)}),null,mxResources.get("create"),m);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)):n.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d,f){var e=document.createElement("div");e.style.whiteSpace="nowrap";var m=document.createElement("h3");mxUtils.write(m,mxResources.get("image"));m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(f?"10":"4")+"px";e.appendChild(m);if(f){mxUtils.write(e,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.marginRight=
+"16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";e.appendChild(g);mxUtils.write(e,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";e.appendChild(k);mxUtils.br(e)}var p=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),x=d?null:this.addCheckbox(e,
+mxResources.get("includeCopyOfMyDiagram"),!0),m=this.editor.graph,l=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),m.background==mxConstants.NONE||null==m.background);null!=l&&(l.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,b=parseInt(k.value)||0;c(!p.checked,null!=x?x.checked:!1,null!=l?l.checked:!1,a,b)}),null,a,b);this.showDialog(a.container,300,(f?25:0)+(d?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
+function(a,b,c,d,f,g,k,l){k=null!=k?k:!0;var e=document.createElement("div");e.style.whiteSpace="nowrap";var m=this.editor.graph,p="jpeg"==l?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";e.appendChild(n);mxUtils.write(e,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
+"12px";t.value=this.lastExportZoom||"100%";e.appendChild(t);mxUtils.write(e,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";e.appendChild(u);mxUtils.br(e);var q=this.addCheckbox(e,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=l),v=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,m.isSelectionEmpty()),z=document.createElement("input");
+z.style.marginTop="16px";z.style.marginRight="8px";z.style.marginLeft="24px";z.setAttribute("disabled","disabled");z.setAttribute("type","checkbox");g&&(e.appendChild(z),mxUtils.write(e,mxResources.get("crop")),mxUtils.br(e),p+=26,mxEvent.addListener(v,"change",function(){v.checked?z.removeAttribute("disabled"):z.setAttribute("disabled","disabled")}));m.isSelectionEmpty()||(z.setAttribute("checked","checked"),z.defaultChecked=!0);var y=this.addCheckbox(e,mxResources.get("shadow"),m.shadowVisible),
+E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||E.setAttribute("disabled","disabled");b&&(e.appendChild(E),mxUtils.write(e,mxResources.get("embedImages")),mxUtils.br(e),p+=26);var K=null;if("png"==l||"jpeg"==l)K=this.addCheckbox(e,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),p+=26;var M=this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),k,null,null,
+"jpeg"!=l),R=null!=this.pages&&1<this.pages.length,W=this.addCheckbox(e,R?mxResources.get("allPages"):"",R,!R,null,"jpeg"!=l);W.style.marginLeft="24px";W.style.marginBottom="16px";R?p+=26:W.style.display="none";mxEvent.addListener(M,"change",function(){M.checked&&R?W.removeAttribute("disabled"):W.setAttribute("disabled","disabled")});k&&R||W.setAttribute("disabled","disabled");var T=document.createElement("select");T.style.maxWidth="260px";T.style.marginLeft="8px";T.style.marginRight="10px";T.className=
+"geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));T.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");mxUtils.write(a,mxResources.get("openInNewWindow"));T.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));T.appendChild(a);"svg"==l&&(mxUtils.write(e,mxResources.get("links")+":"),e.appendChild(T),mxUtils.br(e),mxUtils.br(e),
+p+=26);c=new CustomDialog(this,e,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=t.value;f(t.value,q.checked,!v.checked,y.checked,M.checked,E.checked,u.value,z.checked,!W.checked,T.value,null!=K?K.checked:null)}),null,c,d);this.showDialog(c.container,340,p,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,
+b,c,d,f){var e=document.createElement("div");e.style.whiteSpace="nowrap";var m=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";e.appendChild(g)}var k=this.addCheckbox(e,mxResources.get("fit"),!0),p=this.addCheckbox(e,mxResources.get("shadow"),m.shadowVisible&&d,!d),x=this.addCheckbox(e,c),l=this.addCheckbox(e,mxResources.get("lightbox"),!0),n=this.addEditButton(e,l),u=n.getEditInput(),
+q=1<m.model.getChildCount(m.model.getRoot()),v=this.addCheckbox(e,mxResources.get("layers"),q,!q);v.style.marginLeft=u.style.marginLeft;v.style.marginBottom="12px";v.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked?(q&&v.removeAttribute("disabled"),u.removeAttribute("disabled")):(v.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&l.checked?n.getEditSelect().removeAttribute("disabled"):n.getEditSelect().setAttribute("disabled","disabled")});
+b=new CustomDialog(this,e,mxUtils.bind(this,function(){a(k.checked,p.checked,x.checked,l.checked,n.getLink(),v.checked)}),null,mxResources.get("embed"),f);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,f,g,k,l){function e(b){var e=" ",p="";d&&(e=" 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('"+
+EditorUi.drawHost+"/?client=1&lightbox=1"+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");a&&(p+="max-width:100%;");var x="";c&&(x=' width="'+Math.round(m.width)+'" height="'+Math.round(m.height)+'"');k('<img src="'+b+'"'+x+(""!=p?' style="'+p+'"':"")+e+"/>")}var m=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");e(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),m.width*m.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var p="";c&&(p="&w="+Math.round(2*m.width)+"&h="+Math.round(2*m.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+p+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?e("data:image/png;base64,"+n.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,c,d,f,g,k){var e=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!c),m=e.getElementsByTagName("a");if(null!=m)for(var p=0;p<m.length;p++){var x=m[p].getAttribute("href");null!=x&&"#"==x.charAt(0)&&"_blank"==m[p].getAttribute("target")&&m[p].removeAttribute("target")}d&&e.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(e);if(c){var l=" ",n="";d&&(l="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('"+
+EditorUi.drawHost+"/?client=1&lightbox=1"+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;");a&&(n+="max-width:100%;");this.convertImages(e,mxUtils.bind(this,function(a){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=n?' style="'+n+'"':"")+l+"/>")}))}else n="",d&&(e.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('"+
+EditorUi.drawHost+"/?client=1&lightbox=1"+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),n+="cursor:pointer;"),a&&(a=parseInt(e.getAttribute("width")),b=parseInt(e.getAttribute("height")),e.setAttribute("viewBox","-0.5 -0.5 "+a+" "+b),n+="max-width:100%;max-height:"+b+"px;",e.removeAttribute("height")),""!=n&&e.setAttribute("style",n),this.editor.addFontCss(e),this.editor.graph.mathEnabled&&this.editor.addMathCss(e),k(mxUtils.getXml(e))};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.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<d.length){var c=d[0],f=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:f.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,c){try{var d=this.editor.graph,f=null;if(null!=
-c&&0<c.length)d=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),d),f=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()),e=d.getGlobalVariable,m=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(d.container);
-d.model.setRoot(m.root)}this.exportToCanvas(mxUtils.bind(this,function(c){try{null==f&&(f=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=c.toDataURL("image/png"),e=this.writeGraphModelToPng(e,"tEXt","mxfile",encodeURIComponent(f));a(e.substring(e.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(H){null!=b&&b(H)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,d.shadowVisible,null,d)}catch(x){null!=
-b&&b(x)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,g,k,l){l=null!=l?l:!0;k=b.background;k==mxConstants.NONE&&(k=null);g=b.getSvg(k,null,null,null,null,g);b.shadowVisible&&b.addSvgShadow(g);null!=a&&g.setAttribute("content",a);null!=c&&g.setAttribute("resource",c);if(null!=e)this.embedFonts(g,mxUtils.bind(this,function(a){l?this.convertImages(a,mxUtils.bind(this,function(a){e((d?"":'<?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))})):e((d?"":'<?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 return(d?"":'<?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(g)};EditorUi.prototype.embedFonts=function(a,b){this.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&
-this.editor.addFontCss(a,this.editor.resolvedFontCss),this.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(u){b(a)}}))}catch(p){b(a)}}))};EditorUi.prototype.exportImage=function(a,b,c,d,e,g,k,l,n,q,y){n=null!=n?n:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();
-try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c,l):null,n,null==this.pages||0==this.pages.length,y)}catch(D){"Invalid image"==D.message?this.downloadFile(n):this.handleError(D)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,g,k,q)}catch(A){this.spinner.stop(),this.handleError(A)}}};EditorUi.prototype.embedCssFonts=function(a,b){function c(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$",
-"g"),"")}var d=a.split("url("),f=0;null==this.cachedFonts&&(this.cachedFonts={});var e=mxUtils.bind(this,function(){if(0==f){for(var a=[d[0]],e=1;e<d.length;e++){var m=d[e].indexOf(")");a.push('url("');a.push(this.cachedFonts[c(d[e].substring(0,m))]);a.push('"'+d[e].substring(m))}b(a.join(""))}});if(0<d.length){for(var m=1;m<d.length;m++){var g=d[m].indexOf(")"),k=null,l=d[m].indexOf("format(",g);0<l&&(k=c(d[m].substring(l+7,d[m].indexOf(")",l))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=
-a;f++;var b="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var c=a;/^https?:\/\//.test(c)&&
-!this.editor.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){this.cachedFonts[a]=b;f--;e()}),mxUtils.bind(this,function(a){f--;e()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(c(d[m].substring(0,g)),k)}e()}else b(a)};EditorUi.prototype.loadFonts=function(a){null!=this.editor.fontCss&&null==this.editor.resolvedFontCss?this.embedCssFonts(this.editor.fontCss,mxUtils.bind(this,function(b){this.editor.resolvedFontCss=b;a()})):a()};EditorUi.prototype.embedExtFonts=
-function(a){var b=this.editor.graph.extFonts;if(null!=b&&0<b.length){var c="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(c,a)}),e=0;e<b.length;e++){var g=b[e].name,k=b[e].url;0==k.indexOf(Editor.GOOGLE_FONTS)?null==this.cachedGoogleFonts[k]?(d++,this.loadUrl(k,mxUtils.bind(this,function(a){this.cachedGoogleFonts[k]=a;c+=a;d--;f()}),mxUtils.bind(this,function(a){d--;c+="@import url("+k+");";f()}))):c+=this.cachedGoogleFonts[k]:
-c+='@font-face {font-family: "'+g+'";src: url("'+k+'");}'}f()}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,g,k,l,n,q,y,B,A,D,F){try{g=null!=g?g:!0;k=null!=k?k:!0;B=null!=B?B:this.editor.graph;A=null!=A?A:0;var f=n?null:B.background;f==mxConstants.NONE&&(f=null);null==f&&(f=d);null==f&&0==n&&(f="#ffffff");this.convertImages(B.getSvg(null,null,null,D,null,k,null,null,null,q),mxUtils.bind(this,function(c){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var m=function(){mxClient.IS_SF?
-window.setTimeout(function(){y.drawImage(d,A/l,A/l);a(k)},0):(y.drawImage(d,A/l,A/l),a(k))},k=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),n=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=g?Math.min(1,Math.min(3*b/(4*n),b/p)):b/p);p=Math.ceil(l*p)+2*A;n=Math.ceil(l*n)+2*A;k.setAttribute("width",p);k.setAttribute("height",n);var y=k.getContext("2d");null!=f&&(y.beginPath(),y.rect(0,0,p,n),y.fillStyle=f,y.fill());y.scale(l,l);if(F){var t=B.view,u=t.scale;t.scale=
-1;var q=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=u;var q="data:image/svg+xml;base64,"+q,v=B.gridSize*t.gridSteps*l,x=B.getGraphBounds(),z=t.translate.x*u,C=t.translate.y*u,D=z+(x.x-z)/u,H=C+(x.y-C)/u,K=new Image;K.onload=function(){try{for(var a=-Math.round(v-mxUtils.mod((z-D)*l,v)),b=-Math.round(v-mxUtils.mod((C-H)*l,v));a<p;a+=v)for(var c=b;c<n;c+=v)y.drawImage(K,a/l,c/l);m()}catch(M){null!=e&&e(M)}};K.onerror=function(a){null!=e&&e(a)};K.src=q}else m()}catch(Y){null!=
-e&&e(Y)}});d.onerror=function(a){null!=e&&e(a)};q&&this.editor.graph.addSvgShadow(c);this.editor.graph.mathEnabled&&this.editor.addMathCss(c);var m=mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(c,this.editor.resolvedFontCss),d.src=this.createSvgDataUri(mxUtils.getXml(c))}catch(J){null!=e&&e(J)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.editor.addFontCss(c,a),this.loadFonts(m)}catch(N){null!=e&&e(N)}}))}catch(J){null!=e&&e(J)}}),
-c,y)}catch(K){null!=e&&e(K)}};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,c=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=c.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||c.crossOriginImages&&c.editor.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+
-encodeURIComponent(d)}return d};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=c||{};c=mxUtils.bind(this,function(c,g){for(var m=a.getElementsByTagName(c),k=0;k<m.length;k++)mxUtils.bind(this,function(c){try{if(null!=c){var m=d.convert(c.getAttribute(g));if(null!=m&&"data:"!=m.substring(0,5)){var k=e[m];null==k?(f++,this.convertImageToDataUri(m,function(d){null!=d&&(e[m]=d,c.setAttribute(g,d));f--;0==f&&b(a)})):c.setAttribute(g,k)}else null!=
-m&&c.setAttribute(g,m)}}catch(D){}})(m[k])});c("image","xlink:href");c("img","src");0==f&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,g,k){try{var f=!k&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));e=null!=e?e:!0;var m=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(f){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);d=d.join("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}b(d)}}else null!=c&&c({message:mxResources.get("error")+" "+a.getStatus()},a)}),function(a){null!=c&&c({message:mxResources.get("error")+" "+a.getStatus()})},f,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:m})})});m()}catch(H){null!=
-c&&c(H)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){try{var c=!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b(this.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);c&&b(this.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);c&&b(this.svgBrokenImage.src)});else{var f=new Image,e=this;this.crossOriginImages&&
-(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(c)try{var a=document.createElement("canvas"),g=a.getContext("2d");a.height=f.height;a.width=f.width;g.drawImage(f,0,0);b(a.toDataURL())}catch(C){b(e.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);c&&b(e.svgBrokenImage.src)};f.src=a}}catch(z){b(this.svgBrokenImage.src)}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){g.model.beginUpdate();
-try{var m=mxUtils.parseXml(a),k=this.editor.extractGraphModel(m.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var p=k.getElementsByTagName("diagram");if(1==p.length)k=Editor.parseDiagramNode(p[0]);else if(1<p.length){a={};var m=[],l=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(k=Editor.parseDiagramNode(p[0]),d=!1,l=1);for(;l<p.length;l++){var n=p[l].getAttribute("id");p[l].removeAttribute("id");var u=this.updatePageRoot(new DiagramPage(p[l]));
-a[n]=p[l].getAttribute("id");var q=this.pages.length;null==u.getName()&&u.setName(mxResources.get("pageWithNumber",[q+1]));g.model.execute(new ChangePage(this,u,u,q,!0));m.push(u)}this.updatePageLinks(a,m)}}null!=k&&"mxGraphModel"===k.nodeName&&(f=g.importGraphModel(k,b,c,d))}finally{g.model.endUpdate()}}}catch(F){if(e)throw F;this.handleError(F)}return f};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=
-function(a,b){var c=document.createElement("div"),d=this.editor.graph,f=d.getLinkForCell(b);null!=f&&d.setLinkForCell(b,this.updatePageLink(a,f));if(d.isHtmlLabel(b)){c.innerHTML=d.getLabel(b);for(var e=c.getElementsByTagName("a"),g=!1,m=0;m<e.length;m++)f=e[m].getAttribute("href"),null!=f&&(e[m].setAttribute("href",this.updatePageLink(a,f)),g=!0);g&&d.labelChanged(b,c.innerHTML)}for(m=0;m<d.model.getChildCount(b);m++)this.updatePageLinksForCell(a,d.model.getChildAt(b,m))};EditorUi.prototype.updatePageLink=
-function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var f=0;f<d.actions.length;f++){var e=d.actions[f];null!=e.open&&"data:page/id,"==e.open.substring(0,13)&&(c=a[e.open.substring(e.open.indexOf(",")+1)],null!=c?e.open="data:page/id,"+c:delete e.open)}b="data:action/json,"+JSON.stringify(d)}}catch(z){}return b};EditorUi.prototype.isRemoteVisioFormat=
-function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,c,d){d=null!=d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var f=this.isRemoteVisioFormat(d);try{var e="UNKNOWN-VISIO",g=d.lastIndexOf(".");0<=g&&g<d.length&&(e=d.substring(g+1).toUpperCase());EditorUi.logEvent({category:e+"-MS-IMPORT-FILE",action:"filename_"+d,label:f?
-"remote":"local"})}catch(H){}if(f)if(null!=VSD_CONVERT_URL){f=new FormData;f.append("file1",a,d);var m=new XMLHttpRequest;m.open("POST",VSD_CONVERT_URL);m.responseType="blob";this.addRemoteServiceSecurityCheck(m);m.onreadystatechange=mxUtils.bind(this,function(){if(4==m.readyState)if(200<=m.status&&299>=m.status)try{var a=m.response;if("text/xml"==a.type){var f=new FileReader;f.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(A){c({message:mxResources.get("errorLoadingFile")})}});
-f.readAsText(a)}else this.doImportVisio(a,b,c,d)}catch(B){c(B)}else c({})});m.send(f)}else c({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else try{this.doImportVisio(a,b,c,d)}catch(H){c(H)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importGraphML=
-function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,c)}catch(v){c(v)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,
-function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()||this.handleError({message:mxResources.get("unknownError")})}catch(m){this.handleError(m)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,
-b,c){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(v){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(v){null!=window.console&&console.error(v),c(v)}}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(d,
-0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",d):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generatePlantUmlImage=function(a,b,c,d){function f(a,b,c){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|c>>6;c4=c&63;r="";r+=e(c1&63);r+=e(c2&63);r+=e(c3&63);return r+=e(c4&63)}function e(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"}var g=
-new XMLHttpRequest;g.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+f(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+f(a.charCodeAt(i),0,0):r+f(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(pako.deflateRaw(a,{to:"string"})),!0);"txt"!=b&&(g.responseType="blob");g.onload=function(a){if(200<=this.status&&300>this.status)if("txt"==b)c(this.response);else{var f=new FileReader;f.readAsDataURL(this.response);
-f.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,e=b.height;if(0==a&&0==e){var g=f.result,m=g.indexOf(","),k=decodeURIComponent(escape(atob(g.substring(m+1)))),p=mxUtils.parseXml(k).getElementsByTagName("svg");0<p.length&&(a=parseFloat(p[0].getAttribute("width")),e=parseFloat(p[0].getAttribute("height")))}c(f.result,a,e)}catch(G){d(G)}};b.src=f.result};f.onerror=function(a){d(a)}}else d(a)};g.onerror=function(a){d(a)};g.send()};EditorUi.prototype.insertAsPreText=function(a,
-b,c){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+a+"</pre>",b,c,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(f,!0)}finally{d.getModel().endUpdate()}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,g,k){g=null!=g?g:!0;k=null!=k?k:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),
-mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var f=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var m=Editor.extractGraphModelFromPdf(a);if(null!=m&&0<m.length)return this.importXml(m,b,c,g,!0)}if("data:image/png;base64,"==a.substring(0,22)&&(m=this.extractGraphModelFromPng(a),
-null!=m&&0<m.length))return this.importXml(m,b,c,g,!0);if("data:image/svg+xml;"==a.substring(0,19))try{m=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(m=a.substring(a.indexOf(",")+1),m=window.atob&&!mxClient.IS_SF?atob(m):Base64.decode(m,!0)):m=decodeURIComponent(a.substring(a.indexOf(",")+1));var p=this.importXml(m,b,c,g,!0);if(0<p.length)return p}catch(y){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){f.setSelectionCell(f.insertVertex(null,
-null,"",f.snap(b),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),k,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),g=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(b),f.snap(c),g,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-a+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,a,f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,
-function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,c,g))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"..."),e.value=a,
-f.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i.test(e.value)&&f.setLinkForCell(e,e.value),e.geometry.width+=f.gridSize,e.geometry.height+=f.gridSize}finally{f.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};
-EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&('{"state":"{\\"Properties\\":'==a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==
-this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=c}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,
-function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){if(null!=b&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(b)){var c=new Blob([a],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,b)}else this.editor.graph.setSelectionCells(this.importXml(a,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var f=this.dialog,e=f.close;this.dialog.close=
-mxUtils.bind(this,function(a){Editor.useLocalStorage=d;e.apply(f,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,c){var d=this,f=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(f){if(0==Object.keys(f.files).length)c();else{var e=0,g,m=!1;f.forEach(function(a,d){var f=d.name.toLowerCase();"diagram/diagram.xml"==f?(m=!0,d.async("string").then(function(a){0==
-a.indexOf("<mxfile ")?b(a):c()})):0==f.indexOf("versions/")&&(f=parseInt(f.substr(9)),f>e&&(e=f,g=d))});0<e?g.async("string").then(function(f){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(f,a.name)?d.parseFile(new Blob([f],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?b(a.responseText):c())}),a.name):c()}):m||c()}},function(a){c(a)}):c()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():
-(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(a,b,c,d,e,g,k,l,n,q,y){q=null!=q?q:!0;var f=!1,m=null,p=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,k)):b=this.importXml(a,c,d,q);null!=l&&l(b)});"image"==b.substring(0,5)?(n=!1,"image/png"==b.substring(0,9)&&(b=y?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(m=this.importXml(b,c,d,q),n=!0)),n||(b=this.editor.graph,
-y=a.indexOf(";"),0<y&&(a=a.substring(0,y)+a.substring(a.indexOf(",",y+1))),q&&b.isGridEnabled()&&(c=b.snap(c),d=b.snap(d)),m=[b.insertVertex(null,null,"",c,d,e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(f=!0,this.importGraphML(a,p)):null!=n&&null!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(f=!0,this.importVisio(n,p)):!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(a,k)?(f=!0,this.parseFile(null!=n?n:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?p(a.responseText):null!=l&&l(null))}),k)):0==a.indexOf("PK")&&null!=n?(f=!0,this.importZipFile(n,p,mxUtils.bind(this,function(){m=this.insertTextAt(this.validateFileData(a),c,d,!0,null,q);l(m)}))):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(m=this.insertTextAt(this.validateFileData(a),c,d,!0,null,
-q));f||null==l||l(m);return m};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,f,e,g;c<d;){f=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);b+="==";break}e=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-3)<<4|(e&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);b+="=";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};
-EditorUi.prototype.importFiles=function(a,b,c,d,e,g,k,l,n,q,y,B){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var f=null!=b&&null!=c,m=!0,p=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var t=y||this.resampleThreshold,u=0;u<a.length;u++)if("image/"==a[u].type.substring(0,6)&&a[u].size>t){p=!0;break}var v=mxUtils.bind(this,function(){var p=this.editor.graph,n=p.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,g,m,k,p){try{return null!=a&&"<mxlibrary"==
-a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,m)),null):this.importFile(a,b,c,d,e,g,m,k,p,f,B)}catch(Y){return this.handleError(Y),null}});g=null!=g?g:mxUtils.bind(this,function(a){p.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=a.length,u=t,A=[],v=mxUtils.bind(this,function(a,b){A[a]=b;if(0==--u){this.spinner.stop();if(null!=l)l(A);else{var c=[];p.getModel().beginUpdate();try{for(var d=0;d<A.length;d++){var f=A[d]();
-null!=f&&(c=c.concat(f))}}finally{p.getModel().endUpdate()}}g(c)}}),x=0;x<t;x++)mxUtils.bind(this,function(f){var g=a[f];if(null!=g){var l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==k||k(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var l=a.target.result,t=l.indexOf(","),u=decodeURIComponent(escape(atob(l.substring(t+1)))),A=mxUtils.parseXml(u),u=A.getElementsByTagName("svg");if(0<u.length){var u=u[0],x=B?null:u.getAttribute("content");null!=x&&"<"!=
-x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?v(f,mxUtils.bind(this,function(){try{if(l.substring(0,t+1),null!=A){var a=A.getElementsByTagName("svg");if(0<a.length){var m=a[0],k=m.getAttribute("width"),y=m.getAttribute("height"),k=null!=k&&"%"!=k.charAt(k.length-1)?parseFloat(k):NaN,y=null!=y&&"%"!=y.charAt(y.length-1)?parseFloat(y):
-NaN,q=m.getAttribute("viewBox");if(null==q||0==q.length)m.setAttribute("viewBox","0 0 "+k+" "+y);else if(isNaN(k)||isNaN(y)){var u=q.split(" ");3<u.length&&(k=parseFloat(u[2]),y=parseFloat(u[3]))}l=this.createSvgDataUri(mxUtils.getXml(m));var B=Math.min(1,Math.min(d/Math.max(1,k)),d/Math.max(1,y)),v=e(l,g.type,b+f*n,c+f*n,Math.max(1,Math.round(k*B)),Math.max(1,Math.round(y*B)),g.name);if(isNaN(k)||isNaN(y)){var x=new Image;x.onload=mxUtils.bind(this,function(){k=Math.max(1,x.width);y=Math.max(1,x.height);
-v[0].geometry.width=k;v[0].geometry.height=y;m.setAttribute("viewBox","0 0 "+k+" "+y);l=this.createSvgDataUri(mxUtils.getXml(m));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));p.setCellStyles("image",l,[v[0]])});x.src=this.createSvgDataUri(mxUtils.getXml(m))}return v}}}catch(ha){}return null})):v(f,mxUtils.bind(this,function(){return e(x,"text/xml",b+f*n,c+f*n,0,0,g.name)}))}else v(f,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==g.type){var z=
-B?null:this.extractGraphModelFromPng(a.target.result);if(null!=z&&0<z.length){var D=new Image;D.src=a.target.result;v(f,mxUtils.bind(this,function(){return e(z,"text/xml",b+f*n,c+f*n,D.width,D.height,g.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,
-mxUtils.bind(this,function(k){this.resizeImage(k,a.target.result,mxUtils.bind(this,function(k,p,l){v(f,mxUtils.bind(this,function(){if(null!=k&&k.length<q){var t=m&&this.isResampleImage(a.target.result,y)?Math.min(1,Math.min(d/p,d/l)):1;return e(k,g.type,b+f*n,c+f*n,Math.round(p*t),Math.round(l*t),g.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),m,d,y)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else l=a.target.result,
-e(l,g.type,b+f*n,c+f*n,240,160,g.name,function(a){v(f,function(){return a})},g)});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?e(null,g.type,b+f*n,c+f*n,240,160,g.name,function(a){v(f,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?l.readAsDataURL(g):l.readAsText(g)}})(x)});if(p){p=[];for(u=0;u<a.length;u++)p.push(a[u]);a=p;this.confirmImageResize(function(a){m=a;v()},n)}else v()};EditorUi.prototype.confirmImageResize=function(a,b){b=
-null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(d,f){if(d||b)mxSettings.setResizeImages(d?f:null),mxSettings.save();c();a(f)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){f(a,!0)},function(a){f(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
-'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):f(!1,d)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var f=new XMLHttpRequest;f.open("POST",OPEN_URL);f.onreadystatechange=function(){b(f)};f.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(t){}};EditorUi.prototype.isResampleImage=
-function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,g){e=null!=e?e:this.maxImageSize;var f=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,g))try{var m=Math.max(f/e,k/e);if(1<m){var p=Math.round(f/m),l=Math.round(k/m),n=document.createElement("canvas");n.width=p;n.height=l;n.getContext("2d").drawImage(a,0,0,p,l);var t=n.toDataURL();if(t.length<b.length){var q=document.createElement("canvas");q.width=p;q.height=
-l;var u=q.toDataURL();t!==u&&(b=t,f=p,k=l)}}}catch(I){}c(b,f,k)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var e=b,g=0;8>g;g++)e=1==(e&1)?3988292384^e>>>1:e>>>1,EditorUi.prototype.crcTable[b]=e;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var f=0;f<d;f++)a=EditorUi.prototype.crcTable[(a^b.charCodeAt(c+f))&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&
-255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=m;m+=b;return a.substring(c,m)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var m=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,
-4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,m);do{var p=g(a);if("IDAT"==f(a,4)){e=a.substring(0,m-8);"pHYs"==b&&"dpi"==c?(c=Math.round(d/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d;d=4294967295;d=this.updateCRC(d,b,0,4);d=this.updateCRC(d,c,0,c.length);e+=k(c.length)+b+c+k(d^4294967295);e+=a.substring(m-8,a.length);break}e+=a.substring(m-8,m-4+p);f(a,p);f(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(e):
-Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,c){try{var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a}catch(v){if(null!=c)c(v);else throw v;}};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());
-var a=this,b=this.editor.graph,c=b.cellEditor.startEditing;b.cellEditor.startEditing=function(d,f){var e=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=e){var g=JSON.parse(e),e=new TextareaDialog(a,mxResources.get("plantUml")+":",g.data,function(c){null!=c&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(c,g.format,function(f,e,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==g.format)b.labelChanged(d,"<pre>"+f+"</pre>"),b.updateCellSize(d,
-!0);else{b.setCellStyles("image",a.convertDataUri(f),[d]);var m=b.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=e,m.height=k,b.cellsResized([d],[m],!1))}b.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:c,format:g.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(e.container,420,300,!0,!0);e.init()}else c.apply(this,arguments)};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),
-c=!0}catch(F){a.handleError(F)}return c};var d=this.clearDefaultStyle;this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":
-"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");return e.apply(this,arguments)};var g=b.addClickHandler;b.addClickHandler=function(a,c,d){var f=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=f&&f(a,c)};g.call(this,a,c,d)};k.apply(this,arguments);mxClient.IS_SVG&&
-this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getExportVariables;b.getExportVariables=function(){var b=l.apply(this,arguments);b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,
-a.currentPage)+1:1;return b};var n=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:"pagecount"==b?null!=a.pages?a.pages.length:1:n.apply(this,arguments)};var q=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var f=c.getAttribute("href");if(null==f||!b.isCustomLink(f)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))q.apply(this,arguments);
-else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(f),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var H=this.actions.get("print");H.setEnabled(!mxClient.IS_IOS||!navigator.standalone);H.visible=H.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"find"),this.keyHandler.bindAction(67,
-!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(this.altShiftActions[83]="synchronize"),this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||
-0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();
-a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,f,e,g){b.insertImage(a,e,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");
-/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,d)),f/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*f,a*f)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(H=this.editor.graph.view,H.setUnit(mxSettings.getUnit()),H.addListener("unitChanged",function(a,b){mxSettings.setUnit(b.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:
-new mxDualRuler(this,H.unit),this.refresh());if("1"==urlParams.styledev){H=document.getElementById("geFooter");null!=H&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),
-this.styleInput.value)})),H.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var y=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==
-this.styleInput?!0:y.apply(this,arguments)}}H=document.getElementById("geInfo");null!=H&&H.parentNode.removeChild(H);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var B=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=B&&(B.parentNode.removeChild(B),B=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==B&&(!mxClient.IS_IE||10<document.documentMode)&&(B=this.highlightElement(b.container));
-null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=B&&(B.parentNode.removeChild(B),B=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,f=b.view.scale,e=c.x/f-d.x,g=c.y/f-d.y;mxEvent.isAltDown(a)&&(g=e=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,e,g,this.maxImageSize,null,null,null,
-null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,e,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var m=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=m;var p=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?
-(m=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(m=c[0].getAttribute("href")));var l=!0,n=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(m,e,g,!0,p,null,l))});p&&m.length>this.resampleThreshold?this.confirmImageResize(function(a){l=a;n()},mxEvent.isControlDown(a)):n()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=
-Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",e,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,e,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),
-e,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b))try{for(var c=b.clipboardData||b.originalEvent.clipboardData,d=!1,f=0;f<c.types.length;f++)if("text/"===c.types[f].substring(0,5)){d=!0;break}if(!d){var e=c.items;for(index in e){var g=
-e[index];if("file"===g.kind){if(a.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(b,c,d,f,e,g){a.insertImage(b,e,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(C){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){c.innerHTML=
-"&nbsp;";c.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,c=document.createElement("div");c.setAttribute("autocomplete","off");c.setAttribute("autocorrect","off");c.setAttribute("autocapitalize","off");c.setAttribute("spellcheck","false");c.style.textRendering="optimizeSpeed";c.style.fontFamily="monospace";c.style.wordBreak="break-all";c.style.background="transparent";c.style.color="transparent";c.style.position="absolute";c.style.whiteSpace="nowrap";c.style.overflow=
-"hidden";c.style.display="block";c.style.fontSize="1";c.style.zIndex="-1";c.style.resize="none";c.style.outline="none";c.style.width="1px";c.style.height="1px";mxUtils.setOpacity(c,0);c.contentEditable=!0;c.innerHTML="&nbsp;";var d=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var f=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||
-b.isEditing()||null!=this.dialog||"INPUT"==f.nodeName||"TEXTAREA"==f.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||d||(c.style.left=b.container.scrollLeft+10+"px",c.style.top=b.container.scrollTop+10+"px",b.container.appendChild(c),d=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){c.focus();document.execCommand("selectAll",!1,null)},0):(c.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,
-function(a){var f=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!d||224!=f&&17!=f&&91!=f||(d=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),c.parentNode.removeChild(c),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(c,"copy",mxUtils.bind(this,function(d){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(c),a()}catch(z){this.handleError(z)}}));mxEvent.addListener(c,"cut",mxUtils.bind(this,function(d){if(b.isEnabled())try{mxClipboard.copy(b),
-this.copyCells(c,!0),a()}catch(z){this.handleError(z)}}));mxEvent.addListener(c,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&((new Date).getTime(),c.innerHTML="&nbsp;",c.focus(),null!=a.clipboardData&&this.pasteCells(a,c,!0),mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,c,!1)}),0))}),!0);var e=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==c?!0:e.apply(this,arguments)}};
-EditorUi.prototype.getLinkTitle=function(a){var b=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");0<c&&(b=this.getPageById(a.substring(c+1)),b=null!=b?b.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(b=mxResources.get("action"));return b};EditorUi.prototype.handleCustomLink=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");if(a=this.getPageById(a.substring(b+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||
-"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(a){a.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),
-this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(f){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(a,b){mxSettings.setCustomFonts(this.menus.customFonts);mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",
-mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor("dark"==uiTheme);this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){console.log("gridColorChanged",
-this.editor.graph.view.gridColor);mxSettings.setGridColor(this.editor.graph.view.gridColor,"dark"==uiTheme);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||
-!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save());this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),f=mxUtils.getXml(c.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(f));b?
-(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=f,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b,c){if(!mxEvent.isConsumed(a)){var d=b;if(c&&null!=a.clipboardData&&a.clipboardData.getData){var f=a.clipboardData.getData("text/html");if(null!=f&&0<f.length){if(d=document.createElement("div"),d.innerHTML=f,f=d.getElementsByTagName("style"),null!=f)for(;0<f.length;)f[0].parentNode.removeChild(f[0])}else f=a.clipboardData.getData("text/plain"),
-null!=f&&0<f.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,f))}f=d.getElementsByTagName("span");if(null!=f&&0<f.length&&"application/vnd.lucid.chart.objects"===f[0].getAttribute("data-lucid-type"))c=f[0].getAttribute("data-lucid-content"),null!=c&&0<c.length&&(this.convertLucidChart(c,mxUtils.bind(this,function(a){var b=this.editor.graph;b.lastPasteXml==a?b.pasteCounter++:(b.lastPasteXml=a,b.pasteCounter=0);var c=b.pasteCounter*b.gridSize;b.setSelectionCells(this.importXml(a,c,
-c));b.scrollCellToVisible(b.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{var e=mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText),g=!1;try{var k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(A){}try{var f=d.getElementsByTagName("span"),m=null!=f&&0<f.length?mxUtils.trim(decodeURIComponent(f[0].textContent)):decodeURIComponent(e);this.isCompatibleString(m)&&(g=!0,e=m)}catch(A){}try{var l=this.editor.graph;
-if(null!=e&&0<e.length){l.lastPasteXml==e?l.pasteCounter++:(l.lastPasteXml=e,l.pasteCounter=0);var p=l.pasteCounter*l.gridSize;if(g||this.isCompatibleString(e))l.setSelectionCells(this.importXml(e,p,p));else{var n=l.getInsertPoint();l.isMouseInsertPoint()&&(p=0,l.lastPasteXml==e&&0<l.pasteCounter&&l.pasteCounter--);l.setSelectionCells(this.insertTextAt(e,n.x+p,n.y+p,!0))}if(!l.isSelectionEmpty()){l.scrollCellToVisible(l.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(l.view.getState(l.getSelectionCell()));
-try{mxEvent.consume(a)}catch(A){}}}else c||(l.lastPasteXml=null,l.pasteCounter=0)}catch(A){this.handleError(A)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==
-b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):
-this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<
-d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(c)&&
-(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,f;if(null==a){f=document.body;var e=document.documentElement;d=(f.clientWidth||e.clientWidth)-3;f=Math.max(f.clientHeight||0,e.clientHeight)-
-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,f=a.clientHeight;e=document.createElement("div");e.style.zIndex=mxPopupMenu.prototype.zIndex+2;e.style.border="3px dotted rgb(254, 137, 12)";e.style.pointerEvents="none";e.style.position="absolute";e.style.top=b+"px";e.style.left=c+"px";e.style.width=Math.max(0,d-3)+"px";e.style.height=Math.max(0,f-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(e):document.body.appendChild(e);return e};EditorUi.prototype.stringToCells=
-function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{var d=
-c.target.result,f=a.name;if(null!=f&&0<f.length){!this.useCanvasForExport&&/(\.png)$/i.test(f)?f=f.substring(0,f.length-4)+".drawio":/(\.pdf)$/i.test(f)&&(f=f.substring(0,f.length-4)+".drawio");var e=mxUtils.bind(this,function(a){f=0<=f.lastIndexOf(".")?f.substring(0,f.lastIndexOf("."))+".drawio":f+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,
-a,f))}catch(B){this.handleError(B,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,f,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(f)||/(\.vs(x|sx?))($|\?)/i.test(f))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();e(a)}));else if(/(\.*<graphml )/.test(d))this.importGraphML(d,mxUtils.bind(this,function(a){this.spinner.stop();e(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,f))this.parseFile(a,mxUtils.bind(this,function(a){4==
-a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?e(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(d))/(\.json)$/i.test(f)&&(f=f.substring(0,f.length-5)+".drawio"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,f,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==
-c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,c.target.result,a.name))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else if(0==d.indexOf("PK"))this.importZipFile(a,mxUtils.bind(this,function(a){this.spinner.stop();e(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(d,f,b)}));else{if("image/png"==
-a.type.substring(0,9))d=this.extractGraphModelFromPng(d);else if("application/pdf"==a.type){var g=Editor.extractGraphModelFromPdf(d);null!=g&&(d=g)}this.spinner.stop();this.openLocalFile(d,f,b)}}}catch(y){this.handleError(y)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=
-function(a,b,c){var d=this.getCurrentFile(),f=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(a);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,c))});if(null!=a&&0<a.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=d&&
-d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=
-function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,f=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(f[mxConstants.STYLE_SHAPE]));
-d.model.isEdge(a)&&(c(mxMarker.getPackageForType(f[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(f[mxConstants.STYLE_ENDARROW])));for(var f=d.model.getChildCount(a),e=0;e<f;e++)this.addBasenamesForCell(d.model.getChildAt(a,e),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=
-a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=a?"":"hidden",this.ruler.vRuler.container.style.visibility=a?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=a?"":"hidden");a||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=
-this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&
-this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?
-this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,
-d=!1,f=null,e=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,e);mxEvent.addListener(window,"message",mxUtils.bind(this,function(e){if(e.source==(window.opener||window.parent)){var k=e.data,m=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==
-a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(ca){}return a});if("json"==urlParams.proto){try{k=JSON.parse(k)}catch(Q){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):k.title,null!=k.messageKey?
-mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("prompt"==k.action){this.spinner.stop();var l=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(l.container,300,80,!0,!1);l.init();return}if("draft"==
-k.action){var n=m(k.xml);this.spinner.stop();l=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),n,mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();
-g.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(l.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{l.init()}catch(Q){g.postMessage(JSON.stringify({event:"draft",error:Q.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var p=1==k.enableRecent,t=1==k.enableSearch,q=1==k.enableCustomTemp,l=new NewDialog(this,!1,null!=k.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;
-null!=k.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,e,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,p?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",null,null,a,function(){a(null,"Network Error!")})}):null,t?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,
-function(a,b,c){g.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,q?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("textContent"==k.action){var u=this.getDiagramTextContent();g.postMessage(JSON.stringify({event:"textContent",data:u,message:k}),"*");return}if("status"==
-k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var v=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,v):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||
-this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var x=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var z=this.editor.graph,J=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;b.message=k;b.data=a;b.xml=encodeURIComponent(x);g.postMessage(JSON.stringify(b),"*")}),N=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=
-this.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(x)));z!=this.editor.graph&&z.container.parentNode.removeChild(z.container);J(a)}),R=k.pageId||(null!=this.pages?this.pages[0].getId():null);if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage.getId()!=R){for(var W=z.getGlobalVariable,z=this.createTemporaryGraph(z.getStylesheet()),T,L=0;L<this.pages.length;L++)if(this.pages[L].getId()==R){T=this.updatePageRoot(this.pages[L]);break}z.getGlobalVariable=function(a){return"page"==
-a?T.getName():"pagenumber"==a?1:W.apply(this,arguments)};document.body.appendChild(z.container);z.model.setRoot(T.root)}if(null!=k.layerIds){for(var V=z.model,Z=V.getChildCells(V.getRoot()),l={},L=0;L<k.layerIds.length;L++)l[k.layerIds[L]]=!0;for(L=0;L<Z.length;L++)V.setVisible(Z[L],l[Z[L].id]||!1)}this.exportToCanvas(mxUtils.bind(this,function(a){N(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){N(null)}),null,null,k.scale,null,null,null,z)}else(new mxXmlRequest(EXPORT_URL,
-"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=R?"&pageId="+R:"")+(null!=k.layerIds?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(x))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?J("data:image/png;base64,"+a.getText()):N(null)}),mxUtils.bind(this,function(){N(null)}))}}else{null!=k.xml&&0<k.xml.length&&this.setFileData(k.xml);v=this.createLoadMessage("export");
-if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();v.xml=mxUtils.getXml(ga);v.data=this.getFileData(null,null,!0,null,null,null,ga);v.format=k.format}else if("html"==k.format)x=this.editor.getGraphXml(),v.data=this.getHtml(x,this.editor.graph),v.xml=mxUtils.getXml(x),v.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var fa=this.editor.graph.background;fa==mxConstants.NONE&&(fa=null);v.xml=this.getFileData(!0,
-null,null,null,null,null,null,null,null,!1);v.format="svg";var aa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(v),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(v.xml,this.editor.graph,null,!0,aa,null,null,k.embedImages);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,
-null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){this.editor.graph.setEnabled(!1);var U=this.editor.graph.getSvg(fa);this.embedFonts(U,mxUtils.bind(this,function(a){k.embedImages||null==k.embedImages?this.convertImages(a,mxUtils.bind(this,function(a){aa(mxUtils.getXml(a))})):aa(mxUtils.getXml(a))}))}return}g.postMessage(JSON.stringify(v),"*")}return}if("load"==k.action)d=1==k.autosave,this.hideDialog(),null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified),null!=k.saveAndExit&&
-null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit),null!=k.title&&null!=this.buttonContainer&&(n=document.createElement("span"),mxUtils.write(n,k.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(n),this.embedFilenameSpan=n),k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):k.xml;else{"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(g):"remoteInvoke"==k.action?this.handleRemoteInvoke(k):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(Q){this.handleError(Q)}}var ba=mxUtils.bind(this,function(e,k){c=!0;try{a(e,k)}catch(ea){this.handleError(ea)}c=
-!1;null!=urlParams.modified&&this.editor.setStatus("");var m=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});f=m();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=m();if(d!=f&&!c){var e=this.createLoadMessage("autosave");e.xml=d;d=JSON.stringify(e);(window.opener||window.parent).postMessage(d,"*")}f=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",
-b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||g.postMessage(JSON.stringify(this.createLoadMessage("load")),
-"*")});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(a){ba(a,e)},mxUtils.bind(this,function(a){this.handleError(a)}),m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,
-function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&ba(a.responseText,e)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(a){ba(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(k=m(k),ba(k,e))}}));var g=window.opener||window.parent,e="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(e,"*")};EditorUi.prototype.addEmbedButtons=
-function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";"1"==urlParams.noSaveBtn?(mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
-a.appendChild(b)):(mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,
-"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.className="geBigButton geBigStandardButton";b.style.marginLeft="6px";b.style.marginRight="20px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);
-a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://about.draw.io/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
-EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),f=0;f<a.length;f++){var e=new window[a[f].layout](c);if(null!=a[f].config)for(var k in a[f].config)e[k]=a[f].config[k];this.executeLayout(function(){e.execute(c.getDefaultParent(),0==d.length?null:d)},f==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],f=[],e={};if(0<c.length){var k={},g=null,m=null,l=null,n=null,q=null,A=null,D=null,F=null,I="",K="auto",G=
-"auto",E=null,J=null,N=40,R=40,W=100,T=0,L=this.editor.graph;L.getGraphBounds();for(var V=function(){null!=b?b(la):(L.setSelectionCells(la),L.scrollCellToVisible(L.getSelectionCell()))},Z=L.getFreeInsertPoint(),ga=Z.x,fa=Z.y,Z=fa,aa=null,U="auto",F=null,ba=[],Q=null,ca=null,Y=0;Y<c.length&&"#"==c[Y].charAt(0);){a=c[Y];for(Y++;Y<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[Y].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[Y].substring(1)),Y++;if("#"!=a.charAt(1)){var ea=a.indexOf(":");if(0<
-ea){var P=mxUtils.trim(a.substring(1,ea)),M=mxUtils.trim(a.substring(ea+1));"label"==P?aa=L.sanitizeHtml(M):"labelname"==P&&0<M.length&&"-"!=M?n=M:"labels"==P&&0<M.length&&"-"!=M?q=JSON.parse(M):"style"==P?g=M:"parentstyle"==P?A=M:"stylename"==P&&0<M.length&&"-"!=M?l=M:"styles"==P&&0<M.length&&"-"!=M?m=JSON.parse(M):"identity"==P&&0<M.length&&"-"!=M?D=M:"parent"==P&&0<M.length&&"-"!=M?F=M:"namespace"==P&&0<M.length&&"-"!=M?I=M:"width"==P?K=M:"height"==P?G=M:"left"==P&&0<M.length?E=M:"top"==P&&0<M.length?
-J=M:"ignore"==P?ca=M.split(","):"connect"==P?ba.push(JSON.parse(M)):"link"==P?Q=M:"padding"==P?T=parseFloat(M):"edgespacing"==P?N=parseFloat(M):"nodespacing"==P?R=parseFloat(M):"levelspacing"==P?W=parseFloat(M):"layout"==P&&(U=M)}}}if(null==c[Y])throw Error(mxResources.get("invalidOrMissingFile"));var da=this.editor.csvToArray(c[Y]),P=ea=null;if(null!=D||null!=F)for(var S=0;S<da.length;S++)D==da[S]&&(ea=S),F==da[S]&&(P=S);null==aa&&(aa="%"+da[0]+"%");if(null!=ba)for(var X=0;X<ba.length;X++)null==
-k[ba[X].to]&&(k[ba[X].to]={});L.model.beginUpdate();try{for(S=Y+1;S<c.length;S++){var ja=this.editor.csvToArray(c[S]);if(null==ja){var ka=40<c[S].length?c[S].substring(0,40)+"...":c[S];throw Error(S+" ("+ka+") "+mxResources.get("containsValidationErrors"));}if(ja.length==da.length){var O=null,ma=null!=ea?I+ja[ea]:null;null!=ma&&(O=L.model.getCell(ma));var D=null!=O,ha=new mxCell(aa,new mxGeometry(ga,Z,0,0),g||"whiteSpace=wrap;html=1;");ha.vertex=!0;ha.id=ma;for(var ia=0;ia<ja.length;ia++)L.setAttributeForCell(ha,
-da[ia],ja[ia]);if(null!=n&&null!=q){var ua=q[ha.getAttribute(n)];null!=ua&&L.labelChanged(ha,ua)}if(null!=l&&null!=m){var va=m[ha.getAttribute(l)];null!=va&&(ha.style=va)}L.setAttributeForCell(ha,"placeholders","1");ha.style=L.replacePlaceholders(ha,ha.style);D&&(L.model.setGeometry(O,ha.geometry),L.model.setStyle(O,ha.style),0>mxUtils.indexOf(f,O)&&f.push(O));O=ha;if(!D)for(X=0;X<ba.length;X++)k[ba[X].to][O.getAttribute(ba[X].to)]=O;null!=Q&&"link"!=Q&&(L.setLinkForCell(O,O.getAttribute(Q)),L.setAttributeForCell(O,
-Q,null));L.fireEvent(new mxEventObject("cellsInserted","cells",[O]));var wa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=E&&null!=O.getAttribute(E)&&(O.geometry.x=ga+parseFloat(O.getAttribute(E))),null!=J&&null!=O.getAttribute(J)&&(O.geometry.y=fa+parseFloat(O.getAttribute(J))),"@"==K.charAt(0)&&null!=O.getAttribute(K.substring(1))?O.geometry.width=parseFloat(O.getAttribute(K.substring(1))):O.geometry.width="auto"==K?wa.width+T:parseFloat(K),"@"==G.charAt(0)&&null!=O.getAttribute(G.substring(1))?
-O.geometry.height=parseFloat(O.getAttribute(G.substring(1))):O.geometry.height="auto"==G?wa.height+T:parseFloat(G),Z+=O.geometry.height+R);D?(null==e[ma]&&(e[ma]=[]),e[ma].push(O)):(F=null!=P?L.model.getCell(I+ja[P]):null,d.push(O),null!=F?(F.style=L.replacePlaceholders(F,A),L.addCell(O,F)):f.push(L.addCell(O)))}}for(var na=f.slice(),la=f.slice(),X=0;X<ba.length;X++)for(var xa=ba[X],S=0;S<f.length;S++){var O=f[S],ya=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d){L.setAttributeForCell(b,
-c.from,null);for(var d=d.split(","),f=0;f<d.length;f++){var e=k[c.to][d[f]];if(null!=e){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.tolabel&&(g=(g||"")+(e.getAttribute(c.tolabel)||""));la.push(L.insertEdge(null,null,g||"",c.invert?e:a,c.invert?a:e,c.style||L.createCurrentEdgeStyle()));mxUtils.remove(c.invert?a:e,na)}}}});ya(O,O,xa);if(null!=e[O.id])for(ia=0;ia<e[O.id].length;ia++)ya(O,e[O.id][ia],xa)}if(null!=ca)for(S=0;S<d.length;S++)for(O=d[S],ia=0;ia<
-ca.length;ia++)L.setAttributeForCell(O,mxUtils.trim(ca[ia]),null);if(0<f.length){var oa=new mxParallelEdgeLayout(L);oa.spacing=N;var ta=function(){0<oa.spacing&&oa.execute(L.getDefaultParent());for(var a=0;a<f.length;a++){var b=L.getCellGeometry(f[a]);b.x=Math.round(L.snap(b.x));b.y=Math.round(L.snap(b.y));"auto"==K&&(b.width=Math.round(L.snap(b.width)));"auto"==G&&(b.height=Math.round(L.snap(b.height)))}};if("["==U.charAt(0)){var za=V;L.view.validate();this.executeLayoutList(JSON.parse(U),function(){ta();
-za()});V=null}else if("circle"==U){var ra=new mxCircleLayout(L);ra.resetEdges=!1;var Aa=ra.isVertexIgnored;ra.isVertexIgnored=function(a){return Aa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};this.executeLayout(function(){ra.execute(L.getDefaultParent());ta()},!0,V);V=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&la.length==2*f.length-1&&1==na.length){L.view.validate();var sa=new mxCompactTreeLayout(L,"horizontaltree"==U);sa.levelDistance=R;sa.edgeRouting=!1;sa.resetEdges=!1;
-this.executeLayout(function(){sa.execute(L.getDefaultParent(),0<na.length?na[0]:null)},!0,V);V=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==na.length){L.view.validate();var pa=new mxHierarchicalLayout(L,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);pa.intraCellSpacing=R;pa.parallelEdgeSpacing=N;pa.interRankCellSpacing=W;pa.disableEdgeStyle=!1;this.executeLayout(function(){pa.execute(L.getDefaultParent(),la);L.moveCells(la,ga,fa)},!0,V);V=null}else if("organic"==
-U||"auto"==U&&la.length>f.length){L.view.validate();var qa=new mxFastOrganicLayout(L);qa.forceConstant=3*R;qa.resetEdges=!1;var Ba=qa.isVertexIgnored;qa.isVertexIgnored=function(a){return Ba.apply(this,arguments)||0>mxUtils.indexOf(f,a)};oa=new mxParallelEdgeLayout(L);oa.spacing=N;this.executeLayout(function(){qa.execute(L.getDefaultParent());ta()},!0,V);V=null}}this.hideDialog()}finally{L.model.endUpdate()}null!=V&&V()}}catch(Ca){this.handleError(Ca)}};EditorUi.prototype.getSearch=function(a){var b=
-"";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
+a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,c){try{var d=this.editor.graph,e=null;if(null!=
+c&&0<c.length)d=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),d),e=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()),f=d.getGlobalVariable,m=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(d.container);
+d.model.setRoot(m.root)}this.exportToCanvas(mxUtils.bind(this,function(c){try{null==e&&(e=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=c.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(e));a(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(G){null!=b&&b(G)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,d.shadowVisible,null,d)}catch(z){null!=
+b&&b(z)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,f,g,k,l){l=null!=l?l:!0;k=b.background;k==mxConstants.NONE&&(k=null);g=b.getSvg(k,null,null,null,null,g);b.shadowVisible&&b.addSvgShadow(g);null!=a&&g.setAttribute("content",a);null!=c&&g.setAttribute("resource",c);if(null!=f)this.embedFonts(g,mxUtils.bind(this,function(a){l?this.convertImages(a,mxUtils.bind(this,function(a){f((d?"":'<?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))})):f((d?"":'<?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 return(d?"":'<?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(g)};EditorUi.prototype.embedFonts=function(a,b){this.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&
+this.editor.addFontCss(a,this.editor.resolvedFontCss),this.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(u){b(a)}}))}catch(p){b(a)}}))};EditorUi.prototype.exportImage=function(a,b,c,d,f,g,k,l,n,q,x){n=null!=n?n:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();
+try{this.saveCanvas(a,f?this.getFileData(!0,null,null,null,c,l):null,n,null==this.pages||0==this.pages.length,x)}catch(D){"Invalid image"==D.message?this.downloadFile(n):this.handleError(D)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,g,k,q)}catch(A){this.spinner.stop(),this.handleError(A)}}};EditorUi.prototype.embedCssFonts=function(a,b){function c(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$",
+"g"),"")}var d=a.split("url("),e=0;null==this.cachedFonts&&(this.cachedFonts={});var f=mxUtils.bind(this,function(){if(0==e){for(var a=[d[0]],f=1;f<d.length;f++){var m=d[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[c(d[f].substring(0,m))]);a.push('"'+d[f].substring(m))}b(a.join(""))}});if(0<d.length){for(var m=1;m<d.length;m++){var g=d[m].indexOf(")"),k=null,l=d[m].indexOf("format(",g);0<l&&(k=c(d[m].substring(l+7,d[m].indexOf(")",l))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=
+a;e++;var b="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var c=a;/^https?:\/\//.test(c)&&
+!this.editor.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){this.cachedFonts[a]=b;e--;f()}),mxUtils.bind(this,function(a){e--;f()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(c(d[m].substring(0,g)),k)}f()}else b(a)};EditorUi.prototype.loadFonts=function(a){null!=this.editor.fontCss&&null==this.editor.resolvedFontCss?this.embedCssFonts(this.editor.fontCss,mxUtils.bind(this,function(b){this.editor.resolvedFontCss=b;a()})):a()};EditorUi.prototype.embedExtFonts=
+function(a){var b=this.editor.graph.extFonts;if(null!=b&&0<b.length){var c="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(c,a)}),f=0;f<b.length;f++){var g=b[f].name,k=b[f].url;0==k.indexOf(Editor.GOOGLE_FONTS)?null==this.cachedGoogleFonts[k]?(d++,this.loadUrl(k,mxUtils.bind(this,function(a){this.cachedGoogleFonts[k]=a;c+=a;d--;e()}),mxUtils.bind(this,function(a){d--;c+="@import url("+k+");";e()}))):c+=this.cachedGoogleFonts[k]:
+c+='@font-face {font-family: "'+g+'";src: url("'+k+'");}'}e()}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,f,g,k,l,n,q,x,C,A,D,F){try{g=null!=g?g:!0;k=null!=k?k:!0;C=null!=C?C:this.editor.graph;A=null!=A?A:0;var e=n?null:C.background;e==mxConstants.NONE&&(e=null);null==e&&(e=d);null==e&&0==n&&(e="#ffffff");this.convertImages(C.getSvg(null,null,null,D,null,k,null,null,null,q),mxUtils.bind(this,function(c){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var m=function(){mxClient.IS_SF?
+window.setTimeout(function(){n.drawImage(d,A/l,A/l);a(k)},0):(n.drawImage(d,A/l,A/l),a(k))},k=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),x=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=g?Math.min(1,Math.min(3*b/(4*x),b/p)):b/p);p=Math.ceil(l*p)+2*A;x=Math.ceil(l*x)+2*A;k.setAttribute("width",p);k.setAttribute("height",x);var n=k.getContext("2d");null!=e&&(n.beginPath(),n.rect(0,0,p,x),n.fillStyle=e,n.fill());n.scale(l,l);if(F){var t=C.view,u=t.scale;t.scale=
+1;var q=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=u;var q="data:image/svg+xml;base64,"+q,v=C.gridSize*t.gridSteps*l,z=C.getGraphBounds(),y=t.translate.x*u,B=t.translate.y*u,D=y+(z.x-y)/u,J=B+(z.y-B)/u,G=new Image;G.onload=function(){try{for(var a=-Math.round(v-mxUtils.mod((y-D)*l,v)),b=-Math.round(v-mxUtils.mod((B-J)*l,v));a<p;a+=v)for(var c=b;c<x;c+=v)n.drawImage(G,a/l,c/l);m()}catch(N){null!=f&&f(N)}};G.onerror=function(a){null!=f&&f(a)};G.src=q}else m()}catch(Y){null!=
+f&&f(Y)}});d.onerror=function(a){null!=f&&f(a)};q&&this.editor.graph.addSvgShadow(c);this.editor.graph.mathEnabled&&this.editor.addMathCss(c);var m=mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(c,this.editor.resolvedFontCss),d.src=this.createSvgDataUri(mxUtils.getXml(c))}catch(K){null!=f&&f(K)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.editor.addFontCss(c,a),this.loadFonts(m)}catch(M){null!=f&&f(M)}}))}catch(K){null!=f&&f(K)}}),
+c,x)}catch(J){null!=f&&f(J)}};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,c=this;a.convert=function(d){if(null!=d){var e="http://"==d.substring(0,7)||"https://"==d.substring(0,8);e&&!navigator.onLine?d=c.svgBrokenImage.src:!e||d.substring(0,a.baseUrl.length)==a.baseUrl||c.crossOriginImages&&c.editor.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+
+encodeURIComponent(d)}return d};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var m=a.getElementsByTagName(c),k=0;k<m.length;k++)mxUtils.bind(this,function(c){try{if(null!=c){var m=d.convert(c.getAttribute(g));if(null!=m&&"data:"!=m.substring(0,5)){var k=f[m];null==k?(e++,this.convertImageToDataUri(m,function(d){null!=d&&(f[m]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,k)}else null!=
+m&&c.setAttribute(g,m)}}catch(D){}})(m[k])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,f,g,k){try{var e=!k&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var m=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(e){if((9==document.documentMode||10==document.documentMode)&&
+"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}b(d)}}else null!=c&&c({message:mxResources.get("error")+" "+a.getStatus()},a)}),function(a){null!=c&&c({message:mxResources.get("error")+" "+a.getStatus()})},e,this.timeout,function(){f&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:m})})});m()}catch(G){null!=
+c&&c(G)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){try{var c=!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b(this.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);c&&b(this.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);c&&b(this.svgBrokenImage.src)});else{var e=new Image,f=this;this.crossOriginImages&&
+(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(d);if(c)try{var a=document.createElement("canvas"),g=a.getContext("2d");a.height=e.height;a.width=e.width;g.drawImage(e,0,0);b(a.toDataURL())}catch(B){b(f.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(d);c&&b(f.svgBrokenImage.src)};e.src=a}}catch(y){b(this.svgBrokenImage.src)}};EditorUi.prototype.importXml=function(a,b,c,d,f){b=null!=b?b:0;c=null!=c?c:0;var e=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){g.model.beginUpdate();
+try{var m=mxUtils.parseXml(a);a={};var k=this.editor.extractGraphModel(m.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var p=k.getElementsByTagName("diagram");if(1==p.length)k=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(a[p[0].getAttribute("id")]=this.currentPage.getId());else if(1<p.length){var m=[],l=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[p[0].getAttribute("id")]=this.pages[0].getId(),k=Editor.parseDiagramNode(p[0]),
+d=!1,l=1);for(;l<p.length;l++){var n=p[l].getAttribute("id");p[l].removeAttribute("id");var u=this.updatePageRoot(new DiagramPage(p[l]));a[n]=p[l].getAttribute("id");var q=this.pages.length;null==u.getName()&&u.setName(mxResources.get("pageWithNumber",[q+1]));g.model.execute(new ChangePage(this,u,u,q,!0));m.push(u)}this.updatePageLinks(a,m)}}if(null!=k&&"mxGraphModel"===k.nodeName)for(e=g.importGraphModel(k,b,c,d),l=0;l<e.length;l++)this.updatePageLinksForCell(a,e[l])}finally{g.model.endUpdate()}}}catch(F){if(f)throw F;
+this.handleError(F)}return e};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.getLabel(b);for(var f=c.getElementsByTagName("a"),g=!1,m=0;m<f.length;m++)e=f[m].getAttribute("href"),null!=e&&(f[m].setAttribute("href",
+this.updatePageLink(a,e)),g=!0);g&&d.labelChanged(b,c.innerHTML)}for(m=0;m<d.model.getChildCount(b);m++)this.updatePageLinksForCell(a,d.model.getChildAt(b,m))};EditorUi.prototype.updatePageLink=function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];null!=f.open&&"data:page/id,"==
+f.open.substring(0,13)&&(c=a[f.open.substring(f.open.indexOf(",")+1)],null!=c?f.open="data:page/id,"+c:delete f.open)}b="data:action/json,"+JSON.stringify(d)}}catch(y){}return b};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,c,d){d=null!=d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var e=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var e=
+this.isRemoteVisioFormat(d);try{var f="UNKNOWN-VISIO",g=d.lastIndexOf(".");0<=g&&g<d.length&&(f=d.substring(g+1).toUpperCase());EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+d,label:e?"remote":"local"})}catch(G){}if(e)if(null!=VSD_CONVERT_URL){e=new FormData;e.append("file1",a,d);var m=new XMLHttpRequest;m.open("POST",VSD_CONVERT_URL);m.responseType="blob";this.addRemoteServiceSecurityCheck(m);m.onreadystatechange=mxUtils.bind(this,function(){if(4==m.readyState)if(200<=m.status&&
+299>=m.status)try{var a=m.response;if("text/xml"==a.type){var e=new FileReader;e.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(A){c({message:mxResources.get("errorLoadingFile")})}});e.readAsText(a)}else this.doImportVisio(a,b,c,d)}catch(C){c(C)}else c({})});m.send(e)}else c({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else try{this.doImportVisio(a,b,c,d)}catch(G){c(G)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});
+this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importGraphML=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,c)}catch(v){c(v)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||
+this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()||this.handleError({message:mxResources.get("unknownError")})}catch(m){this.handleError(m)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||
+this.loadingExtensions||this.isOffline(!0)?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,c){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(v){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(v){null!=window.console&&console.error(v),c(v)}}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});
+"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",d):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generatePlantUmlImage=function(a,b,c,d){function e(a,b,c){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|c>>6;c4=c&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+
+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"}var g=new XMLHttpRequest;g.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+e(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+e(a.charCodeAt(i),0,0):r+e(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(pako.deflateRaw(a,{to:"string"})),!0);"txt"!=b&&(g.responseType="blob");g.onload=function(a){if(200<=
+this.status&&300>this.status)if("txt"==b)c(this.response);else{var e=new FileReader;e.readAsDataURL(this.response);e.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,f=b.height;if(0==a&&0==f){var g=e.result,m=g.indexOf(","),k=decodeURIComponent(escape(atob(g.substring(m+1)))),p=mxUtils.parseXml(k).getElementsByTagName("svg");0<p.length&&(a=parseFloat(p[0].getAttribute("width")),f=parseFloat(p[0].getAttribute("height")))}c(e.result,a,f)}catch(H){d(H)}};b.src=e.result};e.onerror=
+function(a){d(a)}}else d(a)};g.onerror=function(a){d(a)};g.send()};EditorUi.prototype.insertAsPreText=function(a,b,c){var d=this.editor.graph,e=null;d.getModel().beginUpdate();try{e=d.insertVertex(null,null,"<pre>"+a+"</pre>",b,c,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(e,!0)}finally{d.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,c,d,f,g,k){g=null!=g?g:!0;k=null!=k?k:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(f||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var e=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var m=Editor.extractGraphModelFromPdf(a);if(null!=m&&
+0<m.length)return this.importXml(m,b,c,g,!0)}if("data:image/png;base64,"==a.substring(0,22)&&(m=this.extractGraphModelFromPng(a),null!=m&&0<m.length))return this.importXml(m,b,c,g,!0);if("data:image/svg+xml;"==a.substring(0,19))try{m=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(m=a.substring(a.indexOf(",")+1),m=window.atob&&!mxClient.IS_SF?atob(m):Base64.decode(m,!0)):m=decodeURIComponent(a.substring(a.indexOf(",")+1));var p=this.importXml(m,b,c,g,!0);if(0<p.length)return p}catch(x){}this.loadImage(a,
+mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,f){e.setSelectionCell(e.insertVertex(null,null,"",e.snap(b),e.snap(c),d,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),k,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),g=Math.round(d.width*f);d=Math.round(d.height*f);e.setSelectionCell(e.insertVertex(null,
+null,"",e.snap(b),e.snap(c),g,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;e.getModel().beginUpdate();try{f=e.insertVertex(e.getDefaultParent(),null,a,e.snap(b),e.snap(c),1,1,"text;"+(d?"html=1;":"")),e.updateCellSize(f),e.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{e.getModel().endUpdate()}e.setSelectionCell(f)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));
+if(this.isCompatibleString(a))return this.importXml(a,b,c,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,c,g))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{e=this.editor.graph;f=null;e.getModel().beginUpdate();try{f=e.insertVertex(e.getDefaultParent(),null,"",e.snap(b),e.snap(c),1,1,"text;"+(d?"html=1;":"")),e.fireEvent(new mxEventObject("textInserted","cells",[f])),"<"==a.charAt(0)&&
+a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"..."),f.value=a,e.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i.test(f.value)&&e.setLinkForCell(f,f.value),f.geometry.width+=e.gridSize,f.geometry.height+=e.gridSize}finally{e.getModel().endUpdate()}return[f]}}return[]};
+EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=
+a&&('{"state":"{\\"Properties\\":'==a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=
+c}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){if(null!=b&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(b)){var c=new Blob([a],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,b)}else this.editor.graph.setSelectionCells(this.importXml(a,
+0,0,!0))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,c){var d=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==
+Object.keys(e.files).length)c();else{var f=0,g,m=!1;e.forEach(function(a,d){var e=d.name.toLowerCase();"diagram/diagram.xml"==e?(m=!0,d.async("string").then(function(a){0==a.indexOf("<mxfile ")?b(a):c()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,g=d))});0<f?g.async("string").then(function(e){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(e,a.name)?d.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=
+a.status&&299>=a.status?b(a.responseText):c())}),a.name):c()}):m||c()}},function(a){c(a)}):c()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,c,d,f,g,k,l,n,q,x){q=null!=q?q:!0;var e=!1,m=null,p=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,k)):b=this.importXml(a,c,d,q);null!=l&&l(b)});"image"==
+b.substring(0,5)?(n=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(m=this.importXml(b,c,d,q),n=!0)),n||(b=this.editor.graph,x=a.indexOf(";"),0<x&&(a=a.substring(0,x)+a.substring(a.indexOf(",",x+1))),q&&b.isGridEnabled()&&(c=b.snap(c),d=b.snap(d)),m=[b.insertVertex(null,null,"",c,d,f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(e=!0,
+this.importGraphML(a,p)):null!=n&&null!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(e=!0,this.importVisio(n,p)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,k)?(e=!0,this.parseFile(null!=n?n:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?p(a.responseText):null!=l&&l(null))}),k)):0==a.indexOf("PK")&&null!=n?(e=!0,this.importZipFile(n,p,mxUtils.bind(this,function(){m=
+this.insertTextAt(this.validateFileData(a),c,d,!0,null,q);l(m)}))):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(m=this.insertTextAt(this.validateFileData(a),c,d,!0,null,q));e||null==l||l(m);return m};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<
+4);b+="==";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="=";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,f,g,k,l,n,q,x,C){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var e=null!=b&&null!=c,m=!0,p=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var t=x||this.resampleThreshold,u=0;u<a.length;u++)if("image/"==a[u].type.substring(0,
+6)&&a[u].size>t){p=!0;break}var v=mxUtils.bind(this,function(){var p=this.editor.graph,n=p.gridSize;f=null!=f?f:mxUtils.bind(this,function(a,b,c,d,f,g,m,k,p){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,m)),null):this.importFile(a,b,c,d,f,g,m,k,p,e,C)}catch(Y){return this.handleError(Y),null}});g=null!=g?g:mxUtils.bind(this,function(a){p.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=
+a.length,u=t,A=[],v=mxUtils.bind(this,function(a,b){A[a]=b;if(0==--u){this.spinner.stop();if(null!=l)l(A);else{var c=[];p.getModel().beginUpdate();try{for(var d=0;d<A.length;d++){var e=A[d]();null!=e&&(c=c.concat(e))}}finally{p.getModel().endUpdate()}}g(c)}}),y=0;y<t;y++)mxUtils.bind(this,function(e){var g=a[e];if(null!=g){var l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==k||k(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var l=a.target.result,t=l.indexOf(","),
+u=decodeURIComponent(escape(atob(l.substring(t+1)))),A=mxUtils.parseXml(u),u=A.getElementsByTagName("svg");if(0<u.length){var u=u[0],y=C?null:u.getAttribute("content");null!=y&&"<"!=y.charAt(0)&&"%"!=y.charAt(0)&&(y=unescape(window.atob?atob(y):Base64.decode(y,!0)));null!=y&&"%"==y.charAt(0)&&(y=decodeURIComponent(y));null==y||"<mxfile "!==y.substring(0,8)&&"<mxGraphModel "!==y.substring(0,14)?v(e,mxUtils.bind(this,function(){try{if(l.substring(0,t+1),null!=A){var a=A.getElementsByTagName("svg");
+if(0<a.length){var m=a[0],k=m.getAttribute("width"),x=m.getAttribute("height"),k=null!=k&&"%"!=k.charAt(k.length-1)?parseFloat(k):NaN,x=null!=x&&"%"!=x.charAt(x.length-1)?parseFloat(x):NaN,q=m.getAttribute("viewBox");if(null==q||0==q.length)m.setAttribute("viewBox","0 0 "+k+" "+x);else if(isNaN(k)||isNaN(x)){var u=q.split(" ");3<u.length&&(k=parseFloat(u[2]),x=parseFloat(u[3]))}l=this.createSvgDataUri(mxUtils.getXml(m));var C=Math.min(1,Math.min(d/Math.max(1,k)),d/Math.max(1,x)),v=f(l,g.type,b+e*
+n,c+e*n,Math.max(1,Math.round(k*C)),Math.max(1,Math.round(x*C)),g.name);if(isNaN(k)||isNaN(x)){var y=new Image;y.onload=mxUtils.bind(this,function(){k=Math.max(1,y.width);x=Math.max(1,y.height);v[0].geometry.width=k;v[0].geometry.height=x;m.setAttribute("viewBox","0 0 "+k+" "+x);l=this.createSvgDataUri(mxUtils.getXml(m));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));p.setCellStyles("image",l,[v[0]])});y.src=this.createSvgDataUri(mxUtils.getXml(m))}return v}}}catch(ha){}return null})):
+v(e,mxUtils.bind(this,function(){return f(y,"text/xml",b+e*n,c+e*n,0,0,g.name)}))}else v(e,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==g.type){var z=C?null:this.extractGraphModelFromPng(a.target.result);if(null!=z&&0<z.length){var B=new Image;B.src=a.target.result;v(e,mxUtils.bind(this,function(){return f(z,"text/xml",b+e*n,c+e*n,B.width,B.height,g.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),
+mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(k){this.resizeImage(k,a.target.result,mxUtils.bind(this,function(k,p,l){v(e,mxUtils.bind(this,function(){if(null!=k&&k.length<q){var t=m&&this.isResampleImage(a.target.result,x)?Math.min(1,Math.min(d/p,d/l)):1;return f(k,g.type,b+e*n,c+e*n,Math.round(p*t),Math.round(l*t),g.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),m,d,x)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else l=a.target.result,f(l,g.type,b+e*n,c+e*n,240,160,g.name,function(a){v(e,function(){return a})},g)});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?f(null,g.type,b+e*n,c+e*n,240,160,g.name,function(a){v(e,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?l.readAsDataURL(g):l.readAsText(g)}})(y)});if(p){p=[];
+for(u=0;u<a.length;u++)p.push(a[u]);a=p;this.confirmImageResize(function(a){m=a;v()},n)}else v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
+function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",
+OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(t){}};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,f,g){f=null!=f?f:this.maxImageSize;var e=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,g))try{var m=Math.max(e/f,k/f);if(1<m){var p=Math.round(e/m),l=Math.round(k/m),n=document.createElement("canvas");
+n.width=p;n.height=l;n.getContext("2d").drawImage(a,0,0,p,l);var t=n.toDataURL();if(t.length<b.length){var q=document.createElement("canvas");q.width=p;q.height=l;var u=q.toDataURL();t!==u&&(b=t,e=p,k=l)}}}catch(I){}c(b,e,k)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var f=b,g=0;8>g;g++)f=1==(f&1)?3988292384^f>>>1:f>>>1,EditorUi.prototype.crcTable[b]=f;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b.charCodeAt(c+e))&255]^a>>>8;return a};
+EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,f){function e(a,b){var c=m;m+=b;return a.substring(c,m)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+
+1);a=window.atob?atob(a):Base64.decode(a,!0);var m=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,m);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,m-8);"pHYs"==b&&"dpi"==c?(c=Math.round(d/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d;d=4294967295;d=this.updateCRC(d,b,0,4);d=this.updateCRC(d,c,0,c.length);f+=k(c.length)+
+b+c+k(d^4294967295);f+=a.substring(m-8,a.length);break}f+=a.substring(m-8,m-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,c){try{var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a}catch(v){if(null!=c)c(v);else throw v;}};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=
+mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph,c=b.cellEditor.startEditing;b.cellEditor.startEditing=function(d,e){var f=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=f){var g=JSON.parse(f),f=new TextareaDialog(a,mxResources.get("plantUml")+":",g.data,function(c){null!=c&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(c,g.format,
+function(e,f,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==g.format)b.labelChanged(d,"<pre>"+e+"</pre>"),b.updateCellSize(d,!0);else{b.setCellStyles("image",a.convertDataUri(e),[d]);var m=b.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=f,m.height=k,b.cellsResized([d],[m],!1))}b.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:c,format:g.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(f.container,420,300,!0,!0);
+f.init()}else c.apply(this,arguments)};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(F){a.handleError(F)}return c};var d=this.clearDefaultStyle;this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var f=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=
+function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");return f.apply(this,arguments)};var g=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||
+!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};g.call(this,a,c,d)};k.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getExportVariables;b.getExportVariables=function(){var b=l.apply(this,arguments);
+b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return b};var n=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:"pagecount"==b?null!=a.pages?a.pages.length:1:n.apply(this,arguments)};var q=b.labelLinkClicked;
+b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))q.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var G=this.actions.get("print");G.setEnabled(!mxClient.IS_IOS||
+!navigator.standalone);G.visible=G.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"find"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(this.altShiftActions[83]=
+"synchronize"),this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();
+a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,
+6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",
+!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(G=this.editor.graph.view,G.setUnit(mxSettings.getUnit()),G.addListener("unitChanged",function(a,b){mxSettings.setUnit(b.getProperty("unit"));
+mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,G.unit),this.refresh());if("1"==urlParams.styledev){G=document.getElementById("geFooter");null!=G&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left=
+"2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),G.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),
+c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var x=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:x.apply(this,arguments)}}G=document.getElementById("geInfo");null!=G&&G.parentNode.removeChild(G);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var C=null;mxEvent.addListener(b.container,"dragleave",
+function(a){b.isEnabled()&&(null!=C&&(C.parentNode.removeChild(C),C=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==C&&(!mxClient.IS_IE||10<document.documentMode)&&(C=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=C&&(C.parentNode.removeChild(C),C=null);if(b.isEnabled()){var c=
+mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);
+if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var m=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=m;var p=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(m=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(m=c[0].getAttribute("href")));var l=!0,n=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(m,
+f,g,!0,p,null,l))});p&&m.length>this.resampleThreshold?this.confirmImageResize(function(a){l=a;n()},mxEvent.isControlDown(a)):n()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",
+mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b))try{for(var c=b.clipboardData||b.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(a.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(b,c,d,e,f,g){a.insertImage(b,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=
+this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(B){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){c.innerHTML="&nbsp;";c.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,c=document.createElement("div");c.setAttribute("autocomplete","off");c.setAttribute("autocorrect","off");c.setAttribute("autocapitalize","off");c.setAttribute("spellcheck",
+"false");c.style.textRendering="optimizeSpeed";c.style.fontFamily="monospace";c.style.wordBreak="break-all";c.style.background="transparent";c.style.color="transparent";c.style.position="absolute";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.display="block";c.style.fontSize="1";c.style.zIndex="-1";c.style.resize="none";c.style.outline="none";c.style.width="1px";c.style.height="1px";mxUtils.setOpacity(c,0);c.contentEditable=!0;c.innerHTML="&nbsp;";var d=!1;this.keyHandler.bindControlKey(88,
+null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var e=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||d||(c.style.left=b.container.scrollLeft+10+"px",c.style.top=b.container.scrollTop+10+"px",b.container.appendChild(c),
+d=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){c.focus();document.execCommand("selectAll",!1,null)},0):(c.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var e=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!d||224!=e&&17!=e&&91!=e||(d=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),c.parentNode.removeChild(c),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(c,
+"copy",mxUtils.bind(this,function(d){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(c),a()}catch(y){this.handleError(y)}}));mxEvent.addListener(c,"cut",mxUtils.bind(this,function(d){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(c,!0),a()}catch(y){this.handleError(y)}}));mxEvent.addListener(c,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&((new Date).getTime(),c.innerHTML="&nbsp;",c.focus(),null!=a.clipboardData&&this.pasteCells(a,c,!0),
+mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,c,!1)}),0))}),!0);var f=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==c?!0:f.apply(this,arguments)}};EditorUi.prototype.getLinkTitle=function(a){var b=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");0<c&&(b=this.getPageById(a.substring(c+1)),b=null!=b?b.getName():mxResources.get("pageNotFound"))}else"data:"==
+a.substring(0,5)&&(b=mxResources.get("action"));return b};EditorUi.prototype.handleCustomLink=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");if(a=this.getPageById(a.substring(b+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=
+function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(a){a.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(e){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
+mxUtils.bind(this,function(a,b){mxSettings.setCustomFonts(this.menus.customFonts);mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",
+mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor("dark"==uiTheme);this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor,"dark"==uiTheme);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);
+mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save());this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;
+if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b,c){if(!mxEvent.isConsumed(a)){var d=b;if(c&&null!=a.clipboardData&&a.clipboardData.getData){var e=a.clipboardData.getData("text/html");
+if(null!=e&&0<e.length){if(d=document.createElement("div"),d.innerHTML=e,e=d.getElementsByTagName("style"),null!=e)for(;0<e.length;)e[0].parentNode.removeChild(e[0])}else e=a.clipboardData.getData("text/plain"),null!=e&&0<e.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,e))}e=d.getElementsByTagName("span");if(null!=e&&0<e.length&&"application/vnd.lucid.chart.objects"===e[0].getAttribute("data-lucid-type"))c=e[0].getAttribute("data-lucid-content"),null!=c&&0<c.length&&(this.convertLucidChart(c,
+mxUtils.bind(this,function(a){var b=this.editor.graph;b.lastPasteXml==a?b.pasteCounter++:(b.lastPasteXml=a,b.pasteCounter=0);var c=b.pasteCounter*b.gridSize;b.setSelectionCells(this.importXml(a,c,c));b.scrollCellToVisible(b.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{var f=mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText),g=!1;try{var k=f.lastIndexOf("%3E");0<=k&&k<f.length-3&&(f=f.substring(0,k+3))}catch(A){}try{var e=d.getElementsByTagName("span"),
+m=null!=e&&0<e.length?mxUtils.trim(decodeURIComponent(e[0].textContent)):decodeURIComponent(f);this.isCompatibleString(m)&&(g=!0,f=m)}catch(A){}try{var l=this.editor.graph;if(null!=f&&0<f.length){l.lastPasteXml==f?l.pasteCounter++:(l.lastPasteXml=f,l.pasteCounter=0);var p=l.pasteCounter*l.gridSize;if(g||this.isCompatibleString(f))l.setSelectionCells(this.importXml(f,p,p));else{var n=l.getInsertPoint();l.isMouseInsertPoint()&&(p=0,l.lastPasteXml==f&&0<l.pasteCounter&&l.pasteCounter--);l.setSelectionCells(this.insertTextAt(f,
+n.x+p,n.y+p,!0))}l.isSelectionEmpty()||(l.scrollCellToVisible(l.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(l.view.getState(l.getSelectionCell())));try{mxEvent.consume(a)}catch(A){}}else c||(l.lastPasteXml=null,l.pasteCounter=0)}catch(A){this.handleError(A)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);
+a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),
+"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,
+"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,
+function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;
+var f=document.documentElement;d=(e.clientWidth||f.clientWidth)-3;e=Math.max(e.clientHeight||0,f.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?
+this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
+0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{var d=c.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)?e=e.substring(0,e.length-4)+".drawio":/(\.pdf)$/i.test(e)&&(e=e.substring(0,e.length-4)+".drawio");var f=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".drawio":e+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&
+this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(C){this.handleError(C,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(/(\.*<graphml )/.test(d))this.importGraphML(d,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&
+(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?f(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(d))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".drawio"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,
+e,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,c.target.result,a.name))}catch(x){this.handleError(x,mxResources.get("errorLoadingFile"))}}else if(0==d.indexOf("PK"))this.importZipFile(a,mxUtils.bind(this,function(a){this.spinner.stop();
+f(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(d,e,b)}));else{if("image/png"==a.type.substring(0,9))d=this.extractGraphModelFromPng(d);else if("application/pdf"==a.type){var g=Editor.extractGraphModelFromPdf(d);null!=g&&(d=g)}this.spinner.stop();this.openLocalFile(d,e,b)}}}catch(x){this.handleError(x)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===
+a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,c){var d=this.getCurrentFile(),e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(a);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,c))});if(null!=a&&0<a.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||
+EditorUi.isElectronApp)?e():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):
+e()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));
+null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=
+a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=a?"":"hidden",this.ruler.vRuler.container.style.visibility=a?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=a?"":"hidden");a||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&
+this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);
+null!=a&&0<a.length?(this.setFileData(a),this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<
+this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,
+page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var k=
+f.data,m=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(ca){}return a});if("json"==urlParams.proto){try{k=JSON.parse(k)}catch(Q){k=null}try{if(null==
+k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("prompt"==k.action){this.spinner.stop();var l=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:k}),"*")},
+null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(l.container,300,80,!0,!1);l.init();return}if("draft"==k.action){var p=m(k.xml);this.spinner.stop();l=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:k}),"*")}),
+k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(l.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{l.init()}catch(Q){g.postMessage(JSON.stringify({event:"draft",error:Q.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var n=
+1==k.enableRecent,t=1==k.enableSearch,q=1==k.enableCustomTemp,l=new NewDialog(this,!1,null!=k.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=k.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,n?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",null,null,a,function(){a(null,"Network Error!")})}):
+null,t?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){g.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,q?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("textContent"==
+k.action){var u=this.getDiagramTextContent();g.postMessage(JSON.stringify({event:"textContent",data:u,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var v=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,
+v):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var y=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var z=this.editor.graph,K=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;b.message=k;b.data=a;b.xml=encodeURIComponent(y);
+g.postMessage(JSON.stringify(b),"*")}),M=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=this.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(y)));z!=this.editor.graph&&z.container.parentNode.removeChild(z.container);K(a)}),R=k.pageId||(null!=this.pages?this.pages[0].getId():null);if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage.getId()!=R){for(var W=z.getGlobalVariable,z=this.createTemporaryGraph(z.getStylesheet()),T,L=0;L<this.pages.length;L++)if(this.pages[L].getId()==
+R){T=this.updatePageRoot(this.pages[L]);break}z.getGlobalVariable=function(a){return"page"==a?T.getName():"pagenumber"==a?1:W.apply(this,arguments)};document.body.appendChild(z.container);z.model.setRoot(T.root)}if(null!=k.layerIds){for(var V=z.model,Z=V.getChildCells(V.getRoot()),l={},L=0;L<k.layerIds.length;L++)l[k.layerIds[L]]=!0;for(L=0;L<Z.length;L++)V.setVisible(Z[L],l[Z[L].id]||!1)}this.exportToCanvas(mxUtils.bind(this,function(a){M(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,
+function(){M(null)}),null,null,k.scale,null,null,null,z)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=R?"&pageId="+R:"")+(null!=k.layerIds?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(y))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?K("data:image/png;base64,"+a.getText()):M(null)}),mxUtils.bind(this,function(){M(null)}))}}else{null!=
+k.xml&&0<k.xml.length&&this.setFileData(k.xml);v=this.createLoadMessage("export");if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();v.xml=mxUtils.getXml(ga);v.data=this.getFileData(null,null,!0,null,null,null,ga);v.format=k.format}else if("html"==k.format)y=this.editor.getGraphXml(),v.data=this.getHtml(y,this.editor.graph),v.xml=mxUtils.getXml(y),v.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var fa=this.editor.graph.background;
+fa==mxConstants.NONE&&(fa=null);v.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);v.format="svg";var aa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(v),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(v.xml,this.editor.graph,null,!0,aa,null,null,k.embedImages);else if(null==
+k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){this.editor.graph.setEnabled(!1);var U=this.editor.graph.getSvg(fa);this.embedFonts(U,mxUtils.bind(this,function(a){k.embedImages||null==k.embedImages?this.convertImages(a,mxUtils.bind(this,function(a){aa(mxUtils.getXml(a))})):aa(mxUtils.getXml(a))}))}return}g.postMessage(JSON.stringify(v),"*")}return}if("load"==k.action)d=1==k.autosave,this.hideDialog(),null!=k.modified&&null==urlParams.modified&&
+(urlParams.modified=k.modified),null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit),null!=k.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,k.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&
+this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p),k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):k.xml;else{"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(g):"remoteInvoke"==k.action?this.handleRemoteInvoke(k):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(Q){this.handleError(Q)}}var ba=
+mxUtils.bind(this,function(f,k){c=!0;try{a(f,k)}catch(ea){this.handleError(ea)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var m=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=m();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=m();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),
+this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",
+b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(a){ba(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&ba(a.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(a){ba(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(k=m(k),ba(k,f))}}));var g=window.opener||window.parent,f="json"==urlParams.proto?
+JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";"1"==urlParams.noSaveBtn?(mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",
+mxResources.get("saveAndExit")),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)):(mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",
+mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.className="geBigButton geBigStandardButton";b.style.marginLeft="6px";b.style.marginRight="20px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));
+a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://about.draw.io/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,
+640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var g in a[e].config)f[g]=a[e].config[g];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var g={},k=null,
+m=null,l=null,n=null,q=null,A=null,D=null,F=null,I="",J="auto",H="auto",E=null,K=null,M=40,R=40,W=100,T=0,L=this.editor.graph;L.getGraphBounds();for(var V=function(){null!=b?b(la):(L.setSelectionCells(la),L.scrollCellToVisible(L.getSelectionCell()))},Z=L.getFreeInsertPoint(),ga=Z.x,fa=Z.y,Z=fa,aa=null,U="auto",F=null,ba=[],Q=null,ca=null,Y=0;Y<c.length&&"#"==c[Y].charAt(0);){a=c[Y];for(Y++;Y<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[Y].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[Y].substring(1)),
+Y++;if("#"!=a.charAt(1)){var ea=a.indexOf(":");if(0<ea){var P=mxUtils.trim(a.substring(1,ea)),N=mxUtils.trim(a.substring(ea+1));"label"==P?aa=L.sanitizeHtml(N):"labelname"==P&&0<N.length&&"-"!=N?n=N:"labels"==P&&0<N.length&&"-"!=N?q=JSON.parse(N):"style"==P?k=N:"parentstyle"==P?A=N:"stylename"==P&&0<N.length&&"-"!=N?l=N:"styles"==P&&0<N.length&&"-"!=N?m=JSON.parse(N):"identity"==P&&0<N.length&&"-"!=N?D=N:"parent"==P&&0<N.length&&"-"!=N?F=N:"namespace"==P&&0<N.length&&"-"!=N?I=N:"width"==P?J=N:"height"==
+P?H=N:"left"==P&&0<N.length?E=N:"top"==P&&0<N.length?K=N:"ignore"==P?ca=N.split(","):"connect"==P?ba.push(JSON.parse(N)):"link"==P?Q=N:"padding"==P?T=parseFloat(N):"edgespacing"==P?M=parseFloat(N):"nodespacing"==P?R=parseFloat(N):"levelspacing"==P?W=parseFloat(N):"layout"==P&&(U=N)}}}if(null==c[Y])throw Error(mxResources.get("invalidOrMissingFile"));var da=this.editor.csvToArray(c[Y]),P=ea=null;if(null!=D||null!=F)for(var S=0;S<da.length;S++)D==da[S]&&(ea=S),F==da[S]&&(P=S);null==aa&&(aa="%"+da[0]+
+"%");if(null!=ba)for(var X=0;X<ba.length;X++)null==g[ba[X].to]&&(g[ba[X].to]={});L.model.beginUpdate();try{for(S=Y+1;S<c.length;S++){var ja=this.editor.csvToArray(c[S]);if(null==ja){var ka=40<c[S].length?c[S].substring(0,40)+"...":c[S];throw Error(S+" ("+ka+") "+mxResources.get("containsValidationErrors"));}if(ja.length==da.length){var O=null,ma=null!=ea?I+ja[ea]:null;null!=ma&&(O=L.model.getCell(ma));var D=null!=O,ha=new mxCell(aa,new mxGeometry(ga,Z,0,0),k||"whiteSpace=wrap;html=1;");ha.vertex=
+!0;ha.id=ma;for(var ia=0;ia<ja.length;ia++)L.setAttributeForCell(ha,da[ia],ja[ia]);if(null!=n&&null!=q){var ua=q[ha.getAttribute(n)];null!=ua&&L.labelChanged(ha,ua)}if(null!=l&&null!=m){var va=m[ha.getAttribute(l)];null!=va&&(ha.style=va)}L.setAttributeForCell(ha,"placeholders","1");ha.style=L.replacePlaceholders(ha,ha.style);D&&(L.model.setGeometry(O,ha.geometry),L.model.setStyle(O,ha.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=ha;if(!D)for(X=0;X<ba.length;X++)g[ba[X].to][O.getAttribute(ba[X].to)]=
+O;null!=Q&&"link"!=Q&&(L.setLinkForCell(O,O.getAttribute(Q)),L.setAttributeForCell(O,Q,null));L.fireEvent(new mxEventObject("cellsInserted","cells",[O]));var wa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=E&&null!=O.getAttribute(E)&&(O.geometry.x=ga+parseFloat(O.getAttribute(E))),null!=K&&null!=O.getAttribute(K)&&(O.geometry.y=fa+parseFloat(O.getAttribute(K))),"@"==J.charAt(0)&&null!=O.getAttribute(J.substring(1))?O.geometry.width=parseFloat(O.getAttribute(J.substring(1))):O.geometry.width=
+"auto"==J?wa.width+T:parseFloat(J),"@"==H.charAt(0)&&null!=O.getAttribute(H.substring(1))?O.geometry.height=parseFloat(O.getAttribute(H.substring(1))):O.geometry.height="auto"==H?wa.height+T:parseFloat(H),Z+=O.geometry.height+R);D?(null==f[ma]&&(f[ma]=[]),f[ma].push(O)):(F=null!=P?L.model.getCell(I+ja[P]):null,d.push(O),null!=F?(F.style=L.replacePlaceholders(F,A),L.addCell(O,F)):e.push(L.addCell(O)))}}for(var na=e.slice(),la=e.slice(),X=0;X<ba.length;X++)for(var xa=ba[X],S=0;S<e.length;S++){var O=
+e[S],ya=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d){L.setAttributeForCell(b,c.from,null);for(var d=d.split(","),e=0;e<d.length;e++){var f=g[c.to][d[e]];if(null!=f){var k=c.label;null!=c.fromlabel&&(k=(b.getAttribute(c.fromlabel)||"")+(k||""));null!=c.tolabel&&(k=(k||"")+(f.getAttribute(c.tolabel)||""));la.push(L.insertEdge(null,null,k||"",c.invert?f:a,c.invert?a:f,c.style||L.createCurrentEdgeStyle()));mxUtils.remove(c.invert?a:f,na)}}}});ya(O,O,xa);if(null!=f[O.id])for(ia=
+0;ia<f[O.id].length;ia++)ya(O,f[O.id][ia],xa)}if(null!=ca)for(S=0;S<d.length;S++)for(O=d[S],ia=0;ia<ca.length;ia++)L.setAttributeForCell(O,mxUtils.trim(ca[ia]),null);if(0<e.length){var oa=new mxParallelEdgeLayout(L);oa.spacing=M;var ta=function(){0<oa.spacing&&oa.execute(L.getDefaultParent());for(var a=0;a<e.length;a++){var b=L.getCellGeometry(e[a]);b.x=Math.round(L.snap(b.x));b.y=Math.round(L.snap(b.y));"auto"==J&&(b.width=Math.round(L.snap(b.width)));"auto"==H&&(b.height=Math.round(L.snap(b.height)))}};
+if("["==U.charAt(0)){var za=V;L.view.validate();this.executeLayoutList(JSON.parse(U),function(){ta();za()});V=null}else if("circle"==U){var ra=new mxCircleLayout(L);ra.resetEdges=!1;var Aa=ra.isVertexIgnored;ra.isVertexIgnored=function(a){return Aa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){ra.execute(L.getDefaultParent());ta()},!0,V);V=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&la.length==2*e.length-1&&1==na.length){L.view.validate();var sa=
+new mxCompactTreeLayout(L,"horizontaltree"==U);sa.levelDistance=R;sa.edgeRouting=!1;sa.resetEdges=!1;this.executeLayout(function(){sa.execute(L.getDefaultParent(),0<na.length?na[0]:null)},!0,V);V=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==na.length){L.view.validate();var pa=new mxHierarchicalLayout(L,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);pa.intraCellSpacing=R;pa.parallelEdgeSpacing=M;pa.interRankCellSpacing=W;pa.disableEdgeStyle=!1;this.executeLayout(function(){pa.execute(L.getDefaultParent(),
+la);L.moveCells(la,ga,fa)},!0,V);V=null}else if("organic"==U||"auto"==U&&la.length>e.length){L.view.validate();var qa=new mxFastOrganicLayout(L);qa.forceConstant=3*R;qa.resetEdges=!1;var Ba=qa.isVertexIgnored;qa.isVertexIgnored=function(a){return Ba.apply(this,arguments)||0>mxUtils.indexOf(e,a)};oa=new mxParallelEdgeLayout(L);oa.spacing=M;this.executeLayout(function(){qa.execute(L.getDefaultParent());ta()},!0,V);V=null}}this.hideDialog()}finally{L.model.endUpdate()}null!=V&&V()}}catch(Ca){this.handleError(Ca)}};
+EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,560,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=l.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&
-null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var f=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*
-b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return f.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/
-a,8/a)};var e=b.init;b.init=function(){e.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),f=b.source,e=b.outline;e.pageScale=f.pageScale;e.pageFormat=
-f.pageFormat;e.background=f.background;e.pageVisible=f.pageVisible;e.background=f.background;var k=mxUtils.getCurrentStyle(f.container);e.container.style.backgroundColor=k.backgroundColor;null!=f.view.backgroundPageShape&&null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=f.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,!0);b.outline.view.validate()});return b};EditorUi.prototype.getServiceCount=function(a,b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||
+null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*
+b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/
+a,8/a)};var f=b.init;b.init=function(){f.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=
+e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,!0);b.outline.view.validate()});return b};EditorUi.prototype.getServiceCount=function(a,b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||
c++;b||null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;b||null==this.gitHub||c++;b||null==this.gitLab||c++;b&&a&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),b=null!=a||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);
var c=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!c);this.actions.get("print").setEnabled(!c);this.menus.get("exportAs").setEnabled(!c);this.menus.get("embed").setEnabled(!c);c="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(c);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(c),this.menus.get("newLibrary").setEnabled(c));a="1"==urlParams.embed&&this.editor.graph.isEnabled()||
null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.actions.get("undo").setEnabled(this.canUndo()&&a);this.actions.get("redo").setEnabled(this.canRedo()&&a);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&
this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));if(this.isAppCache()){var d=window.applicationCache;if(null!=d&&null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin=
-"4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=null,b=mxUtils.bind(this,function(){var a=d.status,b;a==d.CHECKING&&(a=d.DOWNLOADING);switch(a){case d.UNCACHED:b="";break;case d.IDLE:b=
+"4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var f=null,b=mxUtils.bind(this,function(){var a=d.status,b;a==d.CHECKING&&(a=d.DOWNLOADING);switch(a){case d.UNCACHED:b="";break;case d.IDLE:b=
"min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+'/checkmark.gif"/>';break;case d.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case d.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case d.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+
-IMAGE_PATH+'/clear.gif"/>'}a!=e&&(this.offlineStatus.innerHTML=b,e=a)});mxEvent.addListener(d,"checking",b);mxEvent.addListener(d,"noupdate",b);mxEvent.addListener(d,"downloading",b);mxEvent.addListener(d,"progress",b);mxEvent.addListener(d,"cached",b);mxEvent.addListener(d,"updateready",b);mxEvent.addListener(d,"obsolete",b);mxEvent.addListener(d,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};
+IMAGE_PATH+'/clear.gif"/>'}a!=f&&(this.offlineStatus.innerHTML=b,f=a)});mxEvent.addListener(d,"checking",b);mxEvent.addListener(d,"noupdate",b);mxEvent.addListener(d,"downloading",b);mxEvent.addListener(d,"progress",b);mxEvent.addListener(d,"cached",b);mxEvent.addListener(d,"updateready",b);mxEvent.addListener(d,"obsolete",b);mxEvent.addListener(d,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};
EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),c=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=
c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));
this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("find").setEnabled("hidden"!=this.diagramContainer.style.visibility);
this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};
-var q=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,c,d,e,k,g){var f=a.editor.graph;if("xml"==c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,
-"svg",mxUtils.getXml(f.getSvg(d,e,k)),"image/svg+xml");else{var m=a.getFileData(!0,null,null,null,null,!0),l=f.getGraphBounds(),n=Math.floor(l.width*e/f.view.scale),p=Math.floor(l.height*e/f.view.scale);if(m.length<=MAX_REQUEST_SIZE&&n*p<MAX_AREA)if(a.hideDialog(),"png"!=c&&"jpg"!=c&&"jpeg"!=c||!a.isExportToCanvas()){var t={globalVars:f.getExportVariables()};a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):
-"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<g?"&dpi="+g:"")+"&bg="+(null!=d?d:"none")+"&w="+n+"&h="+p+"&border="+k+"&xml="+encodeURIComponent(m))})}else"png"==c?a.exportImage(e,null==d||"none"==d,!0,!1,!1,k,!0,!1,null,null,g):a.exportImage(e,!1,!0,!1,!1,k,!0,!1,"jpeg");else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=this.pages)for(var c=0;c<this.pages.length;c++){var d=
+var q=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,c,d,f,g,k){var e=a.editor.graph;if("xml"==c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,
+"svg",mxUtils.getXml(e.getSvg(d,f,g)),"image/svg+xml");else{var m=a.getFileData(!0,null,null,null,null,!0),l=e.getGraphBounds(),n=Math.floor(l.width*f/e.view.scale),p=Math.floor(l.height*f/e.view.scale);if(m.length<=MAX_REQUEST_SIZE&&n*p<MAX_AREA)if(a.hideDialog(),"png"!=c&&"jpg"!=c&&"jpeg"!=c||!a.isExportToCanvas()){var t={globalVars:e.getExportVariables()};a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):
+"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<k?"&dpi="+k:"")+"&bg="+(null!=d?d:"none")+"&w="+n+"&h="+p+"&border="+g+"&xml="+encodeURIComponent(m))})}else"png"==c?a.exportImage(f,null==d||"none"==d,!0,!1,!1,g,!0,!1,null,null,k):a.exportImage(f,!1,!0,!1,!1,g,!0,!1,"jpeg");else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=this.pages)for(var c=0;c<this.pages.length;c++){var d=
a;this.currentPage!=this.pages[c]&&(d=this.createTemporaryGraph(a.getStylesheet()),d.model.setRoot(this.pages[c].root));b+=this.pages[c].getName()+" "+d.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";
-c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="/images/spin.gif"></div>';var f={};try{var k=mxSettings.getCustomLibraries();for(a=0;a<k.length;a++){var g=k[a];if("R"==g.substring(0,1)){var l=JSON.parse(decodeURIComponent(g.substring(1)));f[l[0]]={id:l[0],title:l[1],downloadUrl:l[2]}}}}catch(H){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML=
-"";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];f[d.id]&&(b[d.id]=d);var k=this.addCheckbox(e,d.title,f[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,k)}},mxUtils.bind(this,function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,
+c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="/images/spin.gif"></div>';var f={};try{var g=mxSettings.getCustomLibraries();for(a=0;a<g.length;a++){var k=g[a];if("R"==k.substring(0,1)){var l=JSON.parse(decodeURIComponent(k.substring(1)));f[l[0]]={id:l[0],title:l[1],downloadUrl:l[2]}}}}catch(G){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML=
+"";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];f[d.id]&&(b[d.id]=d);var g=this.addCheckbox(e,d.title,f[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,g)}},mxUtils.bind(this,function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,
mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==f[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(D){this.handleError(D,
mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in f)b[c]||this.closeLibrary(new RemoteLibrary(this,null,f[c]));0==a&&this.spinner.stop()}),null,null,"https://desk.draw.io/support/solutions/articles/16000092763");this.showDialog(c.container,340,375,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1}};EditorUi.prototype.remoteInvokeCallbacks=
[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(a){this.remoteWin=a;for(var b=0;b<this.remoteInvokeQueue.length;b++)a.postMessage(this.remoteInvokeQueue[b],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(a){var b=a.msgMarkers,c=this.remoteInvokeCallbacks[b.callbackId];if(null==c)throw Error("No callback for "+(null!=b?b.callbackId:"null"));a.error?c.error&&c.error(a.error.errResp):c.callback&&c.callback.apply(this,
-a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,c,d,e){var f=!0,k=window.setTimeout(mxUtils.bind(this,function(){f=!1;e({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(k);f&&d.apply(this,arguments)});c=c||{};c.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:e});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,
+a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,c,d,f){var e=!0,g=window.setTimeout(mxUtils.bind(this,function(){e=!1;f({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(g);e&&d.apply(this,arguments)});c=c||{};c.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,error:f});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,
msgMarkers:c});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a){var b=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msgMarkers:a.msgMarkers};null!=c?d.error={errResp:c}:null!=b&&(d.resp=b);this.remoteWin.postMessage(JSON.stringify(d),"*")});try{var c=a.funtionName,d=this.remoteInvokableFns[c];if(null!=d&&"function"===typeof this[c]){var e=a.functionArgs;Array.isArray(e)||(e=[]);if(d.isAsync)e.push(function(){b(Array.prototype.slice.apply(arguments))}),
-e.push(function(a){b(null,a||"Unkown Error")}),this[c].apply(this,e);else{var f=this[c].apply(this,e);b([f])}}else b(null,"Invalid Call: "+c+" is not found.")}catch(z){b(null,"Invalid Call: An error occured, "+z.message)}};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=this.getCurrentFile();return null!=a?a.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=
+e.push(function(a){b(null,a||"Unkown Error")}),this[c].apply(this,e);else{var f=this[c].apply(this,e);b([f])}}else b(null,"Invalid Call: "+c+" is not found.")}catch(y){b(null,"Invalid Call: An error occured, "+y.message)}};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=this.getCurrentFile();return null!=a?a.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=
function(){var a=this.getCurrentFile();return null!=a?a.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(a,b){var c=this.getCurrentFile();null!=c?c.getComments(a,b):a([])};EditorUi.prototype.addComment=function(a,b,c){var d=this.getCurrentFile();null!=d?d.addComment(a,b,c):b(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var a=this.getCurrentFile();return null!=a?a.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var a=this.getCurrentFile();return null!=
a?a.canComment():!0};EditorUi.prototype.newComment=function(a,b){var c=this.getCurrentFile();return null!=c?c.newComment(a,b):new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};EditorUi.prototype.isRevisionHistorySupported=function(){var a=this.getCurrentFile();return null!=a&&a.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(a,b){var c=this.getCurrentFile();null!=c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=
function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")}})();
-var CommentsWindow=function(a,c,d,b,e,g){function k(){for(var a=C.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==C&&b++;H.style.display=0==b?"block":"none"}function l(a,b,c,d){function e(){b.removeChild(l);b.removeChild(m);g.style.display="block";f.style.display="block"}t={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+var CommentsWindow=function(a,c,d,b,f,g){function k(){for(var a=B.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==B&&b++;G.style.display=0==b?"block":"none"}function l(a,b,c,d){function e(){b.removeChild(l);b.removeChild(m);g.style.display="block";f.style.display="block"}t={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=f.offsetHeight+"px";l.value=a.content;b.insertBefore(l,f);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),k()):e();t=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=l.value;mxUtils.write(f,a.content);e();c(a);t=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(p.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);b.insertBefore(m,f);g.style.display="none";f.style.display="none";l.focus()}function n(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
-[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function q(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function f(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function m(a){a.style.border="";a.removeChild(a.busyImg)}function p(b,c,d,e,g){function y(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
-"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});I.appendChild(e);d&&(e.style.display="none")}function B(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=D;a(b);return{pdiv:d,replies:c}}function x(c,d,k,g,n){function y(){q(v);b.addReply(A,function(a){A.id=a;b.replies.push(A);m(v);k&&k()},function(b){t();f(v);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},g,n)}function t(){l(A,v,function(a){y()},!0)}var u=B().pdiv,A=a.newComment(c,a.getCurrentUser());A.pCommentId=b.id;null==b.replies&&(b.replies=[]);var v=p(A,b.replies,u,e+1);d?t():y()}if(g||!b.isResolved){H.style.display="none";var D=document.createElement("div");D.className="geCommentContainer";D.setAttribute("data-commentId",b.id);D.style.marginLeft=20*e+5+"px";b.isResolved&&"dark"!=uiTheme&&(D.style.backgroundColor="ghostWhite");
-var z=document.createElement("div");z.className="geCommentHeader";var J=document.createElement("img");J.className="geCommentUserImg";J.src=b.user.pictureUrl||Editor.userImage;z.appendChild(J);J=document.createElement("div");J.className="geCommentHeaderTxt";z.appendChild(J);var F=document.createElement("div");F.className="geCommentUsername";mxUtils.write(F,b.user.displayName||"");J.appendChild(F);F=document.createElement("div");F.className="geCommentDate";F.setAttribute("data-commentId",b.id);n(b,
-F);J.appendChild(F);D.appendChild(z);z=document.createElement("div");z.className="geCommentTxt";mxUtils.write(z,b.content||"");D.appendChild(z);z=document.createElement("div");z.className="geCommentActions";var I=document.createElement("ul");I.className="geCommentActionsList";z.appendChild(I);u||0!=e&&!v||y(mxResources.get("reply"),function(){x("",!0)},b.isResolved);J=a.getCurrentUser();null==J||J.id!=b.user.id||u||(y(mxResources.get("edit"),function(){function c(){l(b,D,function(){q(D);b.editComment(b.content,
-function(){m(D)},function(b){f(D);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),y(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){q(D);b.deleteComment(function(){for(var a=B(b).replies,d=0;d<a.length;d++)C.removeChild(a[d]);for(d=0;d<c.length;d++)if(c[d]==b){c.splice(d,1);break}H.style.display=0==C.getElementsByTagName("div").length?"block":"none"},function(b){f(D);a.handleError(b,null,null,
-null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||0!=e||y(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=B(b).replies,f="dark"==uiTheme?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var l=e[g].querySelectorAll(".geCommentAction"),
-m=0;m<l.length;m++)l[m]!=c.parentNode&&(l[m].style.display=d);A||(e[g].style.display="none")}k()}b.isResolved?x(mxResources.get("reOpened")+": ",!0,c,!1,!0):x(mxResources.get("markedAsResolved"),!1,c,!0)});D.appendChild(z);null!=d?C.insertBefore(D,d.nextSibling):C.appendChild(D);for(d=0;null!=b.replies&&d<b.replies.length;d++)z=b.replies[d],z.isResolved=b.isResolved,p(z,b.replies,null,e+1,g);null!=t&&(t.comment.id==b.id?(g=b.content,b.content=t.comment.content,l(b,D,t.saveCallback,t.deleteOnCancel),
-b.content=g):null==t.comment.id&&t.comment.pCommentId==b.id&&(C.appendChild(t.div),l(t.comment,t.div,t.saveCallback,t.deleteOnCancel)));return D}}var u=!a.canComment(),v=a.canReplyToReplies(),t=null,z=document.createElement("div");z.className="geCommentsWin";z.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var x=EditorUi.compactUi?"26px":"30px",C=document.createElement("div");C.className="geCommentsList";C.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":
-Dialog.backdropColor;C.style.bottom=parseInt(x)+7+"px";z.appendChild(C);var H=document.createElement("span");H.style.cssText="display:none;padding-top:10px;text-align:center;";mxUtils.write(H,mxResources.get("noCommentsFound"));var y=document.createElement("div");y.className="geToolbarContainer geCommentsToolbar";y.style.height=x;y.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";y.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;mxClient.IS_QUIRKS&&(y.style.filter=
-"none");x=document.createElement("a");x.className="geButton";mxClient.IS_QUIRKS&&(x.style.filter="none");if(!u){var B=x.cloneNode();B.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';B.setAttribute("title",mxResources.get("create")+"...");mxEvent.addListener(B,"click",function(b){function c(){l(d,e,function(b){q(e);a.addComment(b,function(a){b.id=a;D.push(b);m(e)},function(b){f(e);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},
-!0)}var d=a.newComment("",a.getCurrentUser()),e=p(d,D,null,0);c();b.preventDefault();mxEvent.consume(b)});y.appendChild(B)}B=x.cloneNode();B.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';B.setAttribute("title",mxResources.get("showResolved"));var A=!1;"dark"==uiTheme&&(B.style.filter="invert(100%)");mxEvent.addListener(B,"click",function(a){this.className=(A=!A)?"geButton geCheckedBtn":"geButton";F();a.preventDefault();mxEvent.consume(a)});y.appendChild(B);a.commentsRefreshNeeded()&&
-(B=x.cloneNode(),B.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',B.setAttribute("title",mxResources.get("refresh")),"dark"==uiTheme&&(B.style.filter="invert(100%)"),mxEvent.addListener(B,"click",function(a){F();a.preventDefault();mxEvent.consume(a)}),y.appendChild(B));a.commentsSaveNeeded()&&(x=x.cloneNode(),x.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',x.setAttribute("title",mxResources.get("save")),"dark"==uiTheme&&
-(x.style.filter="invert(100%)"),mxEvent.addListener(x,"click",function(a){g();a.preventDefault();mxEvent.consume(a)}),y.appendChild(x));z.appendChild(y);var D=[],F=mxUtils.bind(this,function(){this.hasError=!1;if(null!=t)try{t.div=t.div.cloneNode(!0);var b=t.div.querySelector(".geCommentEditTxtArea"),c=t.div.querySelector(".geCommentEditBtns");t.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(E){a.handleError(E)}C.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+
-IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});C.innerHTML="";C.appendChild(H);H.style.display="block";D=a;for(a=0;a<D.length;a++)b(D[a].replies),
-p(D[a],D,null,0,A);null!=t&&null==t.comment.id&&null==t.comment.pCommentId&&(C.appendChild(t.div),l(t.comment,t.div,t.saveCallback,t.deleteOnCancel))},mxUtils.bind(this,function(a){C.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?": "+a.message:""));this.hasError=!0})):C.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});F();this.refreshComments=F;y=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(n(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}
-if(this.window.isVisible()){for(var b=C.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var e=b[d];c[e.getAttribute("data-commentId")]=e}for(d=0;d<D.length;d++)a(D[d])}});setInterval(y,6E4);this.refreshCommentsTime=y;this.window=new mxWindow(mxResources.get("comments"),z,c,d,b,e,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,
+[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function q(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function e(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function m(a){a.style.border="";a.removeChild(a.busyImg)}function p(b,c,d,f,g){function x(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});J.appendChild(e);d&&(e.style.display="none")}function C(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=D;a(b);return{pdiv:d,replies:c}}function z(c,d,g,k,n){function x(){q(v);b.addReply(A,function(a){A.id=a;b.replies.push(A);m(v);g&&g()},function(b){t();e(v);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},k,n)}function t(){l(A,v,function(a){x()},!0)}var u=C().pdiv,A=a.newComment(c,a.getCurrentUser());A.pCommentId=b.id;null==b.replies&&(b.replies=[]);var v=p(A,b.replies,u,f+1);d?t():x()}if(g||!b.isResolved){G.style.display="none";var D=document.createElement("div");D.className="geCommentContainer";D.setAttribute("data-commentId",b.id);D.style.marginLeft=20*f+5+"px";b.isResolved&&"dark"!=uiTheme&&(D.style.backgroundColor="ghostWhite");
+var y=document.createElement("div");y.className="geCommentHeader";var K=document.createElement("img");K.className="geCommentUserImg";K.src=b.user.pictureUrl||Editor.userImage;y.appendChild(K);K=document.createElement("div");K.className="geCommentHeaderTxt";y.appendChild(K);var F=document.createElement("div");F.className="geCommentUsername";mxUtils.write(F,b.user.displayName||"");K.appendChild(F);F=document.createElement("div");F.className="geCommentDate";F.setAttribute("data-commentId",b.id);n(b,
+F);K.appendChild(F);D.appendChild(y);y=document.createElement("div");y.className="geCommentTxt";mxUtils.write(y,b.content||"");D.appendChild(y);y=document.createElement("div");y.className="geCommentActions";var J=document.createElement("ul");J.className="geCommentActionsList";y.appendChild(J);u||0!=f&&!v||x(mxResources.get("reply"),function(){z("",!0)},b.isResolved);K=a.getCurrentUser();null==K||K.id!=b.user.id||u||(x(mxResources.get("edit"),function(){function c(){l(b,D,function(){q(D);b.editComment(b.content,
+function(){m(D)},function(b){e(D);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),x(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){q(D);b.deleteComment(function(){for(var a=C(b).replies,d=0;d<a.length;d++)B.removeChild(a[d]);for(d=0;d<c.length;d++)if(c[d]==b){c.splice(d,1);break}G.style.display=0==B.getElementsByTagName("div").length?"block":"none"},function(b){e(D);a.handleError(b,null,null,
+null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||0!=f||x(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=C(b).replies,f="dark"==uiTheme?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var l=e[g].querySelectorAll(".geCommentAction"),
+m=0;m<l.length;m++)l[m]!=c.parentNode&&(l[m].style.display=d);A||(e[g].style.display="none")}k()}b.isResolved?z(mxResources.get("reOpened")+": ",!0,c,!1,!0):z(mxResources.get("markedAsResolved"),!1,c,!0)});D.appendChild(y);null!=d?B.insertBefore(D,d.nextSibling):B.appendChild(D);for(d=0;null!=b.replies&&d<b.replies.length;d++)y=b.replies[d],y.isResolved=b.isResolved,p(y,b.replies,null,f+1,g);null!=t&&(t.comment.id==b.id?(g=b.content,b.content=t.comment.content,l(b,D,t.saveCallback,t.deleteOnCancel),
+b.content=g):null==t.comment.id&&t.comment.pCommentId==b.id&&(B.appendChild(t.div),l(t.comment,t.div,t.saveCallback,t.deleteOnCancel)));return D}}var u=!a.canComment(),v=a.canReplyToReplies(),t=null,y=document.createElement("div");y.className="geCommentsWin";y.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var z=EditorUi.compactUi?"26px":"30px",B=document.createElement("div");B.className="geCommentsList";B.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":
+Dialog.backdropColor;B.style.bottom=parseInt(z)+7+"px";y.appendChild(B);var G=document.createElement("span");G.style.cssText="display:none;padding-top:10px;text-align:center;";mxUtils.write(G,mxResources.get("noCommentsFound"));var x=document.createElement("div");x.className="geToolbarContainer geCommentsToolbar";x.style.height=z;x.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";x.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;mxClient.IS_QUIRKS&&(x.style.filter=
+"none");z=document.createElement("a");z.className="geButton";mxClient.IS_QUIRKS&&(z.style.filter="none");if(!u){var C=z.cloneNode();C.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';C.setAttribute("title",mxResources.get("create")+"...");mxEvent.addListener(C,"click",function(b){function c(){l(d,f,function(b){q(f);a.addComment(b,function(a){b.id=a;D.push(b);m(f)},function(b){e(f);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},
+!0)}var d=a.newComment("",a.getCurrentUser()),f=p(d,D,null,0);c();b.preventDefault();mxEvent.consume(b)});x.appendChild(C)}C=z.cloneNode();C.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';C.setAttribute("title",mxResources.get("showResolved"));var A=!1;"dark"==uiTheme&&(C.style.filter="invert(100%)");mxEvent.addListener(C,"click",function(a){this.className=(A=!A)?"geButton geCheckedBtn":"geButton";F();a.preventDefault();mxEvent.consume(a)});x.appendChild(C);a.commentsRefreshNeeded()&&
+(C=z.cloneNode(),C.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',C.setAttribute("title",mxResources.get("refresh")),"dark"==uiTheme&&(C.style.filter="invert(100%)"),mxEvent.addListener(C,"click",function(a){F();a.preventDefault();mxEvent.consume(a)}),x.appendChild(C));a.commentsSaveNeeded()&&(z=z.cloneNode(),z.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',z.setAttribute("title",mxResources.get("save")),"dark"==uiTheme&&
+(z.style.filter="invert(100%)"),mxEvent.addListener(z,"click",function(a){g();a.preventDefault();mxEvent.consume(a)}),x.appendChild(z));y.appendChild(x);var D=[],F=mxUtils.bind(this,function(){this.hasError=!1;if(null!=t)try{t.div=t.div.cloneNode(!0);var b=t.div.querySelector(".geCommentEditTxtArea"),c=t.div.querySelector(".geCommentEditBtns");t.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(E){a.handleError(E)}B.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+
+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});B.innerHTML="";B.appendChild(G);G.style.display="block";D=a;for(a=0;a<D.length;a++)b(D[a].replies),
+p(D[a],D,null,0,A);null!=t&&null==t.comment.id&&null==t.comment.pCommentId&&(B.appendChild(t.div),l(t.comment,t.div,t.saveCallback,t.deleteOnCancel))},mxUtils.bind(this,function(a){B.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?": "+a.message:""));this.hasError=!0})):B.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});F();this.refreshComments=F;x=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(n(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}
+if(this.window.isVisible()){for(var b=B.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var e=b[d];c[e.getAttribute("data-commentId")]=e}for(d=0;d<D.length;d++)a(D[d])}});setInterval(x,6E4);this.refreshCommentsTime=x;this.window=new mxWindow(mxResources.get("comments"),y,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,
mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var I=mxUtils.bind(this,function(){var a=this.window.getX(),
-b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",I);this.destroy=function(){mxEvent.removeListener(window,"resize",I);this.window.destroy()}},ConfirmDialog=function(a,c,d,b,e,g,k,l,n,q,f){var m=document.createElement("div");m.style.textAlign="center";f=null!=f?f:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=f+"px";p.style.lineHeight="1.2em";mxClient.IS_QUIRKS&&(p.style.height="60px");mxUtils.write(p,c);
+b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",I);this.destroy=function(){mxEvent.removeListener(window,"resize",I);this.window.destroy()}},ConfirmDialog=function(a,c,d,b,f,g,k,l,n,q,e){var m=document.createElement("div");m.style.textAlign="center";e=null!=e?e:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=e+"px";p.style.lineHeight="1.2em";mxClient.IS_QUIRKS&&(p.style.height="60px");mxUtils.write(p,c);
m.appendChild(p);null!=q&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",q),p.appendChild(c),m.appendChild(p));q=document.createElement("div");q.style.textAlign="center";q.style.whiteSpace="nowrap";var u=document.createElement("input");u.setAttribute("type","checkbox");g=mxUtils.button(g||mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b(u.checked)});g.className="geBtn";null!=l&&(g.innerHTML=l+"<br>"+g.innerHTML,g.style.paddingBottom=
-"8px",g.style.paddingTop="8px",g.style.height="auto",g.style.width="40%");a.editor.cancelFirst&&q.appendChild(g);var v=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=d&&d(u.checked)});q.appendChild(v);null!=k?(v.innerHTML=k+"<br>"+v.innerHTML+"<br>",v.style.paddingBottom="8px",v.style.paddingTop="8px",v.style.height="auto",v.className="geBtn",v.style.width="40%"):v.className="geBtn gePrimaryBtn";a.editor.cancelFirst||q.appendChild(g);m.appendChild(q);n?(q.style.marginTop=
-"10px",p=document.createElement("p"),p.style.marginTop="20px",p.appendChild(u),e=document.createElement("span"),mxUtils.write(e," "+mxResources.get("rememberThisSetting")),p.appendChild(e),m.appendChild(p),mxEvent.addListener(e,"click",function(a){u.checked=!u.checked;mxEvent.consume(a)})):q.style.marginTop="12px";this.init=function(){v.focus()};this.container=m};EditorUi.DIFF_INSERT="i";EditorUi.DIFF_REMOVE="r";EditorUi.DIFF_UPDATE="u";EditorUi.prototype.codec=new mxCodec;EditorUi.prototype.viewStateProperties={background:!0,backgroundImage:!0,shadowVisible:!0,foldingEnabled:!0,pageScale:!0,mathEnabled:!0,pageFormat:!0,extFonts:!0};EditorUi.prototype.cellProperties={id:!0,value:!0,xmlValue:!0,vertex:!0,edge:!0,visible:!0,collapsed:!0,connectable:!0,parent:!0,children:!0,previous:!0,source:!0,target:!0,edges:!0,geometry:!0,style:!0,mxObjectId:!0,mxTransient:!0};
-EditorUi.prototype.patchPages=function(a,c,d,b,e){var g={},k=[],l={},n={},q={},f={};if(null!=b&&null!=b[EditorUi.DIFF_UPDATE])for(var m in b[EditorUi.DIFF_UPDATE])g[m]=b[EditorUi.DIFF_UPDATE][m];if(null!=c[EditorUi.DIFF_REMOVE])for(b=0;b<c[EditorUi.DIFF_REMOVE].length;b++)n[c[EditorUi.DIFF_REMOVE][b]]=!0;if(null!=c[EditorUi.DIFF_INSERT])for(b=0;b<c[EditorUi.DIFF_INSERT].length;b++)l[c[EditorUi.DIFF_INSERT][b].previous]=c[EditorUi.DIFF_INSERT][b];if(null!=c[EditorUi.DIFF_UPDATE])for(m in c[EditorUi.DIFF_UPDATE])b=
-c[EditorUi.DIFF_UPDATE][m],null!=b.previous&&(f[b.previous]=m);if(null!=a){var p="";for(b=0;b<a.length;b++){var u=a[b].getId();q[u]=a[b];null!=f[p]||n[u]||null!=c[EditorUi.DIFF_UPDATE]&&null!=c[EditorUi.DIFF_UPDATE][u]&&null!=c[EditorUi.DIFF_UPDATE][u].previous||(f[p]=u);p=u}}var v={},t=mxUtils.bind(this,function(a){var b=null!=a?a.getId():"";if(null!=a&&!v[b]){v[b]=!0;k.push(a);var m=null!=c[EditorUi.DIFF_UPDATE]?c[EditorUi.DIFF_UPDATE][b]:null;null!=m&&(this.updatePageRoot(a),null!=m.name&&a.setName(m.name),
-null!=m.view&&this.patchViewState(a,m.view),null!=m.cells&&this.patchPage(a,m.cells,g[a.getId()],e),!d||null==m.cells&&null==m.view||(a.needsUpdate=!0))}a=f[b];null!=a&&(delete f[b],t(q[a]));a=l[b];null!=a&&(delete l[b],z(a))}),z=mxUtils.bind(this,function(a){a=mxUtils.parseXml(a.data).documentElement;a=new DiagramPage(a);this.updatePageRoot(a);var b=q[a.getId()];null==b?t(a):(b.root=a.root,this.currentPage==b?this.editor.graph.model.setRoot(b.root):d&&(b.needsUpdate=!0))});t();for(m in f)t(q[f[m]]),
-delete f[m];for(m in l)z(l[m]),delete l[m];return k};EditorUi.prototype.patchViewState=function(a,c){if(null!=a.viewState&&null!=c){a==this.currentPage&&(a.viewState=this.editor.graph.getViewState());for(var d in c)a.viewState[d]=JSON.parse(c[d]);a==this.currentPage&&this.editor.graph.setViewState(a.viewState,!0)}};
-EditorUi.prototype.createParentLookup=function(a,c){function d(a){var c=b[a];null==c&&(c={inserted:[],moved:{}},b[a]=c);return c}var b={};if(null!=c[EditorUi.DIFF_INSERT])for(var e=0;e<c[EditorUi.DIFF_INSERT].length;e++){var g=c[EditorUi.DIFF_INSERT][e],k=null!=g.parent?g.parent:"",l=null!=g.previous?g.previous:"";d(k).inserted[l]=g}if(null!=c[EditorUi.DIFF_UPDATE])for(var n in c[EditorUi.DIFF_UPDATE])g=c[EditorUi.DIFF_UPDATE][n],null!=g.previous&&(k=g.parent,null==k&&(e=a.getCell(n),null!=e&&(e=
-a.getParent(e),null!=e&&(k=e.getId()))),null!=k&&(d(k).moved[g.previous]=n));return b};
-EditorUi.prototype.patchPage=function(a,c,d,b){var e=a==this.currentPage?this.editor.graph.model:new mxGraphModel(a.root),g=this.createParentLookup(e,c);e.beginUpdate();try{var k=e.updateEdgeParent,l=new mxDictionary,n=[];e.updateEdgeParent=function(a,c){!l.get(a)&&b&&(l.put(a,!0),n.push(a))};var q=g[""],f=null!=q&&null!=q.inserted?q.inserted[""]:null,m=null;null!=f&&(m=this.getCellForJson(f));if(null==m){var p=null!=q&&null!=q.moved?q.moved[""]:null;null!=p&&(m=e.getCell(p))}null!=m&&(e.setRoot(m),
-a.root=m);this.patchCellRecursive(a,e,e.root,g,c);if(null!=c[EditorUi.DIFF_REMOVE])for(var u=0;u<c[EditorUi.DIFF_REMOVE].length;u++){var v=e.getCell(c[EditorUi.DIFF_REMOVE][u]);null!=v&&e.remove(v)}if(null!=c[EditorUi.DIFF_UPDATE]){var t=null!=d&&null!=d.cells?d.cells[EditorUi.DIFF_UPDATE]:null;for(p in c[EditorUi.DIFF_UPDATE])this.patchCell(e,e.getCell(p),c[EditorUi.DIFF_UPDATE][p],null!=t?t[p]:null)}if(null!=c[EditorUi.DIFF_INSERT])for(u=0;u<c[EditorUi.DIFF_INSERT].length;u++)f=c[EditorUi.DIFF_INSERT][u],
-v=e.getCell(f.id),null!=v&&(e.setTerminal(v,e.getCell(f.source),!0),e.setTerminal(v,e.getCell(f.target),!1));e.updateEdgeParent=k;if(b&&0<n.length)for(u=0;u<n.length;u++)e.contains(n[u])&&e.updateEdgeParent(n[u])}finally{e.endUpdate()}};
-EditorUi.prototype.patchCellRecursive=function(a,c,d,b,e){if(null!=d){for(var g=b[d.getId()],k=null!=g&&null!=g.inserted?g.inserted:{},g=null!=g&&null!=g.moved?g.moved:{},l=0,n=c.getChildCount(d),q="",f=0;f<n;f++){var m=c.getChildAt(d,f).getId();null==g[q]&&(null==e[EditorUi.DIFF_UPDATE]||null==e[EditorUi.DIFF_UPDATE][m]||null==e[EditorUi.DIFF_UPDATE][m].previous&&null==e[EditorUi.DIFF_UPDATE][m].parent)&&(g[q]=m);q=m}n=mxUtils.bind(this,function(f,g){var k=null!=f?f.getId():"";if(null!=f&&g){var m=
-c.getCell(k);null!=m&&m!=f&&(f=null)}null!=f&&(c.getChildAt(d,l)!=f&&c.add(d,f,l),this.patchCellRecursive(a,c,f,b,e),l++);return k});for(q=[null];0<q.length;)if(f=q.shift(),f=n(null!=f?f.child:null,null!=f?f.insert:!1),m=g[f],null!=m&&(delete g[f],q.push({child:c.getCell(m)})),m=k[f],null!=m&&(delete k[f],q.push({child:this.getCellForJson(m),insert:!0})),0==q.length){for(f in g)q.push({child:c.getCell(g[f])}),delete g[f];for(f in k)q.push({child:this.getCellForJson(k[f]),insert:!0}),delete k[f]}}};
+"8px",g.style.paddingTop="8px",g.style.height="auto",g.style.width="40%");a.editor.cancelFirst&&q.appendChild(g);var v=mxUtils.button(f||mxResources.get("ok"),function(){a.hideDialog();null!=d&&d(u.checked)});q.appendChild(v);null!=k?(v.innerHTML=k+"<br>"+v.innerHTML+"<br>",v.style.paddingBottom="8px",v.style.paddingTop="8px",v.style.height="auto",v.className="geBtn",v.style.width="40%"):v.className="geBtn gePrimaryBtn";a.editor.cancelFirst||q.appendChild(g);m.appendChild(q);n?(q.style.marginTop=
+"10px",p=document.createElement("p"),p.style.marginTop="20px",p.appendChild(u),f=document.createElement("span"),mxUtils.write(f," "+mxResources.get("rememberThisSetting")),p.appendChild(f),m.appendChild(p),mxEvent.addListener(f,"click",function(a){u.checked=!u.checked;mxEvent.consume(a)})):q.style.marginTop="12px";this.init=function(){v.focus()};this.container=m};EditorUi.DIFF_INSERT="i";EditorUi.DIFF_REMOVE="r";EditorUi.DIFF_UPDATE="u";EditorUi.prototype.codec=new mxCodec;EditorUi.prototype.viewStateProperties={background:!0,backgroundImage:!0,shadowVisible:!0,foldingEnabled:!0,pageScale:!0,mathEnabled:!0,pageFormat:!0,extFonts:!0};EditorUi.prototype.cellProperties={id:!0,value:!0,xmlValue:!0,vertex:!0,edge:!0,visible:!0,collapsed:!0,connectable:!0,parent:!0,children:!0,previous:!0,source:!0,target:!0,edges:!0,geometry:!0,style:!0,mxObjectId:!0,mxTransient:!0};
+EditorUi.prototype.patchPages=function(a,c,d,b,f){var g={},k=[],l={},n={},q={},e={};if(null!=b&&null!=b[EditorUi.DIFF_UPDATE])for(var m in b[EditorUi.DIFF_UPDATE])g[m]=b[EditorUi.DIFF_UPDATE][m];if(null!=c[EditorUi.DIFF_REMOVE])for(b=0;b<c[EditorUi.DIFF_REMOVE].length;b++)n[c[EditorUi.DIFF_REMOVE][b]]=!0;if(null!=c[EditorUi.DIFF_INSERT])for(b=0;b<c[EditorUi.DIFF_INSERT].length;b++)l[c[EditorUi.DIFF_INSERT][b].previous]=c[EditorUi.DIFF_INSERT][b];if(null!=c[EditorUi.DIFF_UPDATE])for(m in c[EditorUi.DIFF_UPDATE])b=
+c[EditorUi.DIFF_UPDATE][m],null!=b.previous&&(e[b.previous]=m);if(null!=a){var p="";for(b=0;b<a.length;b++){var u=a[b].getId();q[u]=a[b];null!=e[p]||n[u]||null!=c[EditorUi.DIFF_UPDATE]&&null!=c[EditorUi.DIFF_UPDATE][u]&&null!=c[EditorUi.DIFF_UPDATE][u].previous||(e[p]=u);p=u}}var v={},t=mxUtils.bind(this,function(a){var b=null!=a?a.getId():"";if(null!=a&&!v[b]){v[b]=!0;k.push(a);var m=null!=c[EditorUi.DIFF_UPDATE]?c[EditorUi.DIFF_UPDATE][b]:null;null!=m&&(this.updatePageRoot(a),null!=m.name&&a.setName(m.name),
+null!=m.view&&this.patchViewState(a,m.view),null!=m.cells&&this.patchPage(a,m.cells,g[a.getId()],f),!d||null==m.cells&&null==m.view||(a.needsUpdate=!0))}a=e[b];null!=a&&(delete e[b],t(q[a]));a=l[b];null!=a&&(delete l[b],y(a))}),y=mxUtils.bind(this,function(a){a=mxUtils.parseXml(a.data).documentElement;a=new DiagramPage(a);this.updatePageRoot(a);var b=q[a.getId()];null==b?t(a):(b.root=a.root,this.currentPage==b?this.editor.graph.model.setRoot(b.root):d&&(b.needsUpdate=!0))});t();for(m in e)t(q[e[m]]),
+delete e[m];for(m in l)y(l[m]),delete l[m];return k};EditorUi.prototype.patchViewState=function(a,c){if(null!=a.viewState&&null!=c){a==this.currentPage&&(a.viewState=this.editor.graph.getViewState());for(var d in c)a.viewState[d]=JSON.parse(c[d]);a==this.currentPage&&this.editor.graph.setViewState(a.viewState,!0)}};
+EditorUi.prototype.createParentLookup=function(a,c){function d(a){var c=b[a];null==c&&(c={inserted:[],moved:{}},b[a]=c);return c}var b={};if(null!=c[EditorUi.DIFF_INSERT])for(var f=0;f<c[EditorUi.DIFF_INSERT].length;f++){var g=c[EditorUi.DIFF_INSERT][f],k=null!=g.parent?g.parent:"",l=null!=g.previous?g.previous:"";d(k).inserted[l]=g}if(null!=c[EditorUi.DIFF_UPDATE])for(var n in c[EditorUi.DIFF_UPDATE])g=c[EditorUi.DIFF_UPDATE][n],null!=g.previous&&(k=g.parent,null==k&&(f=a.getCell(n),null!=f&&(f=
+a.getParent(f),null!=f&&(k=f.getId()))),null!=k&&(d(k).moved[g.previous]=n));return b};
+EditorUi.prototype.patchPage=function(a,c,d,b){var f=a==this.currentPage?this.editor.graph.model:new mxGraphModel(a.root),g=this.createParentLookup(f,c);f.beginUpdate();try{var k=f.updateEdgeParent,l=new mxDictionary,n=[];f.updateEdgeParent=function(a,c){!l.get(a)&&b&&(l.put(a,!0),n.push(a))};var q=g[""],e=null!=q&&null!=q.inserted?q.inserted[""]:null,m=null;null!=e&&(m=this.getCellForJson(e));if(null==m){var p=null!=q&&null!=q.moved?q.moved[""]:null;null!=p&&(m=f.getCell(p))}null!=m&&(f.setRoot(m),
+a.root=m);this.patchCellRecursive(a,f,f.root,g,c);if(null!=c[EditorUi.DIFF_REMOVE])for(var u=0;u<c[EditorUi.DIFF_REMOVE].length;u++){var v=f.getCell(c[EditorUi.DIFF_REMOVE][u]);null!=v&&f.remove(v)}if(null!=c[EditorUi.DIFF_UPDATE]){var t=null!=d&&null!=d.cells?d.cells[EditorUi.DIFF_UPDATE]:null;for(p in c[EditorUi.DIFF_UPDATE])this.patchCell(f,f.getCell(p),c[EditorUi.DIFF_UPDATE][p],null!=t?t[p]:null)}if(null!=c[EditorUi.DIFF_INSERT])for(u=0;u<c[EditorUi.DIFF_INSERT].length;u++)e=c[EditorUi.DIFF_INSERT][u],
+v=f.getCell(e.id),null!=v&&(f.setTerminal(v,f.getCell(e.source),!0),f.setTerminal(v,f.getCell(e.target),!1));f.updateEdgeParent=k;if(b&&0<n.length)for(u=0;u<n.length;u++)f.contains(n[u])&&f.updateEdgeParent(n[u])}finally{f.endUpdate()}};
+EditorUi.prototype.patchCellRecursive=function(a,c,d,b,f){if(null!=d){for(var g=b[d.getId()],k=null!=g&&null!=g.inserted?g.inserted:{},g=null!=g&&null!=g.moved?g.moved:{},l=0,n=c.getChildCount(d),q="",e=0;e<n;e++){var m=c.getChildAt(d,e).getId();null==g[q]&&(null==f[EditorUi.DIFF_UPDATE]||null==f[EditorUi.DIFF_UPDATE][m]||null==f[EditorUi.DIFF_UPDATE][m].previous&&null==f[EditorUi.DIFF_UPDATE][m].parent)&&(g[q]=m);q=m}n=mxUtils.bind(this,function(e,g){var k=null!=e?e.getId():"";if(null!=e&&g){var m=
+c.getCell(k);null!=m&&m!=e&&(e=null)}null!=e&&(c.getChildAt(d,l)!=e&&c.add(d,e,l),this.patchCellRecursive(a,c,e,b,f),l++);return k});for(q=[null];0<q.length;)if(e=q.shift(),e=n(null!=e?e.child:null,null!=e?e.insert:!1),m=g[e],null!=m&&(delete g[e],q.push({child:c.getCell(m)})),m=k[e],null!=m&&(delete k[e],q.push({child:this.getCellForJson(m),insert:!0})),0==q.length){for(e in g)q.push({child:c.getCell(g[e])}),delete g[e];for(e in k)q.push({child:this.getCellForJson(k[e]),insert:!0}),delete k[e]}}};
EditorUi.prototype.patchCell=function(a,c,d,b){if(null!=c&&null!=d){if(null==b||null==b.xmlValue&&(null==b.value||""==b.value))"value"in d?a.setValue(c,d.value):null!=d.xmlValue&&a.setValue(c,mxUtils.parseXml(d.xmlValue).documentElement);null!=b&&null!=b.style||null==d.style||a.setStyle(c,d.style);null!=d.visible&&a.setVisible(c,1==d.visible);null!=d.collapsed&&a.setCollapsed(c,1==d.collapsed);null!=d.vertex&&(c.vertex=1==d.vertex);null!=d.edge&&(c.edge=1==d.edge);null!=d.connectable&&(c.connectable=
-1==d.connectable);null!=d.geometry&&a.setGeometry(c,this.codec.decode(mxUtils.parseXml(d.geometry).documentElement));null!=d.source&&a.setTerminal(c,a.getCell(d.source),!0);null!=d.target&&a.setTerminal(c,a.getCell(d.target),!1);for(var e in d)this.cellProperties[e]||(c[e]=d[e])}};
-EditorUi.prototype.getPagesForNode=function(a,c){var d=this.editor.extractGraphModel(a,!0);null!=d&&(a=d);var d=a.getElementsByTagName(c||"diagram"),b=[];if(0<d.length)for(var e=0;e<d.length;e++){var g=new DiagramPage(d[e]);this.updatePageRoot(g);b.push(g)}else"mxGraphModel"==a.nodeName&&(g=new DiagramPage(a.ownerDocument.createElement("diagram")),g.setName(mxResources.get("pageWithNumber",[1])),mxUtils.setTextContent(g.node,Graph.compressNode(a)),b.push(g));return b};
-EditorUi.prototype.diffPages=function(a,c){for(var d=[],b=[],e={},g={},k={},l=null,n=0;n<c.length;n++)g[c[n].getId()]={page:c[n],prev:l},l=c[n];l=null;for(n=0;n<a.length;n++){var q=a[n].getId(),f=g[q];if(null==f)b.push(q);else{var m=this.diffPage(a[n],f.page),p={};0<Object.keys(m).length&&(p.cells=m);m=this.diffViewState(a[n],f.page);0<Object.keys(m).length&&(p.view=m);if((null!=f.prev?null==l:null!=l)||null!=l&&null!=f.prev&&l.getId()!=f.prev.getId())p.previous=null!=f.prev?f.prev.getId():"";null!=
-f.page.getName()&&a[n].getName()!=f.page.getName()&&(p.name=f.page.getName());0<Object.keys(p).length&&(k[q]=p)}delete g[a[n].getId()];l=a[n]}for(q in g)f=g[q],d.push({data:mxUtils.getXml(f.page.node),previous:null!=f.prev?f.prev.getId():""});0<Object.keys(k).length&&(e[EditorUi.DIFF_UPDATE]=k);0<b.length&&(e[EditorUi.DIFF_REMOVE]=b);0<d.length&&(e[EditorUi.DIFF_INSERT]=d);return e};
-EditorUi.prototype.createCellLookup=function(a,c,d){d=null!=d?d:{};d[a.getId()]={cell:a,prev:c};var b=a.getChildCount();c=null;for(var e=0;e<b;e++){var g=a.getChildAt(e);this.createCellLookup(g,c,d);c=g}return d};
-EditorUi.prototype.diffCellRecursive=function(a,c,d,b,e){b=null!=b?b:{};var g=d[a.getId()];delete d[a.getId()];if(null==g)e.push(a.getId());else{var k=this.diffCell(a,g.cell);if(null!=k.parent||(null!=g.prev?null==c:null!=c)||null!=c&&null!=g.prev&&c.getId()!=g.prev.getId())k.previous=null!=g.prev?g.prev.getId():"";0<Object.keys(k).length&&(b[a.getId()]=k)}g=a.getChildCount();c=null;for(k=0;k<g;k++){var l=a.getChildAt(k);this.diffCellRecursive(l,c,d,b,e);c=l}return b};
-EditorUi.prototype.diffPage=function(a,c){var d=[],b=[],e={};this.updatePageRoot(a);this.updatePageRoot(c);var g=this.createCellLookup(c.root),k=this.diffCellRecursive(a.root,null,g,k,b),l;for(l in g){var n=g[l];d.push(this.getJsonForCell(n.cell,n.prev))}0<Object.keys(k).length&&(e[EditorUi.DIFF_UPDATE]=k);0<b.length&&(e[EditorUi.DIFF_REMOVE]=b);0<d.length&&(e[EditorUi.DIFF_INSERT]=d);return e};
-EditorUi.prototype.diffViewState=function(a,c){var d=a.viewState,b=c.viewState,e={};c==this.currentPage&&(b=this.editor.graph.getViewState());if(null!=d&&null!=b)for(var g in this.viewStateProperties){var k=JSON.stringify(d[g]),l=JSON.stringify(b[g]);k!=l&&(e[g]=l)}return e};
+1==d.connectable);null!=d.geometry&&a.setGeometry(c,this.codec.decode(mxUtils.parseXml(d.geometry).documentElement));null!=d.source&&a.setTerminal(c,a.getCell(d.source),!0);null!=d.target&&a.setTerminal(c,a.getCell(d.target),!1);for(var f in d)this.cellProperties[f]||(c[f]=d[f])}};
+EditorUi.prototype.getPagesForNode=function(a,c){var d=this.editor.extractGraphModel(a,!0);null!=d&&(a=d);var d=a.getElementsByTagName(c||"diagram"),b=[];if(0<d.length)for(var f=0;f<d.length;f++){var g=new DiagramPage(d[f]);this.updatePageRoot(g);b.push(g)}else"mxGraphModel"==a.nodeName&&(g=new DiagramPage(a.ownerDocument.createElement("diagram")),g.setName(mxResources.get("pageWithNumber",[1])),mxUtils.setTextContent(g.node,Graph.compressNode(a)),b.push(g));return b};
+EditorUi.prototype.diffPages=function(a,c){for(var d=[],b=[],f={},g={},k={},l=null,n=0;n<c.length;n++)g[c[n].getId()]={page:c[n],prev:l},l=c[n];l=null;for(n=0;n<a.length;n++){var q=a[n].getId(),e=g[q];if(null==e)b.push(q);else{var m=this.diffPage(a[n],e.page),p={};0<Object.keys(m).length&&(p.cells=m);m=this.diffViewState(a[n],e.page);0<Object.keys(m).length&&(p.view=m);if((null!=e.prev?null==l:null!=l)||null!=l&&null!=e.prev&&l.getId()!=e.prev.getId())p.previous=null!=e.prev?e.prev.getId():"";null!=
+e.page.getName()&&a[n].getName()!=e.page.getName()&&(p.name=e.page.getName());0<Object.keys(p).length&&(k[q]=p)}delete g[a[n].getId()];l=a[n]}for(q in g)e=g[q],d.push({data:mxUtils.getXml(e.page.node),previous:null!=e.prev?e.prev.getId():""});0<Object.keys(k).length&&(f[EditorUi.DIFF_UPDATE]=k);0<b.length&&(f[EditorUi.DIFF_REMOVE]=b);0<d.length&&(f[EditorUi.DIFF_INSERT]=d);return f};
+EditorUi.prototype.createCellLookup=function(a,c,d){d=null!=d?d:{};d[a.getId()]={cell:a,prev:c};var b=a.getChildCount();c=null;for(var f=0;f<b;f++){var g=a.getChildAt(f);this.createCellLookup(g,c,d);c=g}return d};
+EditorUi.prototype.diffCellRecursive=function(a,c,d,b,f){b=null!=b?b:{};var g=d[a.getId()];delete d[a.getId()];if(null==g)f.push(a.getId());else{var k=this.diffCell(a,g.cell);if(null!=k.parent||(null!=g.prev?null==c:null!=c)||null!=c&&null!=g.prev&&c.getId()!=g.prev.getId())k.previous=null!=g.prev?g.prev.getId():"";0<Object.keys(k).length&&(b[a.getId()]=k)}g=a.getChildCount();c=null;for(k=0;k<g;k++){var l=a.getChildAt(k);this.diffCellRecursive(l,c,d,b,f);c=l}return b};
+EditorUi.prototype.diffPage=function(a,c){var d=[],b=[],f={};this.updatePageRoot(a);this.updatePageRoot(c);var g=this.createCellLookup(c.root),k=this.diffCellRecursive(a.root,null,g,k,b),l;for(l in g){var n=g[l];d.push(this.getJsonForCell(n.cell,n.prev))}0<Object.keys(k).length&&(f[EditorUi.DIFF_UPDATE]=k);0<b.length&&(f[EditorUi.DIFF_REMOVE]=b);0<d.length&&(f[EditorUi.DIFF_INSERT]=d);return f};
+EditorUi.prototype.diffViewState=function(a,c){var d=a.viewState,b=c.viewState,f={};c==this.currentPage&&(b=this.editor.graph.getViewState());if(null!=d&&null!=b)for(var g in this.viewStateProperties){var k=JSON.stringify(d[g]),l=JSON.stringify(b[g]);k!=l&&(f[g]=l)}return f};
EditorUi.prototype.getCellForJson=function(a){var c=null!=a.geometry?this.codec.decode(mxUtils.parseXml(a.geometry).documentElement):null,d=a.value;null!=a.xmlValue&&(d=mxUtils.parseXml(a.xmlValue).documentElement);c=new mxCell(d,c,a.style);c.connectable=0!=a.connectable;c.collapsed=1==a.collapsed;c.visible=0!=a.visible;c.vertex=1==a.vertex;c.edge=1==a.edge;c.id=a.id;for(var b in a)this.cellProperties[b]||(c[b]=a[b]);return c};
EditorUi.prototype.getJsonForCell=function(a,c){var d={id:a.getId()};a.vertex&&(d.vertex=1);a.edge&&(d.edge=1);a.connectable||(d.connectable=0);null!=a.parent&&(d.parent=a.parent.getId());null!=c&&(d.previous=c.getId());null!=a.source&&(d.source=a.source.getId());null!=a.target&&(d.target=a.target.getId());null!=a.style&&(d.style=a.style);null!=a.geometry&&(d.geometry=mxUtils.getXml(this.codec.encode(a.geometry)));a.collapsed&&(d.collapsed=1);a.visible||(d.visible=0);null!=a.value&&("object"===typeof a.value&&
"number"===typeof a.value.nodeType&&"string"===typeof a.value.nodeName&&"function"===typeof a.value.getAttribute?d.xmlValue=mxUtils.getXml(a.value):d.value=a.value);for(var b in a)this.cellProperties[b]||"function"===typeof a[b]||(d[b]=a[b]);return d};
EditorUi.prototype.diffCell=function(a,c){function d(a){return null!=a&&"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName&&"function"===typeof a.getAttribute}var b={};a.vertex!=c.vertex&&(b.vertex=c.vertex?1:0);a.edge!=c.edge&&(b.edge=c.edge?1:0);a.connectable!=c.connectable&&(b.connectable=c.connectable?1:0);if((null!=a.parent?null==c.parent:null!=c.parent)||null!=a.parent&&null!=c.parent&&a.parent.getId()!=c.parent.getId())b.parent=null!=c.parent?c.parent.getId():"";
if((null!=a.source?null==c.source:null!=c.source)||null!=a.source&&null!=c.source&&a.source.getId()!=c.source.getId())b.source=null!=c.source?c.source.getId():"";if((null!=a.target?null==c.target:null!=c.target)||null!=a.target&&null!=c.target&&a.target.getId()!=c.target.getId())b.target=null!=c.target?c.target.getId():"";d(a.value)&&d(c.value)?a.value.isEqualNode(c.value)||(b.xmlValue=mxUtils.getXml(c.value)):a.value!=c.value&&(d(c.value)?b.xmlValue=mxUtils.getXml(c.value):b.value=null!=c.value?
-c.value:null);a.style!=c.style&&(b.style=c.style);a.visible!=c.visible&&(b.visible=c.visible?1:0);a.collapsed!=c.collapsed&&(b.collapsed=c.collapsed?1:0);if(!this.isObjectEqual(a.geometry,c.geometry,new mxGeometry)){var e=this.codec.encode(c.geometry);null!=e&&(b.geometry=mxUtils.getXml(e))}for(var g in a)this.cellProperties[g]||"function"===typeof a[g]||"function"===typeof c[g]||a[g]==c[g]||(b[g]=void 0===c[g]?null:c[g]);for(g in c)g in a||this.cellProperties[g]||"function"===typeof a[g]||"function"===
+c.value:null);a.style!=c.style&&(b.style=c.style);a.visible!=c.visible&&(b.visible=c.visible?1:0);a.collapsed!=c.collapsed&&(b.collapsed=c.collapsed?1:0);if(!this.isObjectEqual(a.geometry,c.geometry,new mxGeometry)){var f=this.codec.encode(c.geometry);null!=f&&(b.geometry=mxUtils.getXml(f))}for(var g in a)this.cellProperties[g]||"function"===typeof a[g]||"function"===typeof c[g]||a[g]==c[g]||(b[g]=void 0===c[g]?null:c[g]);for(g in c)g in a||this.cellProperties[g]||"function"===typeof a[g]||"function"===
typeof c[g]||a[g]==c[g]||(b[g]=void 0===c[g]?null:c[g]);return b};EditorUi.prototype.isObjectEqual=function(a,c,d){if(null==a&&null==c)return!0;if(null!=a?null==c:null!=c)return!1;var b=function(a,b){return null==d||d[a]!=b?!0===b?1:b:void 0};return JSON.stringify(a,b)==JSON.stringify(c,b)};var mxSettings={currentVersion:18,defaultFormatWidth:600>screen.width?"0":"240",key:".drawio-config",getLanguage:function(){return mxSettings.settings.language},setLanguage:function(a){mxSettings.settings.language=a},getUi:function(){return mxSettings.settings.ui},setUi:function(a){mxSettings.settings.ui=a},getShowStartScreen:function(){return mxSettings.settings.showStartScreen},setShowStartScreen:function(a){mxSettings.settings.showStartScreen=a},getGridColor:function(a){return a?mxSettings.settings.darkGridColor:
mxSettings.settings.gridColor},setGridColor:function(a,c){c?mxSettings.settings.darkGridColor=a:mxSettings.settings.gridColor=a},getAutosave:function(){return mxSettings.settings.autosave},setAutosave:function(a){mxSettings.settings.autosave=a},getResizeImages:function(){return mxSettings.settings.resizeImages},setResizeImages:function(a){mxSettings.settings.resizeImages=a},getOpenCounter:function(){return mxSettings.settings.openCounter},setOpenCounter:function(a){mxSettings.settings.openCounter=
a},setCustomFonts:function(a){mxSettings.settings.customFonts=a},getCustomFonts:function(){for(var a=mxSettings.settings.customFonts||[],c=0;c<a.length;c++)"string"===typeof a[c]&&(a[c]={name:a[c],url:null});return a},getLibraries:function(){return mxSettings.settings.libraries},setLibraries:function(a){mxSettings.settings.libraries=a},addCustomLibrary:function(a){mxSettings.load();0>mxUtils.indexOf(mxSettings.settings.customLibraries,a)&&("L.scratchpad"===a?mxSettings.settings.customLibraries.splice(0,
@@ -8904,64 +8910,64 @@ DrawioFileSync.prototype.fileChangedNotify=function(){if(this.isValidState())if(
DrawioFileSync.prototype.fileChanged=function(a,c,d,b){return this.notifyThread=b=window.setTimeout(mxUtils.bind(this,function(){null!=d&&d()||(this.isValidState()?this.file.loadPatchDescriptor(mxUtils.bind(this,function(b){null!=d&&d()||(this.isValidState()?this.catchup(b,a,c,d):null!=c&&c())}),c):null!=c&&c())}),b?this.cacheReadyDelay:0)};
DrawioFileSync.prototype.reloadDescriptor=function(){this.file.loadDescriptor(mxUtils.bind(this,function(a){null!=a?(this.file.setDescriptorRevisionId(a,this.file.getCurrentRevisionId()),this.updateDescriptor(a),this.fileChangedNotify()):(this.file.inConflictState=!0,this.file.handleFileError())}),mxUtils.bind(this,function(a){this.file.inConflictState=!0;this.file.handleFileError(a)}))};
DrawioFileSync.prototype.updateDescriptor=function(a){this.file.setDescriptor(a);this.file.descriptorChanged();this.start()};
-DrawioFileSync.prototype.catchup=function(a,c,d,b){if(null!=a&&(null==b||!b())){var e=this.file.getDescriptorRevisionId(a),g=this.file.getCurrentRevisionId();if(g==e)this.file.patchDescriptor(this.file.getDescriptor(),a),null!=c&&c();else if(this.isValidState()){var k=this.file.getDescriptorSecret(a),l=0,n=!1,q=mxUtils.bind(this,function(){if(null==b||!b())if(g!=this.file.getCurrentRevisionId())null!=c&&c();else if(this.isValidState()){var f=!0,m=window.setTimeout(mxUtils.bind(this,function(){f=!1;
-this.reload(c,d,b)}),this.ui.timeout);mxUtils.get(EditorUi.cacheUrl+"?id="+encodeURIComponent(this.channelId)+"&from="+encodeURIComponent(g)+"&to="+encodeURIComponent(e)+(null!=k?"&secret="+encodeURIComponent(k):""),mxUtils.bind(this,function(e){this.file.stats.bytesReceived+=e.getText().length;window.clearTimeout(m);if(f&&(null==b||!b()))if(g!=this.file.getCurrentRevisionId())null!=c&&c();else if(this.isValidState()){var k=null,p=[];if(200<=e.getStatus()&&299>=e.getStatus()&&0<e.getText().length)try{var t=
-JSON.parse(e.getText());if(null!=t&&0<t.length)for(var z=0;z<t.length;z++){var x=this.stringToObject(t[z]);if(x.v>DrawioFileSync.PROTOCOL){n=!0;p=[];break}else if(x.v===DrawioFileSync.PROTOCOL&&null!=x.d)k=x.d.checksum,p.push(x.d.patch);else{n=!0;p=[];break}}}catch(C){p=[],null!=window.console&&"1"==urlParams.test&&console.log(C)}try{0<p.length?(this.file.stats.cacheHits++,this.merge(p,k,a,c,d,b)):l<=this.maxCacheReadyRetries-1&&!n&&401!=e.getStatus()?(l++,this.file.stats.cacheMiss++,window.setTimeout(q,
-(l+1)*this.cacheReadyDelay)):(this.file.stats.cacheFail++,this.reload(c,d,b))}catch(C){null!=d&&d(C)}}else null!=d&&d()}))}else null!=d&&d()});window.setTimeout(q,this.cacheReadyDelay)}else null!=d&&d()}};DrawioFileSync.prototype.reload=function(a,c,d,b){this.file.updateFile(mxUtils.bind(this,function(){this.lastModified=this.file.getLastModifiedDate();this.updateStatus();this.start();null!=a&&a()}),mxUtils.bind(this,function(a){null!=c&&c(a)}),d,b)};
-DrawioFileSync.prototype.merge=function(a,c,d,b,e,g){try{this.file.stats.merged++;this.lastModified=new Date;this.file.shadowPages=null!=this.file.shadowPages?this.file.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.file.shadowData).documentElement);this.file.backupPatch=this.file.isModified()?this.ui.diffPages(this.file.shadowPages,this.ui.pages):null;var k=this.file.ignorePatches(a),l=this.file.getDescriptorRevisionId(d);if(!k){for(g=0;g<a.length;g++)this.file.shadowPages=this.ui.patchPages(this.file.shadowPages,
-a[g]);var n=null!=c?this.ui.getHashValueForPages(this.file.shadowPages):null;"1"==urlParams.test&&EditorUi.debug("Sync.merge",[this],"from",this.file.getCurrentRevisionId(),"to",l,"etag",this.file.getDescriptorEtag(d),"backup",this.file.backupPatch,"attempt",this.catchupRetryCount,"patches",a,"checksum",c==n,c);if(null!=c&&c!=n){var q=this.ui.hashValue(this.file.getCurrentRevisionId()),f=this.ui.hashValue(l);this.file.checksumError(e,a,"From: "+q+"\nTo: "+f+"\nChecksum: "+c+"\nCurrent: "+n,l,"merge");
-return}this.file.patch(a,DrawioFile.LAST_WRITE_WINS?this.file.backupPatch:null)}this.file.invalidChecksum=!1;this.file.inConflictState=!1;this.file.patchDescriptor(this.file.getDescriptor(),d);this.file.backupPatch=null;null!=b&&b()}catch(u){this.file.inConflictState=!0;this.file.invalidChecksum=!0;this.file.descriptorChanged();null!=e&&e(u);try{if(this.file.errorReportsEnabled)q=this.ui.hashValue(this.file.getCurrentRevisionId()),f=this.ui.hashValue(l),this.file.sendErrorReport("Error in merge",
-"From: "+q+"\nTo: "+f+"\nChecksum: "+c+"\nPatches:\n"+this.file.compressReportData(JSON.stringify(a,null,2)),u);else{var m=this.file.getCurrentUser(),p=null!=m?m.id:"unknown";EditorUi.logError("Error in merge",null,this.file.getMode()+"."+this.file.getId(),p,u)}}catch(v){}}};
+DrawioFileSync.prototype.catchup=function(a,c,d,b){if(null!=a&&(null==b||!b())){var f=this.file.getDescriptorRevisionId(a),g=this.file.getCurrentRevisionId();if(g==f)this.file.patchDescriptor(this.file.getDescriptor(),a),null!=c&&c();else if(this.isValidState()){var k=this.file.getDescriptorSecret(a),l=0,n=!1,q=mxUtils.bind(this,function(){if(null==b||!b())if(g!=this.file.getCurrentRevisionId())null!=c&&c();else if(this.isValidState()){var e=!0,m=window.setTimeout(mxUtils.bind(this,function(){e=!1;
+this.reload(c,d,b)}),this.ui.timeout);mxUtils.get(EditorUi.cacheUrl+"?id="+encodeURIComponent(this.channelId)+"&from="+encodeURIComponent(g)+"&to="+encodeURIComponent(f)+(null!=k?"&secret="+encodeURIComponent(k):""),mxUtils.bind(this,function(f){this.file.stats.bytesReceived+=f.getText().length;window.clearTimeout(m);if(e&&(null==b||!b()))if(g!=this.file.getCurrentRevisionId())null!=c&&c();else if(this.isValidState()){var k=null,p=[];if(200<=f.getStatus()&&299>=f.getStatus()&&0<f.getText().length)try{var t=
+JSON.parse(f.getText());if(null!=t&&0<t.length)for(var y=0;y<t.length;y++){var z=this.stringToObject(t[y]);if(z.v>DrawioFileSync.PROTOCOL){n=!0;p=[];break}else if(z.v===DrawioFileSync.PROTOCOL&&null!=z.d)k=z.d.checksum,p.push(z.d.patch);else{n=!0;p=[];break}}}catch(B){p=[],null!=window.console&&"1"==urlParams.test&&console.log(B)}try{0<p.length?(this.file.stats.cacheHits++,this.merge(p,k,a,c,d,b)):l<=this.maxCacheReadyRetries-1&&!n&&401!=f.getStatus()?(l++,this.file.stats.cacheMiss++,window.setTimeout(q,
+(l+1)*this.cacheReadyDelay)):(this.file.stats.cacheFail++,this.reload(c,d,b))}catch(B){null!=d&&d(B)}}else null!=d&&d()}))}else null!=d&&d()});window.setTimeout(q,this.cacheReadyDelay)}else null!=d&&d()}};DrawioFileSync.prototype.reload=function(a,c,d,b){this.file.updateFile(mxUtils.bind(this,function(){this.lastModified=this.file.getLastModifiedDate();this.updateStatus();this.start();null!=a&&a()}),mxUtils.bind(this,function(a){null!=c&&c(a)}),d,b)};
+DrawioFileSync.prototype.merge=function(a,c,d,b,f,g){try{this.file.stats.merged++;this.lastModified=new Date;this.file.shadowPages=null!=this.file.shadowPages?this.file.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.file.shadowData).documentElement);this.file.backupPatch=this.file.isModified()?this.ui.diffPages(this.file.shadowPages,this.ui.pages):null;var k=this.file.ignorePatches(a),l=this.file.getDescriptorRevisionId(d);if(!k){for(g=0;g<a.length;g++)this.file.shadowPages=this.ui.patchPages(this.file.shadowPages,
+a[g]);var n=null!=c?this.ui.getHashValueForPages(this.file.shadowPages):null;"1"==urlParams.test&&EditorUi.debug("Sync.merge",[this],"from",this.file.getCurrentRevisionId(),"to",l,"etag",this.file.getDescriptorEtag(d),"backup",this.file.backupPatch,"attempt",this.catchupRetryCount,"patches",a,"checksum",c==n,c);if(null!=c&&c!=n){var q=this.ui.hashValue(this.file.getCurrentRevisionId()),e=this.ui.hashValue(l);this.file.checksumError(f,a,"From: "+q+"\nTo: "+e+"\nChecksum: "+c+"\nCurrent: "+n,l,"merge");
+return}this.file.patch(a,DrawioFile.LAST_WRITE_WINS?this.file.backupPatch:null)}this.file.invalidChecksum=!1;this.file.inConflictState=!1;this.file.patchDescriptor(this.file.getDescriptor(),d);this.file.backupPatch=null;null!=b&&b()}catch(u){this.file.inConflictState=!0;this.file.invalidChecksum=!0;this.file.descriptorChanged();null!=f&&f(u);try{if(this.file.errorReportsEnabled)q=this.ui.hashValue(this.file.getCurrentRevisionId()),e=this.ui.hashValue(l),this.file.sendErrorReport("Error in merge",
+"From: "+q+"\nTo: "+e+"\nChecksum: "+c+"\nPatches:\n"+this.file.compressReportData(JSON.stringify(a,null,2)),u);else{var m=this.file.getCurrentUser(),p=null!=m?m.id:"unknown";EditorUi.logError("Error in merge",null,this.file.getMode()+"."+this.file.getId(),p,u)}}catch(v){}}};
DrawioFileSync.prototype.descriptorChanged=function(a){this.lastModified=this.file.getLastModifiedDate();if(null!=this.channelId){var c=this.objectToString(this.createMessage({a:"desc",m:this.lastModified.getTime()})),d=this.file.getCurrentRevisionId(),b=this.objectToString({});mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&from="+encodeURIComponent(a)+"&to="+encodeURIComponent(d)+"&msg="+encodeURIComponent(c)+"&data="+encodeURIComponent(b));this.file.stats.bytesSent+=b.length;this.file.stats.msgSent++}this.updateStatus()};
DrawioFileSync.prototype.objectToString=function(a){a=Graph.compress(JSON.stringify(a));null!=this.key&&"undefined"!==typeof CryptoJS&&(a=CryptoJS.AES.encrypt(a,this.key).toString());return a};DrawioFileSync.prototype.stringToObject=function(a){null!=this.key&&"undefined"!==typeof CryptoJS&&(a=CryptoJS.AES.decrypt(a,this.key).toString(CryptoJS.enc.Utf8));return JSON.parse(Graph.decompress(a))};
-DrawioFileSync.prototype.fileSaved=function(a,c,d,b){this.lastModified=this.file.getLastModifiedDate();this.resetUpdateStatusThread();this.catchupRetryCount=0;if(!this.ui.isOffline()&&!this.file.inConflictState&&!this.file.redirectDialogShowing&&(this.start(),null!=this.channelId)){var e=null!=this.file.shadowPages?this.file.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.file.shadowData).documentElement);b=this.ui.getHashValueForPages(a);e=this.ui.diffPages(e,a);c=this.file.getDescriptorRevisionId(c);
-var g=this.file.getCurrentRevisionId(),k=this.objectToString(this.createMessage({patch:e,checksum:b})),l=this.objectToString(this.createMessage({m:this.lastModified.getTime()})),n=this.file.getDescriptorSecret(this.file.getDescriptor());this.file.stats.bytesSent+=k.length;this.file.stats.msgSent++;mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&from="+encodeURIComponent(c)+"&to="+encodeURIComponent(g)+"&msg="+encodeURIComponent(l)+(null!=n?"&secret="+encodeURIComponent(n):"")+(k.length<this.maxCacheEntrySize?
-"&data="+encodeURIComponent(k):""),mxUtils.bind(this,function(a){}));"1"==urlParams.test&&EditorUi.debug("Sync.fileSaved",[this],"from",c,"to",g,"etag",this.file.getCurrentEtag(),k.length,"bytes","diff",e,"checksum",b)}this.file.shadowPages=a;null!=d&&d()};DrawioFileSync.prototype.getIdParameters=function(){var a="id="+this.channelId;null!=this.pusher&&null!=this.pusher.connection&&null!=this.pusher.connection.socket_id&&(a+="&sid="+this.pusher.connection.socket_id);return a};
+DrawioFileSync.prototype.fileSaved=function(a,c,d,b){this.lastModified=this.file.getLastModifiedDate();this.resetUpdateStatusThread();this.catchupRetryCount=0;if(!this.ui.isOffline()&&!this.file.inConflictState&&!this.file.redirectDialogShowing&&(this.start(),null!=this.channelId)){var f=null!=this.file.shadowPages?this.file.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.file.shadowData).documentElement);b=this.ui.getHashValueForPages(a);f=this.ui.diffPages(f,a);c=this.file.getDescriptorRevisionId(c);
+var g=this.file.getCurrentRevisionId(),k=this.objectToString(this.createMessage({patch:f,checksum:b})),l=this.objectToString(this.createMessage({m:this.lastModified.getTime()})),n=this.file.getDescriptorSecret(this.file.getDescriptor());this.file.stats.bytesSent+=k.length;this.file.stats.msgSent++;mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&from="+encodeURIComponent(c)+"&to="+encodeURIComponent(g)+"&msg="+encodeURIComponent(l)+(null!=n?"&secret="+encodeURIComponent(n):"")+(k.length<this.maxCacheEntrySize?
+"&data="+encodeURIComponent(k):""),mxUtils.bind(this,function(a){}));"1"==urlParams.test&&EditorUi.debug("Sync.fileSaved",[this],"from",c,"to",g,"etag",this.file.getCurrentEtag(),k.length,"bytes","diff",f,"checksum",b)}this.file.shadowPages=a;null!=d&&d()};DrawioFileSync.prototype.getIdParameters=function(){var a="id="+this.channelId;null!=this.pusher&&null!=this.pusher.connection&&null!=this.pusher.connection.socket_id&&(a+="&sid="+this.pusher.connection.socket_id);return a};
DrawioFileSync.prototype.createMessage=function(a){return{v:DrawioFileSync.PROTOCOL,d:a,c:this.clientId}};DrawioFileSync.prototype.fileConflict=function(a,c,d){this.catchupRetryCount++;this.catchupRetryCount<this.maxCatchupRetries?(this.file.stats.conflicts++,null!=a?this.catchup(a,c,d):this.fileChanged(c,d)):(this.file.stats.timeouts++,this.catchupRetryCount=0,null!=d&&d({message:mxResources.get("timeout")}))};
DrawioFileSync.prototype.stop=function(){null!=this.pusher&&(EditorUi.debug("Sync.stop",[this]),null!=this.pusher.connection&&(this.pusher.connection.unbind("state_change",this.connectionListener),this.pusher.connection.unbind("error",this.pusherErrorListener)),null!=this.channel&&(this.channel.unbind("changed",this.changeListener),this.channel=null),this.pusher.disconnect(),this.pusher=null);this.updateOnlineState();this.updateStatus()};
DrawioFileSync.prototype.destroy=function(){if(null!=this.channelId){var a=this.file.getCurrentUser(),c={a:"leave"};null!=a&&(c.name=encodeURIComponent(a.displayName),c.uid=a.id);mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&msg="+encodeURIComponent(this.objectToString(this.createMessage(c))));this.file.stats.msgSent++}this.stop();null!=this.updateStatusThread&&(window.clearInterval(this.updateStatusThread),this.updateStatusThread=null);null!=this.onlineListener&&(mxEvent.removeListener(window,
"online",this.onlineListener),this.onlineListener=null);null!=this.visibleListener&&(mxEvent.removeListener(document,"visibilitychange",this.visibleListener),this.visibleListener=null);null!=this.activityListener&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.activityListener),mxEvent.removeListener(document,"keypress",this.activityListener),mxEvent.removeListener(window,"focus",this.activityListener),!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(mxEvent.removeListener(document,
"touchstart",this.activityListener),mxEvent.removeListener(document,"touchmove",this.activityListener)),this.activityListener=null);null!=this.collaboratorsElement&&(this.collaboratorsElement.parentNode.removeChild(this.collaboratorsElement),this.collaboratorsElement=null)};Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement;
Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;function mxAsyncCanvas(a){mxAbstractCanvas2D.call(this);this.htmlCanvas=a;a.images=a.images||[];a.subCanvas=a.subCanvas||[]}mxUtils.extend(mxAsyncCanvas,mxAbstractCanvas2D);mxAsyncCanvas.prototype.htmlCanvas=null;mxAsyncCanvas.prototype.canvasIndex=0;mxAsyncCanvas.prototype.waitCounter=0;mxAsyncCanvas.prototype.onComplete=null;mxAsyncCanvas.prototype.incWaitCounter=function(){this.waitCounter++};
-mxAsyncCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxAsyncCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily};mxAsyncCanvas.prototype.rotate=function(a,c,d,b,e){};
+mxAsyncCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxAsyncCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily};mxAsyncCanvas.prototype.rotate=function(a,c,d,b,f){};
mxAsyncCanvas.prototype.setAlpha=function(a){this.state.alpha=a};mxAsyncCanvas.prototype.setFontColor=function(a){this.state.fontColor=a};mxAsyncCanvas.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxAsyncCanvas.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxAsyncCanvas.prototype.setFontSize=function(a){this.state.fontSize=a};
-mxAsyncCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxAsyncCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxAsyncCanvas.prototype.rect=function(a,c,d,b){};mxAsyncCanvas.prototype.roundrect=function(a,c,d,b,e,g){};mxAsyncCanvas.prototype.ellipse=function(a,c,d,b){};mxAsyncCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url="+encodeURIComponent(a);return a};
-mxAsyncCanvas.prototype.image=function(a,c,d,b,e,g,k,l){e=this.rewriteImageSource(e);a=this.htmlCanvas.images[e];null==a&&(a=new Image,a.onload=mxUtils.bind(this,function(){this.decWaitCounter()}),a.onerror=mxUtils.bind(this,function(){this.decWaitCounter()}),this.incWaitCounter(),this.htmlCanvas.images[e]=a,a.src=e)};mxAsyncCanvas.prototype.fill=function(){};mxAsyncCanvas.prototype.stroke=function(){};mxAsyncCanvas.prototype.fillAndStroke=function(){};
-mxAsyncCanvas.prototype.text=function(a,c,d,b,e,g,k,l,n,q,f,m){if(null!=e&&0!=e.length&&(a=this.state.scale,"html"==n&&"function"===typeof html2canvas)){this.incWaitCounter();var p=this.canvasIndex++;html2canvas(e,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[p]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null;
-mxJsCanvas.prototype.subCanvas=null;mxJsCanvas.prototype.canvasIndex=0;mxJsCanvas.prototype.hexToRgb=function(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,d,b,e){return d+d+b+b+e+e});return(a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a))?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null};mxJsCanvas.prototype.incWaitCounter=function(){this.waitCounter++};
+mxAsyncCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxAsyncCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxAsyncCanvas.prototype.rect=function(a,c,d,b){};mxAsyncCanvas.prototype.roundrect=function(a,c,d,b,f,g){};mxAsyncCanvas.prototype.ellipse=function(a,c,d,b){};mxAsyncCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url="+encodeURIComponent(a);return a};
+mxAsyncCanvas.prototype.image=function(a,c,d,b,f,g,k,l){f=this.rewriteImageSource(f);a=this.htmlCanvas.images[f];null==a&&(a=new Image,a.onload=mxUtils.bind(this,function(){this.decWaitCounter()}),a.onerror=mxUtils.bind(this,function(){this.decWaitCounter()}),this.incWaitCounter(),this.htmlCanvas.images[f]=a,a.src=f)};mxAsyncCanvas.prototype.fill=function(){};mxAsyncCanvas.prototype.stroke=function(){};mxAsyncCanvas.prototype.fillAndStroke=function(){};
+mxAsyncCanvas.prototype.text=function(a,c,d,b,f,g,k,l,n,q,e,m){if(null!=f&&0!=f.length&&(a=this.state.scale,"html"==n&&"function"===typeof html2canvas)){this.incWaitCounter();var p=this.canvasIndex++;html2canvas(f,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[p]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null;
+mxJsCanvas.prototype.subCanvas=null;mxJsCanvas.prototype.canvasIndex=0;mxJsCanvas.prototype.hexToRgb=function(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,d,b,f){return d+d+b+b+f+f});return(a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a))?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null};mxJsCanvas.prototype.incWaitCounter=function(){this.waitCounter++};
mxJsCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxJsCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily};
mxJsCanvas.prototype.save=function(){this.states.push(this.state);this.state=mxUtils.clone(this.state);this.ctx.save()};mxJsCanvas.prototype.restore=function(){this.state=this.states.pop();this.ctx.restore()};mxJsCanvas.prototype.scale=function(a){this.state.scale*=a;this.state.strokeWidth*=a;this.ctx.scale(a,a)};mxJsCanvas.prototype.translate=function(a,c){this.state.dx+=a;this.state.dy+=c;this.ctx.translate(a,c)};
-mxJsCanvas.prototype.rotate=function(a,c,d,b,e){b-=this.state.dx;e-=this.state.dy;this.ctx.translate(b,e);(c||d)&&this.ctx.scale(c?-1:1,d?-1:1);this.ctx.rotate(a*this.M_RAD_PER_DEG);this.ctx.translate(-b,-e)};mxJsCanvas.prototype.setAlpha=function(a){this.state.alpha=a;this.ctx.globalAlpha=a};mxJsCanvas.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fillColor=a;this.state.gradientColor=null;this.ctx.fillStyle=a};
-mxJsCanvas.prototype.setGradient=function(a,c,d,b,e,g,k,l,n){d=this.ctx.createLinearGradient(0,b,0,b+g);b=this.state;b.fillColor=a;b.fillAlpha=null!=l?l:1;b.gradientColor=c;b.gradientAlpha=null!=n?n:1;b.gradientDirection=k;a=this.hexToRgb(a);c=this.hexToRgb(c);null!=a&&d.addColorStop(0,"rgba("+a.r+","+a.g+","+a.b+","+b.fillAlpha+")");null!=c&&d.addColorStop(1,"rgba("+c.r+","+c.g+","+c.b+","+b.gradientAlpha+")");this.ctx.fillStyle=d};
+mxJsCanvas.prototype.rotate=function(a,c,d,b,f){b-=this.state.dx;f-=this.state.dy;this.ctx.translate(b,f);(c||d)&&this.ctx.scale(c?-1:1,d?-1:1);this.ctx.rotate(a*this.M_RAD_PER_DEG);this.ctx.translate(-b,-f)};mxJsCanvas.prototype.setAlpha=function(a){this.state.alpha=a;this.ctx.globalAlpha=a};mxJsCanvas.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fillColor=a;this.state.gradientColor=null;this.ctx.fillStyle=a};
+mxJsCanvas.prototype.setGradient=function(a,c,d,b,f,g,k,l,n){d=this.ctx.createLinearGradient(0,b,0,b+g);b=this.state;b.fillColor=a;b.fillAlpha=null!=l?l:1;b.gradientColor=c;b.gradientAlpha=null!=n?n:1;b.gradientDirection=k;a=this.hexToRgb(a);c=this.hexToRgb(c);null!=a&&d.addColorStop(0,"rgba("+a.r+","+a.g+","+a.b+","+b.fillAlpha+")");null!=c&&d.addColorStop(1,"rgba("+c.r+","+c.g+","+c.b+","+b.gradientAlpha+")");this.ctx.fillStyle=d};
mxJsCanvas.prototype.setStrokeColor=function(a){null!=a&&(a==mxConstants.NONE?(this.state.strokeColor=null,this.ctx.strokeStyle="rgba(0, 0, 0, 0)"):(this.ctx.strokeStyle=a,this.state.strokeColor=a))};mxJsCanvas.prototype.setStrokeWidth=function(a){this.ctx.lineWidth=a};mxJsCanvas.prototype.setDashed=function(a){if(this.state.dashed=a){a=this.state.dashPattern.split(" ");for(var c=0;c<a.length;c++)a[c]=parseInt(a[c],10);this.setLineDash(a)}else this.setLineDash([0])};
mxJsCanvas.prototype.setLineDash=function(a){try{"function"===typeof this.ctx.setLineDash&&this.ctx.setLineDash(a)}catch(c){}};mxJsCanvas.prototype.setDashPattern=function(a){this.state.dashPattern=a;if(this.state.dashed){a=a.split(" ");for(var c=0;c<a.length;c++)a[c]=parseInt(a[c],10);this.ctx.setLineDash(a)}};mxJsCanvas.prototype.setLineCap=function(a){this.ctx.lineCap=a};mxJsCanvas.prototype.setLineJoin=function(a){this.ctx.lineJoin=a};
mxJsCanvas.prototype.setMiterLimit=function(a){this.ctx.lineJoin=a};mxJsCanvas.prototype.setFontColor=function(a){this.ctx.fillStyle=a};mxJsCanvas.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxJsCanvas.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxJsCanvas.prototype.setFontSize=function(a){this.state.fontSize=a};
mxJsCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxJsCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxJsCanvas.prototype.setShadow=function(a){(this.state.shadow=a)?(this.setShadowOffset(this.state.shadowDx,this.state.shadowDy),this.setShadowAlpha(this.state.shadowAlpha)):(this.ctx.shadowColor="transparent",this.ctx.shadowBlur=0,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0)};
mxJsCanvas.prototype.setShadowColor=function(a){if(null==a||a==mxConstants.NONE)a=null,this.ctx.shadowColor="transparent";this.state.shadowColor=a;if(this.state.shadow&&null!=a){var c=null!=this.state.shadowAlpha?this.state.shadowAlpha:1;a=this.hexToRgb(a);this.ctx.shadowColor="rgba("+a.r+","+a.g+","+a.b+","+c+")"}};mxJsCanvas.prototype.setShadowAlpha=function(a){this.state.shadowAlpha=a;this.setShadowColor(this.state.shadowColor)};
mxJsCanvas.prototype.setShadowOffset=function(a,c){this.state.shadowDx=a;this.state.shadowDy=c;this.state.shadow&&(this.ctx.shadowOffsetX=a,this.ctx.shadowOffsetY=c)};mxJsCanvas.prototype.moveTo=function(a,c){this.ctx.moveTo(a,c);this.lastMoveX=a;this.lastMoveY=c};mxJsCanvas.prototype.lineTo=function(a,c){this.ctx.lineTo(a,c);this.lastMoveX=a;this.lastMoveY=c};mxJsCanvas.prototype.quadTo=function(a,c,d,b){this.ctx.quadraticCurveTo(a,c,d,b);this.lastMoveX=d;this.lastMoveY=b};
-mxJsCanvas.prototype.arcTo=function(a,c,d,b,e,g,k){a=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,a,c,d,b,e,g,k);if(null!=a)for(c=0;c<a.length;c+=6)this.curveTo(a[c],a[c+1],a[c+2],a[c+3],a[c+4],a[c+5])};mxJsCanvas.prototype.curveTo=function(a,c,d,b,e,g){this.ctx.bezierCurveTo(a,c,d,b,e,g);this.lastMoveX=e;this.lastMoveY=g};mxJsCanvas.prototype.rect=function(a,c,d,b){this.begin();this.moveTo(a,c);this.lineTo(a+d,c);this.lineTo(a+d,c+b);this.lineTo(a,c+b);this.close()};
-mxJsCanvas.prototype.roundrect=function(a,c,d,b,e,g){this.begin();this.moveTo(a+e,c);this.lineTo(a+d-e,c);this.quadTo(a+d,c,a+d,c+g);this.lineTo(a+d,c+b-g);this.quadTo(a+d,c+b,a+d-e,c+b);this.lineTo(a+e,c+b);this.quadTo(a,c+b,a,c+b-g);this.lineTo(a,c+g);this.quadTo(a,c,a+e,c)};mxJsCanvas.prototype.ellipse=function(a,c,d,b){this.ctx.save();this.ctx.translate(a+d/2,c+b/2);this.ctx.scale(d/2,b/2);this.ctx.beginPath();this.ctx.arc(0,0,1,0,2*Math.PI,!1);this.ctx.restore()};
+mxJsCanvas.prototype.arcTo=function(a,c,d,b,f,g,k){a=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,a,c,d,b,f,g,k);if(null!=a)for(c=0;c<a.length;c+=6)this.curveTo(a[c],a[c+1],a[c+2],a[c+3],a[c+4],a[c+5])};mxJsCanvas.prototype.curveTo=function(a,c,d,b,f,g){this.ctx.bezierCurveTo(a,c,d,b,f,g);this.lastMoveX=f;this.lastMoveY=g};mxJsCanvas.prototype.rect=function(a,c,d,b){this.begin();this.moveTo(a,c);this.lineTo(a+d,c);this.lineTo(a+d,c+b);this.lineTo(a,c+b);this.close()};
+mxJsCanvas.prototype.roundrect=function(a,c,d,b,f,g){this.begin();this.moveTo(a+f,c);this.lineTo(a+d-f,c);this.quadTo(a+d,c,a+d,c+g);this.lineTo(a+d,c+b-g);this.quadTo(a+d,c+b,a+d-f,c+b);this.lineTo(a+f,c+b);this.quadTo(a,c+b,a,c+b-g);this.lineTo(a,c+g);this.quadTo(a,c,a+f,c)};mxJsCanvas.prototype.ellipse=function(a,c,d,b){this.ctx.save();this.ctx.translate(a+d/2,c+b/2);this.ctx.scale(d/2,b/2);this.ctx.beginPath();this.ctx.arc(0,0,1,0,2*Math.PI,!1);this.ctx.restore()};
mxJsCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url="+encodeURIComponent(a);return a};
-mxJsCanvas.prototype.image=function(a,c,d,b,e,g,k,l){e=this.rewriteImageSource(e);e=this.images[e];if(null!=e&&0<e.height&&0<e.width){var n=this.ctx;n.save();if(g){g=e.width;var q=e.height,f=Math.min(d/g,b/q);a+=(d-g*f)/2;c+=(b-q*f)/2;d=g*f;b=q*f}k&&(n.translate(2*a+d,0),n.scale(-1,1));l&&(n.translate(0,2*c+b),n.scale(1,-1));n.drawImage(e,a,c,d,b);n.restore()}};mxJsCanvas.prototype.begin=function(){this.ctx.beginPath()};mxJsCanvas.prototype.close=function(){this.ctx.closePath()};
+mxJsCanvas.prototype.image=function(a,c,d,b,f,g,k,l){f=this.rewriteImageSource(f);f=this.images[f];if(null!=f&&0<f.height&&0<f.width){var n=this.ctx;n.save();if(g){g=f.width;var q=f.height,e=Math.min(d/g,b/q);a+=(d-g*e)/2;c+=(b-q*e)/2;d=g*e;b=q*e}k&&(n.translate(2*a+d,0),n.scale(-1,1));l&&(n.translate(0,2*c+b),n.scale(1,-1));n.drawImage(f,a,c,d,b);n.restore()}};mxJsCanvas.prototype.begin=function(){this.ctx.beginPath()};mxJsCanvas.prototype.close=function(){this.ctx.closePath()};
mxJsCanvas.prototype.fill=function(){this.ctx.fill()};mxJsCanvas.prototype.stroke=function(){this.ctx.stroke()};mxJsCanvas.prototype.fillAndStroke=function(){if(this.state.shadow){this.ctx.stroke();this.ctx.fill();var a=this.ctx.shadowColor,c=this.ctx.shadowOffsetX,d=this.ctx.shadowOffsetY;this.ctx.shadowColor="transparent";this.ctx.shadowOffsetX=0;this.ctx.shadowOffsetY=0;this.ctx.stroke();this.ctx.shadowColor=a;this.ctx.shadowOffsetX=c;this.ctx.shadowOffsetY=d}else this.ctx.fill(),this.ctx.stroke()};
-mxJsCanvas.prototype.text=function(a,c,d,b,e,g,k,l,n,q,f,m){if(null!=e&&0!=e.length){d=this.state.scale;0!=m&&(this.ctx.translate(Math.round(a),Math.round(c)),this.ctx.rotate(m*Math.PI/180),this.ctx.translate(Math.round(-a),Math.round(-c)));if("html"==n){e=this.subCanvas[this.canvasIndex++];n=e.height;m=e.width;switch(k){case mxConstants.ALIGN_MIDDLE:c-=n/2/d;break;case mxConstants.ALIGN_BOTTOM:c-=n/d}switch(g){case mxConstants.ALIGN_CENTER:a-=m/2/d;break;case mxConstants.ALIGN_RIGHT:a-=m/d}this.ctx.save();
-if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor)null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(Math.round(a)-.5,Math.round(c)-.5,Math.round(e.width/d),Math.round(e.height/d))),null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(Math.round(a)-.5,Math.round(c)-.5,Math.round(e.width/d),Math.round(e.height/d)));this.ctx.scale(1/d,1/d);this.ctx.drawImage(e,
-Math.round(a*d),Math.round(c*d))}else{this.ctx.save();this.updateFont();m=document.createElement("div");m.innerHTML=e;m.style.position="absolute";m.style.top="-9999px";m.style.left="-9999px";m.style.fontFamily=this.state.fontFamily;m.style.fontWeight="bold";m.style.fontSize=this.state.fontSize+"pt";document.body.appendChild(m);n=[m.offsetWidth,m.offsetHeight];document.body.removeChild(m);e=e.split("\n");m=n[1];this.ctx.textBaseline="top";n=c;switch(k){case mxConstants.ALIGN_MIDDLE:this.ctx.textBaseline=
-"middle";c-=(e.length-1)*m/2;n=c-this.state.fontSize/2;break;case mxConstants.ALIGN_BOTTOM:this.ctx.textBaseline="alphabetic",c-=m*(e.length-1),n=c-this.state.fontSize}k=[];m=[];for(d=0;d<e.length;d++)m[d]=a,k[d]=this.ctx.measureText(e[d]).width,null!=g&&g!=mxConstants.ALIGN_LEFT&&(m[d]-=k[d],g==mxConstants.ALIGN_CENTER&&(m[d]+=k[d]/2));if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor){a=m[0];g=k[0];for(d=1;d<e.length;d++)a=Math.min(a,m[d]),g=Math.max(g,k[d]);this.ctx.save();
-a=Math.round(a)-.5;n=Math.round(n)-.5;null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));this.ctx.restore()}for(d=0;d<e.length;d++)this.ctx.fillText(e[d],m[d],c),c+=this.state.fontSize*mxConstants.LINE_HEIGHT}this.ctx.restore()}};
+mxJsCanvas.prototype.text=function(a,c,d,b,f,g,k,l,n,q,e,m){if(null!=f&&0!=f.length){d=this.state.scale;0!=m&&(this.ctx.translate(Math.round(a),Math.round(c)),this.ctx.rotate(m*Math.PI/180),this.ctx.translate(Math.round(-a),Math.round(-c)));if("html"==n){f=this.subCanvas[this.canvasIndex++];n=f.height;m=f.width;switch(k){case mxConstants.ALIGN_MIDDLE:c-=n/2/d;break;case mxConstants.ALIGN_BOTTOM:c-=n/d}switch(g){case mxConstants.ALIGN_CENTER:a-=m/2/d;break;case mxConstants.ALIGN_RIGHT:a-=m/d}this.ctx.save();
+if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor)null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(Math.round(a)-.5,Math.round(c)-.5,Math.round(f.width/d),Math.round(f.height/d))),null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(Math.round(a)-.5,Math.round(c)-.5,Math.round(f.width/d),Math.round(f.height/d)));this.ctx.scale(1/d,1/d);this.ctx.drawImage(f,
+Math.round(a*d),Math.round(c*d))}else{this.ctx.save();this.updateFont();m=document.createElement("div");m.innerHTML=f;m.style.position="absolute";m.style.top="-9999px";m.style.left="-9999px";m.style.fontFamily=this.state.fontFamily;m.style.fontWeight="bold";m.style.fontSize=this.state.fontSize+"pt";document.body.appendChild(m);n=[m.offsetWidth,m.offsetHeight];document.body.removeChild(m);f=f.split("\n");m=n[1];this.ctx.textBaseline="top";n=c;switch(k){case mxConstants.ALIGN_MIDDLE:this.ctx.textBaseline=
+"middle";c-=(f.length-1)*m/2;n=c-this.state.fontSize/2;break;case mxConstants.ALIGN_BOTTOM:this.ctx.textBaseline="alphabetic",c-=m*(f.length-1),n=c-this.state.fontSize}k=[];m=[];for(d=0;d<f.length;d++)m[d]=a,k[d]=this.ctx.measureText(f[d]).width,null!=g&&g!=mxConstants.ALIGN_LEFT&&(m[d]-=k[d],g==mxConstants.ALIGN_CENTER&&(m[d]+=k[d]/2));if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor){a=m[0];g=k[0];for(d=1;d<f.length;d++)a=Math.min(a,m[d]),g=Math.max(g,k[d]);this.ctx.save();
+a=Math.round(a)-.5;n=Math.round(n)-.5;null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*f.length));null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*f.length));this.ctx.restore()}for(d=0;d<f.length;d++)this.ctx.fillText(f[d],m[d],c),c+=this.state.fontSize*mxConstants.LINE_HEIGHT}this.ctx.restore()}};
mxJsCanvas.prototype.getCanvas=function(){return canvas};mxJsCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};DrawioClient=function(a,c){mxEventSource.call(this);this.ui=a;this.cookieName=c;this.token=this.getPersistentToken()};mxUtils.extend(DrawioClient,mxEventSource);DrawioClient.prototype.token=null;DrawioClient.prototype.user=null;DrawioClient.prototype.setUser=function(a){this.user=a;this.fireEvent(new mxEventObject("userChanged"))};DrawioClient.prototype.getUser=function(){return this.user};
DrawioClient.prototype.clearPersistentToken=function(){if(isLocalStorage)localStorage.removeItem("."+this.cookieName),sessionStorage.removeItem("."+this.cookieName);else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie=this.cookieName+"=; expires="+a.toUTCString()}};
DrawioClient.prototype.getPersistentToken=function(a){var c=null;isLocalStorage&&(c=localStorage.getItem("."+this.cookieName),null==c&&a&&(c=sessionStorage.getItem("."+this.cookieName)));if(null==c&&"undefined"!=typeof Storage){var d=document.cookie;a=this.cookieName+"=";var b=d.indexOf(a);0<=b&&(b+=a.length,c=d.indexOf(";",b),0>c?c=d.length:postCookie=d.substring(c),c=d.substring(b,c),c=0<c.length?c:null,null!=c&&isLocalStorage&&(d=new Date,d.setYear(d.getFullYear()-1),document.cookie=a+"; expires="+
-d.toUTCString(),localStorage.setItem("."+this.cookieName,c)))}return c};DrawioClient.prototype.setPersistentToken=function(a,c){try{if(null!=a)if(isLocalStorage)c?sessionStorage.setItem("."+this.cookieName,a):localStorage.setItem("."+this.cookieName,a);else{if("undefined"!=typeof Storage){var d=new Date;d.setYear(d.getFullYear()+10);var b=this.cookieName+"="+a+"; path=/"+(c?"":"; expires="+d.toUTCString());"https"==document.location.protocol.toLowerCase()&&(b+=";secure");document.cookie=b}}else this.clearPersistentToken()}catch(e){this.ui.handleError(e)}};DrawioUser=function(a,c,d,b,e){this.id=a;this.email=c;this.displayName=d;this.pictureUrl=b;this.locale=e};DriveFile=function(a,c,d){DrawioFile.call(this,a,c);this.desc=d};mxUtils.extend(DriveFile,DrawioFile);DriveFile.prototype.autosaveDelay=2500;DriveFile.prototype.saveDelay=0;DriveFile.prototype.allChangesSavedKey="allChangesSavedInDrive";DriveFile.prototype.getSize=function(){return this.desc.fileSize};DriveFile.prototype.isRestricted=function(){return null!=this.desc.userPermission&&null!=this.desc.labels&&"reader"==this.desc.userPermission.role&&this.desc.labels.restricted};
+d.toUTCString(),localStorage.setItem("."+this.cookieName,c)))}return c};DrawioClient.prototype.setPersistentToken=function(a,c){try{if(null!=a)if(isLocalStorage)c?sessionStorage.setItem("."+this.cookieName,a):localStorage.setItem("."+this.cookieName,a);else{if("undefined"!=typeof Storage){var d=new Date;d.setYear(d.getFullYear()+10);var b=this.cookieName+"="+a+"; path=/"+(c?"":"; expires="+d.toUTCString());"https"==document.location.protocol.toLowerCase()&&(b+=";secure");document.cookie=b}}else this.clearPersistentToken()}catch(f){this.ui.handleError(f)}};DrawioUser=function(a,c,d,b,f){this.id=a;this.email=c;this.displayName=d;this.pictureUrl=b;this.locale=f};DriveFile=function(a,c,d){DrawioFile.call(this,a,c);this.desc=d};mxUtils.extend(DriveFile,DrawioFile);DriveFile.prototype.autosaveDelay=2500;DriveFile.prototype.saveDelay=0;DriveFile.prototype.allChangesSavedKey="allChangesSavedInDrive";DriveFile.prototype.getSize=function(){return this.desc.fileSize};DriveFile.prototype.isRestricted=function(){return null!=this.desc.userPermission&&null!=this.desc.labels&&"reader"==this.desc.userPermission.role&&this.desc.labels.restricted};
DriveFile.prototype.isConflict=function(a){return null!=a&&null!=a.error&&412==a.error.code};DriveFile.prototype.getCurrentUser=function(){return null!=this.ui.drive?this.ui.drive.user:null};DriveFile.prototype.getMode=function(){return App.MODE_GOOGLE};
DriveFile.prototype.getPublicUrl=function(a){this.ui.drive.executeRequest({url:"/files/"+this.desc.id+"/permissions?supportsTeamDrives=true"},mxUtils.bind(this,function(c){if(null!=c&&null!=c.items)for(var d=0;d<c.items.length;d++)if("anyoneWithLink"===c.items[d].id||"anyone"===c.items[d].id){a(this.desc.webContentLink);return}a(null)}),mxUtils.bind(this,function(){a(null)}))};DriveFile.prototype.isAutosaveOptional=function(){return!0};
-DriveFile.prototype.isRenamable=function(){return this.isEditable()&&DrawioFile.prototype.isEditable.apply(this,arguments)};DriveFile.prototype.isMovable=function(){return this.isEditable()};DriveFile.prototype.isTrashed=function(){return this.desc.labels.trashed};DriveFile.prototype.save=function(a,c,d,b,e){DrawioFile.prototype.save.apply(this,[a,mxUtils.bind(this,function(){this.saveFile(null,a,c,d,b,e)}),d,b,e])};
-DriveFile.prototype.saveFile=function(a,c,d,b,e,g){try{if(!this.isEditable())null!=d&&d();else if(!this.savingFile){var k=mxUtils.bind(this,function(a,g){var l=null,f=null;try{l=this.isModified;f=this.isModified();this.setModified(!1);this.savingFileTime=new Date;this.savingFile=!0;this.isModified=function(){return!0};var m=this.desc;this.ui.drive.saveFile(this,g,mxUtils.bind(this,function(a,e){try{this.savingFile=!1,this.isModified=l,0!=a?(c&&(this.lastAutosaveRevision=(new Date).getTime()),this.autosaveDelay=
-Math.min(8E3,Math.max(this.saveDelay+500,DriveFile.prototype.autosaveDelay)),this.desc=a,this.fileSaved(e,m,mxUtils.bind(this,function(){this.contentChanged();null!=d&&d(a)}),b)):(this.setModified(f||this.isModified()),null!=b&&b(a))}catch(v){if(this.setModified(f||this.isModified()),null!=b)b(v);else throw v;}}),mxUtils.bind(this,function(c,d){try{this.savingFile=!1,this.isModified=l,this.setModified(f||this.isModified()),this.isConflict(c)?(this.inConflictState=!0,null!=this.sync?(this.savingFile=
-!0,this.savingFileTime=new Date,this.sync.fileConflict(d,mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){this.updateFileData();k(a,!0)}),100+500*Math.random())}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}))):null!=b&&b()):null!=b&&b(c)}catch(v){if(this.setModified(f||this.isModified()),null!=b)b(v);else throw v;}}),e,e,a)}catch(p){if(this.savingFile=!1,null!=l&&(this.isModified=l),null!=f&&this.setModified(f||this.isModified()),null!=b)b(p);else throw p;
+DriveFile.prototype.isRenamable=function(){return this.isEditable()&&DrawioFile.prototype.isEditable.apply(this,arguments)};DriveFile.prototype.isMovable=function(){return this.isEditable()};DriveFile.prototype.isTrashed=function(){return this.desc.labels.trashed};DriveFile.prototype.save=function(a,c,d,b,f){DrawioFile.prototype.save.apply(this,[a,mxUtils.bind(this,function(){this.saveFile(null,a,c,d,b,f)}),d,b,f])};
+DriveFile.prototype.saveFile=function(a,c,d,b,f,g){try{if(!this.isEditable())null!=d&&d();else if(!this.savingFile){var k=mxUtils.bind(this,function(a,g){var l=null,e=null;try{l=this.isModified;e=this.isModified();this.setModified(!1);this.savingFileTime=new Date;this.savingFile=!0;this.isModified=function(){return!0};var m=this.desc;this.ui.drive.saveFile(this,g,mxUtils.bind(this,function(a,f){try{this.savingFile=!1,this.isModified=l,0!=a?(c&&(this.lastAutosaveRevision=(new Date).getTime()),this.autosaveDelay=
+Math.min(8E3,Math.max(this.saveDelay+500,DriveFile.prototype.autosaveDelay)),this.desc=a,this.fileSaved(f,m,mxUtils.bind(this,function(){this.contentChanged();null!=d&&d(a)}),b)):(this.setModified(e||this.isModified()),null!=b&&b(a))}catch(v){if(this.setModified(e||this.isModified()),null!=b)b(v);else throw v;}}),mxUtils.bind(this,function(c,d){try{this.savingFile=!1,this.isModified=l,this.setModified(e||this.isModified()),this.isConflict(c)?(this.inConflictState=!0,null!=this.sync?(this.savingFile=
+!0,this.savingFileTime=new Date,this.sync.fileConflict(d,mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){this.updateFileData();k(a,!0)}),100+500*Math.random())}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}))):null!=b&&b()):null!=b&&b(c)}catch(v){if(this.setModified(e||this.isModified()),null!=b)b(v);else throw v;}}),f,f,a)}catch(p){if(this.savingFile=!1,null!=l&&(this.isModified=l),null!=e&&this.setModified(e||this.isModified()),null!=b)b(p);else throw p;
}});k(g,c)}}catch(l){if(null!=b)b(l);else throw l;}};DriveFile.prototype.copyFile=function(a,c){this.isRestricted()?DrawioFile.prototype.copyFile.apply(this,arguments):this.makeCopy(mxUtils.bind(this,function(){if(this.ui.spinner.spin(document.body,mxResources.get("saving")))try{this.save(!0,a,c)}catch(d){c(d)}}),c,!0)};
DriveFile.prototype.makeCopy=function(a,c,d){this.ui.spinner.spin(document.body,mxResources.get("saving"))&&this.saveAs(this.ui.getCopyFilename(this,d),mxUtils.bind(this,function(b){this.desc=b;this.ui.spinner.stop();this.setModified(!1);this.backupPatch=null;this.inConflictState=this.invalidChecksum=!1;this.descriptorChanged();a()}),mxUtils.bind(this,function(){this.ui.spinner.stop();null!=c&&c()}))};DriveFile.prototype.saveAs=function(a,c,d){this.ui.drive.copyFile(this.getId(),a,c,d)};
-DriveFile.prototype.rename=function(a,c,d){var b=this.getCurrentEtag();this.ui.drive.renameFile(this.getId(),a,mxUtils.bind(this,function(e){this.hasSameExtension(a,this.getTitle())?(this.desc=e,this.descriptorChanged(),null!=this.sync&&this.sync.descriptorChanged(b),null!=c&&c(e)):(this.desc=e,null!=this.sync&&this.sync.descriptorChanged(b),this.save(!0,c,d))}),d)};
+DriveFile.prototype.rename=function(a,c,d){var b=this.getCurrentEtag();this.ui.drive.renameFile(this.getId(),a,mxUtils.bind(this,function(f){this.hasSameExtension(a,this.getTitle())?(this.desc=f,this.descriptorChanged(),null!=this.sync&&this.sync.descriptorChanged(b),null!=c&&c(f)):(this.desc=f,null!=this.sync&&this.sync.descriptorChanged(b),this.save(!0,c,d))}),d)};
DriveFile.prototype.move=function(a,c,d){this.ui.drive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.desc=a;this.descriptorChanged();null!=c&&c(a)}),d)};DriveFile.prototype.getTitle=function(){return this.desc.title};DriveFile.prototype.getHash=function(){return"G"+this.getId()};DriveFile.prototype.getId=function(){return this.desc.id};DriveFile.prototype.isEditable=function(){return DrawioFile.prototype.isEditable.apply(this,arguments)&&this.desc.editable};
DriveFile.prototype.isSyncSupported=function(){return!0};DriveFile.prototype.isRevisionHistorySupported=function(){return!0};
DriveFile.prototype.getRevisions=function(a,c){this.ui.drive.executeRequest({url:"/files/"+this.getId()+"/revisions"},mxUtils.bind(this,function(c){for(var b=0;b<c.items.length;b++)mxUtils.bind(this,function(a){a.title=a.originalFilename;a.getXml=mxUtils.bind(this,function(b,c){this.ui.drive.getXmlFile(a,mxUtils.bind(this,function(a){b(a.getData())}),c)});a.getUrl=mxUtils.bind(this,function(b){return this.ui.getUrl(window.location.pathname+"?rev="+a.id+"&chrome=0&nav=1&layers=1&edit=_blank"+(null!=
@@ -8969,8 +8975,8 @@ b?"&page="+b:""))+window.location.hash})})(c.items[b]);a(c.items)}),c)};DriveFil
DriveFile.prototype.getDescriptor=function(){return this.desc};DriveFile.prototype.setDescriptor=function(a){this.desc=a};DriveFile.prototype.getDescriptorSecret=function(a){return this.ui.drive.getCustomProperty(a,"secret")};DriveFile.prototype.setDescriptorRevisionId=function(a,c){a.headRevisionId=c};DriveFile.prototype.getDescriptorRevisionId=function(a){return a.headRevisionId};DriveFile.prototype.getDescriptorEtag=function(a){return a.etag};
DriveFile.prototype.setDescriptorEtag=function(a,c){a.etag=c};DriveFile.prototype.loadPatchDescriptor=function(a,c){this.ui.drive.executeRequest({url:"/files/"+this.getId()+"?supportsTeamDrives=true&fields="+this.ui.drive.catchupFields},mxUtils.bind(this,function(c){a(c)}),c)};DriveFile.prototype.patchDescriptor=function(a,c){DrawioFile.prototype.patchDescriptor.apply(this,arguments);a.headRevisionId=c.headRevisionId;a.modifiedDate=c.modifiedDate};
DriveFile.prototype.loadDescriptor=function(a,c){this.ui.drive.loadDescriptor(this.getId(),a,c)};DriveFile.prototype.commentsSupported=function(){return!0};
-DriveFile.prototype.getComments=function(a,c){function d(a,c,k){if(c.deleted)return null;k=new DriveComment(a,c.commentId||c.replyId,c.content,c.modifiedDate,c.createdDate,"resolved"==c.status,c.author.isAuthenticatedUser?b:new DrawioUser(c.author.permissionId,c.author.emailAddress,c.author.displayName,c.author.picture.url),k);for(var e=0;null!=c.replies&&e<c.replies.length;e++)k.addReplyDirect(d(a,c.replies[e],c.commentId));return k}var b=this.ui.getCurrentUser();this.ui.drive.executeRequest({url:"/files/"+
-this.getId()+"/comments"},mxUtils.bind(this,function(b){for(var c=[],e=0;e<b.items.length;e++){var l=d(this,b.items[e]);null!=l&&c.push(l)}a(c)}),c)};DriveFile.prototype.addComment=function(a,c,d){a={content:a.content};this.ui.drive.executeRequest({url:"/files/"+this.getId()+"/comments",method:"POST",params:a},mxUtils.bind(this,function(a){c(a.commentId)}),d)};DriveFile.prototype.canReplyToReplies=function(){return!1};DriveFile.prototype.canComment=function(){return this.desc.canComment};
+DriveFile.prototype.getComments=function(a,c){function d(a,c,k){if(c.deleted)return null;k=new DriveComment(a,c.commentId||c.replyId,c.content,c.modifiedDate,c.createdDate,"resolved"==c.status,c.author.isAuthenticatedUser?b:new DrawioUser(c.author.permissionId,c.author.emailAddress,c.author.displayName,c.author.picture.url),k);for(var f=0;null!=c.replies&&f<c.replies.length;f++)k.addReplyDirect(d(a,c.replies[f],c.commentId));return k}var b=this.ui.getCurrentUser();this.ui.drive.executeRequest({url:"/files/"+
+this.getId()+"/comments"},mxUtils.bind(this,function(b){for(var c=[],f=0;f<b.items.length;f++){var l=d(this,b.items[f]);null!=l&&c.push(l)}a(c)}),c)};DriveFile.prototype.addComment=function(a,c,d){a={content:a.content};this.ui.drive.executeRequest({url:"/files/"+this.getId()+"/comments",method:"POST",params:a},mxUtils.bind(this,function(a){c(a.commentId)}),d)};DriveFile.prototype.canReplyToReplies=function(){return!1};DriveFile.prototype.canComment=function(){return this.desc.canComment};
DriveFile.prototype.newComment=function(a,c){return new DriveComment(this,null,a,Date.now(),Date.now(),!1,c)};DriveLibrary=function(a,c,d){DriveFile.call(this,a,c,d)};mxUtils.extend(DriveLibrary,DriveFile);DriveLibrary.prototype.isAutosave=function(){return!0};DriveLibrary.prototype.save=function(a,c,d){this.ui.drive.saveFile(this,a,mxUtils.bind(this,function(a){this.desc=a;null!=c&&c(a)}),d)};DriveLibrary.prototype.open=function(){};DriveClient=function(a){mxEventSource.call(this);DrawioClient.call(this,a,"gDriveAuthInfo");this.ui=a;this.xmlMimeType="application/vnd.jgraph.mxfile";this.mimeType="application/vnd.jgraph.mxfile.realtime";this.ui.editor.chromeless&&!this.ui.editor.editable&&"1"!=urlParams.rt?(this.cookieName="gDriveViewerAuthInfo",this.token=this.getPersistentToken(),this.appId=window.DRAWIO_GOOGLE_VIEWER_APP_ID||"850530949725",this.clientId=window.DRAWIO_GOOGLE_VIEWER_CLIENT_ID||"850530949725.apps.googleusercontent.com",
this.scopes=["https://www.googleapis.com/auth/drive.readonly","https://www.googleapis.com/auth/userinfo.profile"],this.appIndex=0):(this.appId=window.DRAWIO_GOOGLE_APP_ID||"671128082532",this.clientId=window.DRAWIO_GOOGLE_CLIENT_ID||"671128082532-jhphbq6d0e1gnsus9mn7vf8a6fjn10mp.apps.googleusercontent.com",this.appIndex=1);this.mimeTypes=this.xmlMimeType+"application/mxe,application/mxr,application/vnd.jgraph.mxfile.realtime,application/vnd.jgraph.mxfile.rtlegacy";"1"==urlParams.photos&&this.scopes.push("https://www.googleapis.com/auth/photos.upload");
a=JSON.parse(this.token);if(null!=a&&null!=a.current){a=a.current;this.userId=a.userId;this.token=a.access_token;var c=(a.expires-Date.now())/1E3;a.expires_in=600>c?1:c;this.resetTokenRefresh(a);this.authCalled=!1}};mxUtils.extend(DriveClient,mxEventSource);mxUtils.extend(DriveClient,DrawioClient);DriveClient.prototype.redirectUri=window.location.protocol+"//"+window.location.host+"/google";DriveClient.prototype.GDriveBaseUrl="https://www.googleapis.com/drive/v2";
@@ -8982,48 +8988,48 @@ DriveClient.prototype.setUser=function(a){this.user=a;null==this.user?(this.user
DriveClient.prototype.getUsersList=function(){var a=[],c=JSON.parse(this.getPersistentToken(!0)),d=null;if(null!=c){null!=c.current&&(d=c.current.userId,a.push(c[d].user),a[0].isCurrent=!0);for(var b in c)"current"!=b&&b!=d&&a.push(c[b].user)}return a};DriveClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};
DriveClient.prototype.execute=function(a){var c=mxUtils.bind(this,function(c){this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(b,c){this.authorize(!1,mxUtils.bind(this,function(){null!=c&&c();a()}),mxUtils.bind(this,function(a){var b=mxResources.get("cannotLogin");null!=a&&null!=a.error&&403==a.error.code&&null!=a.error.data&&0<a.error.data.length&&"domainPolicy"==a.error.data[0].reason&&(b=a.error.message);this.logout();this.ui.showError(mxResources.get("error"),b,mxResources.get("help"),
mxUtils.bind(this,function(){this.ui.openLink("https://desk.draw.io/support/solutions/articles/16000074659")}),null,mxResources.get("ok"))}),b)}))});this.authorize(!0,a,c)};
-DriveClient.prototype.executeRequest=function(a,c,d){try{var b=!0,e=null,g=0;null!=this.requestThread&&window.clearTimeout(this.requestThread);var k=mxUtils.bind(this,function(){try{this.requestThread=null;this.currentRequest=a;null!=e&&window.clearTimeout(e);e=window.setTimeout(mxUtils.bind(this,function(){b=!1;null!=d&&d({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout"),retry:k})}),this.ui.timeout);var l=null,n=!1;"string"===typeof a.params?l=a.params:null!=a.params&&(l=JSON.stringify(a.params),
-n=!0);var q=a.fullUrl||this.GDriveBaseUrl+a.url;n&&(q+=(0<q.indexOf("?")?"&":"?")+"alt=json");var f=new mxXmlRequest(q,l,a.method||"GET");f.setRequestHeaders=mxUtils.bind(this,function(b,c){if(null!=a.headers)for(var d in a.headers)b.setRequestHeader(d,a.headers[d]);else null!=a.contentType?b.setRequestHeader("Content-Type",a.contentType):n&&b.setRequestHeader("Content-Type","application/json");b.setRequestHeader("Authorization","Bearer "+this.token)});f.send(mxUtils.bind(this,function(f){try{if(window.clearTimeout(e),
-b){var l;try{l=JSON.parse(f.getText())}catch(t){l=null}if(200<=f.getStatus()&&299>=f.getStatus())null!=c&&c(l);else{var m=null!=l&&null!=l.error?null!=l.error.data?l.error.data:l.error.errors:null,n=null!=m&&0<m.length?m[0].reason:null;null==d||null==l||null==l.error||-1!=l.error.code&&(403!=l.error.code||"domainPolicy"!=n&&"The requested mime type change is forbidden."!=l.error.message)?null!=l&&null!=l.error&&(401==l.error.code||403==l.error.code&&"rateLimitExceeded"!=n)?403==l.error.code&&this.retryAuth||
+DriveClient.prototype.executeRequest=function(a,c,d){try{var b=!0,f=null,g=0;null!=this.requestThread&&window.clearTimeout(this.requestThread);var k=mxUtils.bind(this,function(){try{this.requestThread=null;this.currentRequest=a;null!=f&&window.clearTimeout(f);f=window.setTimeout(mxUtils.bind(this,function(){b=!1;null!=d&&d({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout"),retry:k})}),this.ui.timeout);var l=null,n=!1;"string"===typeof a.params?l=a.params:null!=a.params&&(l=JSON.stringify(a.params),
+n=!0);var q=a.fullUrl||this.GDriveBaseUrl+a.url;n&&(q+=(0<q.indexOf("?")?"&":"?")+"alt=json");var e=new mxXmlRequest(q,l,a.method||"GET");e.setRequestHeaders=mxUtils.bind(this,function(b,c){if(null!=a.headers)for(var d in a.headers)b.setRequestHeader(d,a.headers[d]);else null!=a.contentType?b.setRequestHeader("Content-Type",a.contentType):n&&b.setRequestHeader("Content-Type","application/json");b.setRequestHeader("Authorization","Bearer "+this.token)});e.send(mxUtils.bind(this,function(e){try{if(window.clearTimeout(f),
+b){var l;try{l=JSON.parse(e.getText())}catch(t){l=null}if(200<=e.getStatus()&&299>=e.getStatus())null!=c&&c(l);else{var m=null!=l&&null!=l.error?null!=l.error.data?l.error.data:l.error.errors:null,n=null!=m&&0<m.length?m[0].reason:null;null==d||null==l||null==l.error||-1!=l.error.code&&(403!=l.error.code||"domainPolicy"!=n&&"The requested mime type change is forbidden."!=l.error.message)?null!=l&&null!=l.error&&(401==l.error.code||403==l.error.code&&"rateLimitExceeded"!=n)?403==l.error.code&&this.retryAuth||
401==l.error.code&&this.retryAuth&&"authError"==n?(null!=d&&d(l),this.retryAuth=!1):(this.retryAuth=!0,this.execute(k)):null!=l&&null!=l.error&&412!=l.error.code&&404!=l.error.code&&400!=l.error.code&&this.currentRequest==a&&g<this.maxRetries?(g++,this.requestThread=window.setTimeout(k,Math.round(Math.pow(2,g)*(1+.1*(Math.random()-.5))*this.coolOff))):null!=d&&d(l):d(l)}}}catch(t){if(null!=d)d(t);else throw t;}}))}catch(m){if(null!=d)d(m);else throw m;}});null!=this.token&&this.authCalled?k():this.execute(k)}catch(l){if(null!=
d)d(l);else throw l;}};DriveClient.prototype.createAuthWin=function(a){return window.open(a?a:"about:blank","gdauth",["width=525,height=525","top="+(window.screenY+Math.max(window.outerHeight-525,0)/2),"left="+(window.screenX+Math.max(window.outerWidth-525,0)/2),"status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes"].join())};
-DriveClient.prototype.authorize=function(a,c,d,b,e){var g=mxUtils.bind(this,function(a,b,e){this.token=a.access_token;a.expires=Date.now()+1E3*parseInt(a.expires_in);a.remember=b;this.resetTokenRefresh(a);this.authCalled=!0;if(e||null==this.user){var f=JSON.stringify(a);this.updateUser(mxUtils.bind(this,function(){var a=JSON.parse(f);this.setPersistentToken(a,!b);null!=c&&c()}),d)}else null!=c&&(this.setPersistentToken(a,!b),c())});try{null!=this.ui.stateArg&&null!=this.ui.stateArg.userId&&(this.userId=
+DriveClient.prototype.authorize=function(a,c,d,b,f){var g=mxUtils.bind(this,function(a,b,e){this.token=a.access_token;a.expires=Date.now()+1E3*parseInt(a.expires_in);a.remember=b;this.resetTokenRefresh(a);this.authCalled=!0;if(e||null==this.user){var f=JSON.stringify(a);this.updateUser(mxUtils.bind(this,function(){var a=JSON.parse(f);this.setPersistentToken(a,!b);null!=c&&c()}),d)}else null!=c&&(this.setPersistentToken(a,!b),c())});try{null!=this.ui.stateArg&&null!=this.ui.stateArg.userId&&(this.userId=
this.ui.stateArg.userId,null!=this.user&&this.user.id!=this.userId&&(this.user=null));var k=JSON.parse(this.getPersistentToken(!0));null!=k&&(null==this.userId?null!=k.current?(this.userId=k.current.userId,k=k[this.userId]):k=null:k=k[this.userId]);if(!a||null!=k&&null!=k.refresh_token)if(a)(new mxXmlRequest(this.redirectUri+"?state=appIndex%3D"+this.appIndex+"&refresh_token="+k.refresh_token,null,"GET")).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?(a=JSON.parse(a.getText()),
-a.refresh_token=k.refresh_token,g(a,!0)):(0!=a.getStatus()&&this.logout(),null!=d&&d(a))}),d);else{var l="https://accounts.google.com/o/oauth2/v2/auth?client_id="+this.clientId+"&redirect_uri="+encodeURIComponent(this.redirectUri)+"&response_type=code&include_granted_scopes=true"+(b?"&access_type=offline&prompt=consent%20select_account":"")+"&scope="+encodeURIComponent(this.scopes.join(" "))+"&state=appIndex%3D"+this.appIndex;null==e?e=this.createAuthWin(l):e.location=l;null!=e&&(window.onGoogleDriveCallback=
-mxUtils.bind(this,function(a,c){window.onGoogleDriveCallback=null;try{null==a?null!=d&&d({message:mxResources.get("accessDenied")}):g(a,b,!0)}catch(f){null!=d&&d(f)}finally{null!=c&&c.close()}}),e.focus())}else null!=d&&d()}catch(n){if(null!=d)d(n);else throw n;}};
+a.refresh_token=k.refresh_token,g(a,!0)):(0!=a.getStatus()&&this.logout(),null!=d&&d(a))}),d);else{var l="https://accounts.google.com/o/oauth2/v2/auth?client_id="+this.clientId+"&redirect_uri="+encodeURIComponent(this.redirectUri)+"&response_type=code&include_granted_scopes=true"+(b?"&access_type=offline&prompt=consent%20select_account":"")+"&scope="+encodeURIComponent(this.scopes.join(" "))+"&state=appIndex%3D"+this.appIndex;null==f?f=this.createAuthWin(l):f.location=l;null!=f&&(window.onGoogleDriveCallback=
+mxUtils.bind(this,function(a,c){window.onGoogleDriveCallback=null;try{null==a?null!=d&&d({message:mxResources.get("accessDenied")}):g(a,b,!0)}catch(e){null!=d&&d(e)}finally{null!=c&&c.close()}}),f.focus())}else null!=d&&d()}catch(n){if(null!=d)d(n);else throw n;}};
DriveClient.prototype.resetTokenRefresh=function(a){null!=this.tokenRefreshThread&&(window.clearTimeout(this.tokenRefreshThread),this.tokenRefreshThread=null);null!=a&&null==a.error&&0<a.expires_in&&(this.tokenRefreshInterval=1E3*parseInt(a.expires_in),this.lastTokenRefresh=(new Date).getTime(),this.tokenRefreshThread=window.setTimeout(mxUtils.bind(this,function(){this.authorize(!0,mxUtils.bind(this,function(){}),mxUtils.bind(this,function(){}))}),900*a.expires_in))};
DriveClient.prototype.checkToken=function(a){var c=0<this.lastTokenRefresh;(new Date).getTime()-this.lastTokenRefresh>this.tokenRefreshInterval||null==this.tokenRefreshThread?this.execute(mxUtils.bind(this,function(){a();c&&this.fireEvent(new mxEventObject("disconnected"))})):a()};
-DriveClient.prototype.updateUser=function(a,c){try{this.ui.loadUrl("https://www.googleapis.com/oauth2/v2/userinfo?alt=json&access_token="+this.token,mxUtils.bind(this,function(d){var b=JSON.parse(d);this.executeRequest({url:"/about"},mxUtils.bind(this,function(c){var d=mxResources.get("notAvailable"),e=d,l=null;null!=c&&null!=c.user&&(d=c.user.emailAddress,e=c.user.displayName,l=null!=c.user.picture?c.user.picture.url:null);this.setUser(new DrawioUser(b.id,d,e,l,b.locale));this.userId=b.id;null!=
+DriveClient.prototype.updateUser=function(a,c){try{this.ui.loadUrl("https://www.googleapis.com/oauth2/v2/userinfo?alt=json&access_token="+this.token,mxUtils.bind(this,function(d){var b=JSON.parse(d);this.executeRequest({url:"/about"},mxUtils.bind(this,function(c){var d=mxResources.get("notAvailable"),f=d,l=null;null!=c&&null!=c.user&&(d=c.user.emailAddress,f=c.user.displayName,l=null!=c.user.picture?c.user.picture.url:null);this.setUser(new DrawioUser(b.id,d,f,l,b.locale));this.userId=b.id;null!=
a&&a()}),c)}),c)}catch(d){if(null!=c)c(d);else throw d;}};DriveClient.prototype.copyFile=function(a,c,d,b){null!=a&&null!=c&&this.executeRequest({url:"/files/"+a+"/copy?fields="+encodeURIComponent(this.allFields)+"&supportsTeamDrives=true",method:"POST",params:{title:c,properties:[{key:"channel",value:Editor.guid()}]}},d,b)};DriveClient.prototype.renameFile=function(a,c,d,b){null!=a&&null!=c&&this.executeRequest(this.createDriveRequest(a,{title:c}),d,b)};
DriveClient.prototype.moveFile=function(a,c,d,b){null!=a&&null!=c&&this.executeRequest(this.createDriveRequest(a,{parents:[{kind:"drive#fileLink",id:c}]}),d,b)};DriveClient.prototype.createDriveRequest=function(a,c){return{url:"/files/"+a+"?uploadType=multipart&supportsTeamDrives=true",method:"PUT",contentType:"application/json; charset=UTF-8",params:c}};DriveClient.prototype.getLibrary=function(a,c,d){return this.getFile(a,c,d,!0,!0)};
-DriveClient.prototype.loadDescriptor=function(a,c,d,b){this.executeRequest({url:"/files/"+a+"?supportsTeamDrives=true&fields="+(null!=b?b:this.allFields)},c,d)};DriveClient.prototype.getCustomProperty=function(a,c){var d=a.properties,b=null;if(null!=d)for(var e=0;e<d.length;e++)if(d[e].key==c){b=d[e].value;break}return b};
-DriveClient.prototype.getFile=function(a,c,d,b,e){b=null!=b?b:!1;e=null!=e?e:!1;null!=urlParams.rev?this.executeRequest({url:"/files/"+a+"/revisions/"+urlParams.rev+"?supportsTeamDrives=true"},mxUtils.bind(this,function(b){b.title=b.originalFilename;b.headRevisionId=b.id;b.id=a;this.getXmlFile(b,c,d)}),d):this.loadDescriptor(a,mxUtils.bind(this,function(a){try{if(null!=this.user){var k=/\.png$/i.test(a.title);/\.v(dx|sdx?)$/i.test(a.title)||/\.gliffy$/i.test(a.title)||!this.ui.useCanvasForExport&&
-k?this.ui.convertFile(a.downloadUrl+"&access_token="+this.token,a.title,a.mimeType,this.extension,c,d):b||e||a.mimeType==this.libraryMimeType||a.mimeType==this.xmlMimeType?this.getXmlFile(a,c,d,!0,e):this.getXmlFile(a,c,d)}else d({message:mxResources.get("loggedOut")})}catch(l){if(null!=d)d(l);else throw l;}}),d)};DriveClient.prototype.isGoogleRealtimeMimeType=function(a){return null!=a&&"application/vnd.jgraph.mxfile."==a.substring(0,30)};
-DriveClient.prototype.getXmlFile=function(a,c,d,b,e){try{var g=a.downloadUrl+"&access_token="+this.token;this.ui.loadUrl(g,mxUtils.bind(this,function(b){try{if(null==b)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||e)a.mimeType!=this.libraryMimeType||e?c(new DriveLibrary(this.ui,b,a)):d({message:mxResources.get("notADiagramFile")});else{var k=!1;if(/\.png$/i.test(a.title)){var n=b.lastIndexOf(",");if(0<n){var q=this.ui.extractGraphModelFromPng(b.substring(n+
-1));if(null!=q&&0<q.length)b=q;else try{var q=b.substring(n+1),f=!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(q):atob(q),m=this.ui.editor.extractGraphModel(mxUtils.parseXml(f).documentElement,!0);null==m||0<m.getElementsByTagName("parsererror").length?k=!0:b=f}catch(p){k=!0}}}else/\.pdf$/i.test(a.title)?(q=Editor.extractGraphModelFromPdf(b),null!=q&&0<q.length&&(k=!0,b=q)):"data:image/png;base64,PG14ZmlsZS"==b.substring(0,32)&&(f=b.substring(22),b=window.atob&&!mxClient.IS_SF?atob(f):
-Base64.decode(f));Graph.fileSupport&&(new XMLHttpRequest).upload&&this.ui.isRemoteFileFormat(b,g)?this.ui.parseFile(new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){try{4==b.readyState&&(200<=b.status&&299>=b.status?c(new LocalFile(this.ui,b.responseText,a.title+this.extension,!0)):null!=d&&d({message:mxResources.get("errorLoadingFile")}))}catch(u){if(null!=d)d(u);else throw u;}}),a.title):c(k?new LocalFile(this.ui,b,a.title,!0):new DriveFile(this.ui,b,a))}}catch(p){if(null!=
+DriveClient.prototype.loadDescriptor=function(a,c,d,b){this.executeRequest({url:"/files/"+a+"?supportsTeamDrives=true&fields="+(null!=b?b:this.allFields)},c,d)};DriveClient.prototype.getCustomProperty=function(a,c){var d=a.properties,b=null;if(null!=d)for(var f=0;f<d.length;f++)if(d[f].key==c){b=d[f].value;break}return b};
+DriveClient.prototype.getFile=function(a,c,d,b,f){b=null!=b?b:!1;f=null!=f?f:!1;null!=urlParams.rev?this.executeRequest({url:"/files/"+a+"/revisions/"+urlParams.rev+"?supportsTeamDrives=true"},mxUtils.bind(this,function(b){b.title=b.originalFilename;b.headRevisionId=b.id;b.id=a;this.getXmlFile(b,c,d)}),d):this.loadDescriptor(a,mxUtils.bind(this,function(a){try{if(null!=this.user){var k=/\.png$/i.test(a.title);/\.v(dx|sdx?)$/i.test(a.title)||/\.gliffy$/i.test(a.title)||!this.ui.useCanvasForExport&&
+k?this.ui.convertFile(a.downloadUrl+"&access_token="+this.token,a.title,a.mimeType,this.extension,c,d):b||f||a.mimeType==this.libraryMimeType||a.mimeType==this.xmlMimeType?this.getXmlFile(a,c,d,!0,f):this.getXmlFile(a,c,d)}else d({message:mxResources.get("loggedOut")})}catch(l){if(null!=d)d(l);else throw l;}}),d)};DriveClient.prototype.isGoogleRealtimeMimeType=function(a){return null!=a&&"application/vnd.jgraph.mxfile."==a.substring(0,30)};
+DriveClient.prototype.getXmlFile=function(a,c,d,b,f){try{var g=a.downloadUrl+"&access_token="+this.token;this.ui.loadUrl(g,mxUtils.bind(this,function(b){try{if(null==b)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||f)a.mimeType!=this.libraryMimeType||f?c(new DriveLibrary(this.ui,b,a)):d({message:mxResources.get("notADiagramFile")});else{var k=!1;if(/\.png$/i.test(a.title)){var n=b.lastIndexOf(",");if(0<n){var q=this.ui.extractGraphModelFromPng(b.substring(n+
+1));if(null!=q&&0<q.length)b=q;else try{var q=b.substring(n+1),e=!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(q):atob(q),m=this.ui.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,!0);null==m||0<m.getElementsByTagName("parsererror").length?k=!0:b=e}catch(p){k=!0}}}else/\.pdf$/i.test(a.title)?(q=Editor.extractGraphModelFromPdf(b),null!=q&&0<q.length&&(k=!0,b=q)):"data:image/png;base64,PG14ZmlsZS"==b.substring(0,32)&&(e=b.substring(22),b=window.atob&&!mxClient.IS_SF?atob(e):
+Base64.decode(e));Graph.fileSupport&&(new XMLHttpRequest).upload&&this.ui.isRemoteFileFormat(b,g)?this.ui.parseFile(new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){try{4==b.readyState&&(200<=b.status&&299>=b.status?c(new LocalFile(this.ui,b.responseText,a.title+this.extension,!0)):null!=d&&d({message:mxResources.get("errorLoadingFile")}))}catch(u){if(null!=d)d(u);else throw u;}}),a.title):c(k?new LocalFile(this.ui,b,a.title,!0):new DriveFile(this.ui,b,a))}}catch(p){if(null!=
d)d(p);else throw p;}}),d,null!=a.mimeType&&"image/"==a.mimeType.substring(0,6)&&"image/svg"!=a.mimeType.substring(0,9)||/\.png$/i.test(a.title)||/\.jpe?g$/i.test(a.title)||/\.pdf$/i.test(a.title))}catch(k){if(null!=d)d(k);else throw k;}};
-DriveClient.prototype.saveFile=function(a,c,d,b,e,g,k,l){try{a.saveLevel=1;var n=mxUtils.bind(this,function(c){if(null!=b)b(c);else throw c;try{if(!a.isConflict(c)){var d="sl_"+a.saveLevel+"-error_"+(a.getErrorMessage(c)||"unknown");null!=c&&null!=c.error&&null!=c.error.code&&(d+="-code_"+c.error.code);EditorUi.logEvent({category:"ERROR-SAVE-FILE-"+a.getHash()+"-rev_"+a.desc.headRevisionId+"-mod_"+a.desc.modifiedDate+"-size_"+a.getSize()+"-mime_"+a.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+
-(a.isAutosave()?"":"-noauto")+(a.changeListenerEnabled?"":"-nolisten")+(a.inConflictState?"-conflict":"")+(a.invalidChecksum?"-invalid":""),action:d,label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")})}}catch(B){}}),q=mxUtils.bind(this,function(b){n(b);try{EditorUi.logError(b.message,null,null,b),EditorUi.sendReport("Critical error in DriveClient.saveFile "+(new Date).toISOString()+":\n\nBrowser="+navigator.userAgent+"\nFile="+a.desc.id+"."+a.desc.headRevisionId+
-"\nMime="+a.desc.mimeType+"\nUser="+(null!=this.user?this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")+"\nSaveLevel="+a.saveLevel+"\nMessage="+b.message+"\n\nStack:\n"+b.stack)}catch(y){}});if(a.isEditable()&&null!=a.desc){var f=(new Date).getTime(),m=a.desc.etag,p=a.desc.modifiedDate,u=a.desc.headRevisionId,v=this.ui.useCanvasForExport&&/(\.png)$/i.test(a.getTitle());g=null!=g?g:!1;var t=null,z=!1,x={mimeType:a.desc.mimeType,title:a.getTitle()};if(this.isGoogleRealtimeMimeType(x.mimeType))x.mimeType=
-this.xmlMimeType,t=a.desc,z=c=!0;else if("application/octet-stream"==x.mimeType||"1"==urlParams["override-mime"]&&x.mimeType!=this.xmlMimeType)x.mimeType=this.xmlMimeType;var C=mxUtils.bind(this,function(b,e,B){try{a.saveLevel=3;a.constructor==DriveFile&&(null==l&&(l=[]),null==a.getChannelId()&&l.push({key:"channel",value:Editor.guid(32)}),null==a.getChannelKey()&&l.push({key:"key",value:Editor.guid(32)}),l.push({key:"secret",value:Editor.guid(32)}));B||(null!=b||g||(b=this.placeholderThumbnail,e=
-this.placeholderMimeType),null!=b&&null!=e&&(x.thumbnail={image:b,mimeType:e}));var y=a.getData(),D=mxUtils.bind(this,function(b){try{if(a.saveDelay=(new Date).getTime()-f,null==b)n({message:mxResources.get("errorSavingFile")+": Empty response"});else{var e=(new Date(b.modifiedDate)).getTime()-(new Date(p)).getTime();if(0>=e||m==b.etag||c&&u==b.headRevisionId){var k=[];0>=e&&k.push("invalid modified time");m==b.etag&&k.push("stale etag");c&&u==b.headRevisionId&&k.push("stale revision");var g=k.join(", ");
-n({message:mxResources.get("errorSavingFile")+": "+g},b);try{EditorUi.logError("Critical: Error saving to Google Drive "+a.desc.id,null,"from-"+u+"."+p+"-"+this.ui.hashValue(m)+"-to-"+b.headRevisionId+"."+b.modifiedDate+"-"+this.ui.hashValue(b.etag)+(0<g.length?"-errors-"+g:""),"user-"+(null!=this.user?this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync"))}catch(J){}}else if(a.saveLevel=null,d(b,y),null!=t){this.executeRequest({url:"/files/"+t.id+"/revisions/"+t.headRevisionId+
-"?supportsTeamDrives=true"},mxUtils.bind(this,mxUtils.bind(this,function(a){a.pinned=!0;this.executeRequest({url:"/files/"+t.id+"/revisions/"+t.headRevisionId,method:"PUT",params:a})})));try{EditorUi.logEvent({category:a.convertedFrom+"-CONVERT-FILE-"+a.getHash(),action:"from_"+t.id+"."+t.headRevisionId+"-to_"+a.desc.id+"."+a.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=a.sync?"-client_"+a.sync.clientId:"nosync")})}catch(J){}}}}catch(J){q(J)}}),F=mxUtils.bind(this,
-function(d,e){a.saveLevel=4;try{null!=l&&(x.properties=l);var f=k||a.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?null:a.getCurrentEtag(),g=0,m=mxUtils.bind(this,function(b){a.saveLevel=5;try{var k=a.desc.mimeType!=this.xmlMimeType&&a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType,l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;n({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),3*this.ui.timeout);this.executeRequest(this.createUploadRequest(a.getId(),
-x,d,c||b||k,e,b?null:f,z),mxUtils.bind(this,function(a){window.clearTimeout(m);l&&D(a)}),mxUtils.bind(this,function(b){window.clearTimeout(m);if(l){a.saveLevel=6;try{a.isConflict(b)?this.executeRequest({url:"/files/"+a.getId()+"?supportsTeamDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(c){a.saveLevel=7;try{if(null!=c&&c.etag==f)if(g<this.staleEtagMaxRetries){g++;var d=2*g*this.coolOff*(1+.1*(Math.random()-.5));window.setTimeout(p,d);"1"==urlParams.test&&EditorUi.debug("DriveClient: Stale Etag Detected",
-"retry",g,"delay",d)}else{p(!0);try{EditorUi.logEvent({category:"STALE-ETAG-SAVE-FILE-"+a.getHash(),action:"rev_"+a.desc.headRevisionId+"-mod_"+a.desc.modifiedDate+"-size_"+a.getSize()+"-mime_"+a.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(a.isAutosave()?"":"-noauto")+(a.changeListenerEnabled?"":"-nolisten")+(a.inConflictState?"-conflict":"")+(a.invalidChecksum?"-invalid":""),label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")})}catch(aa){}}else"1"==
-urlParams.test&&c.headRevisionId==u&&EditorUi.debug("DriveClient: Remote Etag Changed","local",f,"remote",c.etag,"rev",a.desc.headRevisionId,"response",[c],"file",[a]),n(b,c)}catch(aa){q(aa)}}),mxUtils.bind(this,function(){n(b)})):n(b)}catch(ga){q(ga)}}}))}catch(Z){q(Z)}}),p=mxUtils.bind(this,function(b){a.saveLevel=9;if(b)m(b);else{var c=!0,d=window.setTimeout(mxUtils.bind(this,function(){a.saveLevel=11;c=!1;n({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),3*this.ui.timeout);a.saveLevel=
-10;this.executeRequest({url:"/files/"+a.getId()+"?supportsTeamDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(e){window.clearTimeout(d);if(c){a.saveLevel=12;try{null!=e&&e.headRevisionId==u?("1"==urlParams.test&&f!=e.etag&&EditorUi.debug("DriveClient: Preflight Etag Update","from",f,"to",e.etag,"rev",a.desc.headRevisionId,"response",[e],"file",[a]),f=e.etag,m(b)):n({error:{code:412}},e)}catch(Z){q(Z)}}}),mxUtils.bind(this,function(b){window.clearTimeout(d);c&&(a.saveLevel=13,n(b))}))}});
-if(v&&null==b){a.saveLevel=8;var y=new Image;y.onload=mxUtils.bind(this,function(){try{var a=this.thumbnailWidth/y.width,b=document.createElement("canvas");b.width=this.thumbnailWidth;b.height=Math.floor(y.height*a);b.getContext("2d").drawImage(y,0,0,b.width,b.height);var c=b.toDataURL(),c=c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");x.thumbnail={image:c,mimeType:"image/png"};p(!1)}catch(V){p(!1)}});y.src="data:image/png;base64,"+d}else p(!1)}catch(W){q(W)}});v?this.ui.getEmbeddedPng(mxUtils.bind(this,
-function(a){F(a,!0)}),n,this.ui.getCurrentFile()!=a?y:null):F(y,!1)}catch(I){q(I)}});try{a.saveLevel=2,(g||v||a.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=x.mimeType&&"application/vnd.jgraph.mxfile"!=x.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){try{var b=null;try{null!=a&&(b=a.toDataURL("image/png")),null!=b&&(b=b.length>this.maxThumbnailSize?null:b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,
-"_"))}catch(B){b=null}C(b,"image/png")}catch(B){q(B)}})))&&C(null,null,a.constructor!=DriveLibrary)}catch(H){q(H)}}else this.ui.editor.graph.reset(),n({message:mxResources.get("readOnly")})}catch(H){q(H)}};
-DriveClient.prototype.insertFile=function(a,c,d,b,e,g,k){g=null!=g?g:this.xmlMimeType;a={mimeType:g,title:a};null!=d&&(a.parents=[{kind:"drive#fileLink",id:d}]);this.executeRequest(this.createUploadRequest(null,a,c,!1,k),mxUtils.bind(this,function(a){g==this.libraryMimeType?b(new DriveLibrary(this.ui,c,a)):0==a?null!=e&&e({message:mxResources.get("errorSavingFile")}):b(new DriveFile(this.ui,c,a))}),e)};
-DriveClient.prototype.createUploadRequest=function(a,c,d,b,e,g,k){e=null!=e?e:!1;var l={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=g&&(l["If-Match"]=g);a={fullUrl:"https://content.googleapis.com/upload/drive/v2/files"+(null!=a?"/"+a:"")+"?uploadType=multipart&supportsTeamDrives=true&fields="+this.allFields,method:null!=a?"PUT":"POST",headers:l,params:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+JSON.stringify(c)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+
-(null!=d?e?d:Base64.encode(d):"")+"\r\n---------314159265358979323846--"};b||(a.url+="&newRevision=false");k&&(a.url+="&pinned=true");return a};
+DriveClient.prototype.saveFile=function(a,c,d,b,f,g,k,l){try{var n=0;a.saveLevel=1;var q=mxUtils.bind(this,function(c){if(null!=b)b(c);else throw c;try{if(!a.isConflict(c)){var d="sl_"+a.saveLevel+"-error_"+(a.getErrorMessage(c)||"unknown");null!=c&&null!=c.error&&null!=c.error.code&&(d+="-code_"+c.error.code);EditorUi.logEvent({category:"ERROR-SAVE-FILE-"+a.getHash()+"-rev_"+a.desc.headRevisionId+"-mod_"+a.desc.modifiedDate+"-size_"+a.getSize()+"-mime_"+a.desc.mimeType+(this.ui.editor.autosave?"":
+"-nosave")+(a.isAutosave()?"":"-noauto")+(a.changeListenerEnabled?"":"-nolisten")+(a.inConflictState?"-conflict":"")+(a.invalidChecksum?"-invalid":""),action:d,label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")})}}catch(A){}}),e=mxUtils.bind(this,function(b){q(b);try{EditorUi.logError(b.message,null,null,b),EditorUi.sendReport("Critical error in DriveClient.saveFile "+(new Date).toISOString()+":\n\nBrowser="+navigator.userAgent+"\nFile="+a.desc.id+
+"."+a.desc.headRevisionId+"\nMime="+a.desc.mimeType+"\nUser="+(null!=this.user?this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")+"\nSaveLevel="+a.saveLevel+"\nSaveAsPng="+(this.ui.useCanvasForExport&&/(\.png)$/i.test(a.getTitle()))+"\nRetryCount="+n+"\nMessage="+b.message+"\n\nStack:\n"+b.stack)}catch(C){}});if(a.isEditable()&&null!=a.desc){var m=(new Date).getTime(),p=a.desc.etag,u=a.desc.modifiedDate,v=a.desc.headRevisionId,t=this.ui.useCanvasForExport&&/(\.png)$/i.test(a.getTitle());
+g=null!=g?g:!1;var y=null,z=!1,B={mimeType:a.desc.mimeType,title:a.getTitle()};if(this.isGoogleRealtimeMimeType(B.mimeType))B.mimeType=this.xmlMimeType,y=a.desc,z=c=!0;else if("application/octet-stream"==B.mimeType||"1"==urlParams["override-mime"]&&B.mimeType!=this.xmlMimeType)B.mimeType=this.xmlMimeType;var G=mxUtils.bind(this,function(b,f,A){try{a.saveLevel=3;a.constructor==DriveFile&&(null==l&&(l=[]),null==a.getChannelId()&&l.push({key:"channel",value:Editor.guid(32)}),null==a.getChannelKey()&&
+l.push({key:"key",value:Editor.guid(32)}),l.push({key:"secret",value:Editor.guid(32)}));A||(null!=b||g||(b=this.placeholderThumbnail,f=this.placeholderMimeType),null!=b&&null!=f&&(B.thumbnail={image:b,mimeType:f}));var x=a.getData(),C=mxUtils.bind(this,function(b){try{if(a.saveDelay=(new Date).getTime()-m,a.saveLevel=16,null==b)q({message:mxResources.get("errorSavingFile")+": Empty response"});else{var f=(new Date(b.modifiedDate)).getTime()-(new Date(u)).getTime();if(0>=f||p==b.etag||c&&v==b.headRevisionId){a.saveLevel=
+17;var k=[];0>=f&&k.push("invalid modified time");p==b.etag&&k.push("stale etag");c&&v==b.headRevisionId&&k.push("stale revision");var g=k.join(", ");q({message:mxResources.get("errorSavingFile")+": "+g},b);try{EditorUi.logError("Critical: Error saving to Google Drive "+a.desc.id,null,"from-"+v+"."+u+"-"+this.ui.hashValue(p)+"-to-"+b.headRevisionId+"."+b.modifiedDate+"-"+this.ui.hashValue(b.etag)+(0<g.length?"-errors-"+g:""),"user-"+(null!=this.user?this.user.id:"nouser")+(null!=a.sync?"-client_"+
+a.sync.clientId:"-nosync"))}catch(M){}}else if(a.saveLevel=null,d(b,x),null!=y){this.executeRequest({url:"/files/"+y.id+"/revisions/"+y.headRevisionId+"?supportsTeamDrives=true"},mxUtils.bind(this,mxUtils.bind(this,function(a){a.pinned=!0;this.executeRequest({url:"/files/"+y.id+"/revisions/"+y.headRevisionId,method:"PUT",params:a})})));try{EditorUi.logEvent({category:a.convertedFrom+"-CONVERT-FILE-"+a.getHash(),action:"from_"+y.id+"."+y.headRevisionId+"-to_"+a.desc.id+"."+a.desc.headRevisionId,label:null!=
+this.user?"user_"+this.user.id:"nouser"+(null!=a.sync?"-client_"+a.sync.clientId:"nosync")})}catch(M){}}}}catch(M){e(M)}}),G=mxUtils.bind(this,function(d,f){a.saveLevel=4;try{null!=l&&(B.properties=l);var g=k||a.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?null:a.getCurrentEtag(),m=mxUtils.bind(this,function(b){a.saveLevel=5;try{var k=a.desc.mimeType!=this.xmlMimeType&&a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType,l=!0,m=window.setTimeout(mxUtils.bind(this,
+function(){l=!1;q({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),3*this.ui.timeout);this.executeRequest(this.createUploadRequest(a.getId(),B,d,c||b||k,f,b?null:g,z),mxUtils.bind(this,function(a){window.clearTimeout(m);l&&C(a)}),mxUtils.bind(this,function(b){window.clearTimeout(m);if(l){a.saveLevel=6;try{a.isConflict(b)?this.executeRequest({url:"/files/"+a.getId()+"?supportsTeamDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(c){a.saveLevel=7;try{if(null!=c&&c.etag==
+g)if(n<this.staleEtagMaxRetries){n++;var d=2*n*this.coolOff*(1+.1*(Math.random()-.5));window.setTimeout(p,d);"1"==urlParams.test&&EditorUi.debug("DriveClient: Stale Etag Detected","retry",n,"delay",d)}else{p(!0);try{EditorUi.logEvent({category:"STALE-ETAG-SAVE-FILE-"+a.getHash(),action:"rev_"+a.desc.headRevisionId+"-mod_"+a.desc.modifiedDate+"-size_"+a.getSize()+"-mime_"+a.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(a.isAutosave()?"":"-noauto")+(a.changeListenerEnabled?"":"-nolisten")+(a.inConflictState?
+"-conflict":"")+(a.invalidChecksum?"-invalid":""),label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")})}catch(aa){}}else"1"==urlParams.test&&c.headRevisionId==v&&EditorUi.debug("DriveClient: Remote Etag Changed","local",g,"remote",c.etag,"rev",a.desc.headRevisionId,"response",[c],"file",[a]),q(b,c)}catch(aa){e(aa)}}),mxUtils.bind(this,function(){q(b)})):q(b)}catch(ga){e(ga)}}}))}catch(Z){e(Z)}}),p=mxUtils.bind(this,function(b){a.saveLevel=9;if(b)a.saveLevel=
+14,m(b);else{a.saveLevel=15;var c=!0,d=window.setTimeout(mxUtils.bind(this,function(){a.saveLevel=11;c=!1;q({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),3*this.ui.timeout);a.saveLevel=10;this.executeRequest({url:"/files/"+a.getId()+"?supportsTeamDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(f){window.clearTimeout(d);if(c){a.saveLevel=12;try{null!=f&&f.headRevisionId==v?("1"==urlParams.test&&g!=f.etag&&EditorUi.debug("DriveClient: Preflight Etag Update","from",
+g,"to",f.etag,"rev",a.desc.headRevisionId,"response",[f],"file",[a]),g=f.etag,m(b)):q({error:{code:412}},f)}catch(Z){e(Z)}}}),mxUtils.bind(this,function(b){window.clearTimeout(d);c&&(a.saveLevel=13,q(b))}))}});if(t&&null==b){a.saveLevel=8;var x=new Image;x.onload=mxUtils.bind(this,function(){try{var a=this.thumbnailWidth/x.width,b=document.createElement("canvas");b.width=this.thumbnailWidth;b.height=Math.floor(x.height*a);b.getContext("2d").drawImage(x,0,0,b.width,b.height);var c=b.toDataURL(),c=
+c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");B.thumbnail={image:c,mimeType:"image/png"};p(!1)}catch(V){p(!1)}});x.src="data:image/png;base64,"+d}else p(!1)}catch(W){e(W)}});t?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){G(a,!0)}),q,this.ui.getCurrentFile()!=a?x:null):G(x,!1)}catch(J){e(J)}});try{a.saveLevel=2,(g||t||a.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=B.mimeType&&"application/vnd.jgraph.mxfile"!=B.mimeType.substring(0,29)||
+!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){try{var b=null;try{null!=a&&(b=a.toDataURL("image/png")),null!=b&&(b=b.length>this.maxThumbnailSize?null:b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(A){b=null}G(b,"image/png")}catch(A){e(A)}})))&&G(null,null,a.constructor!=DriveLibrary)}catch(x){e(x)}}else this.ui.editor.graph.reset(),q({message:mxResources.get("readOnly")})}catch(x){e(x)}};
+DriveClient.prototype.insertFile=function(a,c,d,b,f,g,k){g=null!=g?g:this.xmlMimeType;a={mimeType:g,title:a};null!=d&&(a.parents=[{kind:"drive#fileLink",id:d}]);this.executeRequest(this.createUploadRequest(null,a,c,!1,k),mxUtils.bind(this,function(a){g==this.libraryMimeType?b(new DriveLibrary(this.ui,c,a)):0==a?null!=f&&f({message:mxResources.get("errorSavingFile")}):b(new DriveFile(this.ui,c,a))}),f)};
+DriveClient.prototype.createUploadRequest=function(a,c,d,b,f,g,k){f=null!=f?f:!1;var l={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=g&&(l["If-Match"]=g);a={fullUrl:"https://content.googleapis.com/upload/drive/v2/files"+(null!=a?"/"+a:"")+"?uploadType=multipart&supportsTeamDrives=true&fields="+this.allFields,method:null!=a?"PUT":"POST",headers:l,params:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+JSON.stringify(c)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+
+(null!=d?f?d:Base64.encode(d):"")+"\r\n---------314159265358979323846--"};b||(a.fullUrl+="&newRevision=false");k&&(a.fullUrl+="&pinned=true");return a};
DriveClient.prototype.pickFile=function(a,c){this.filePickerCallback=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("G"+a)});this.filePicked=mxUtils.bind(this,function(a){a.action==google.picker.Action.PICKED&&this.filePickerCallback(a.docs[0].id)});this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){try{this.ui.spinner.stop();var a=c?"genericPicker":"filePicker",b=mxUtils.bind(this,function(c){"picker modal-dialog-bg picker-dialog-bg"==
-mxEvent.getSource(c).className&&(mxEvent.removeListener(document,"click",b),this[a].setVisible(!1))});if(null==this[a]||this[a+"Token"]!=this.token){this[a+"Token"]=this.token;var e=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0),g=(new google.picker.DocsView).setIncludeFolders(!0),k=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0),l=(new google.picker.DocsUploadView).setIncludeFolders(!0);c?(e.setMimeTypes("*/*"),g.setMimeTypes("*/*"),
-k.setMimeTypes("*/*")):(e.setMimeTypes(this.mimeTypes),g.setMimeTypes(this.mimeTypes),k.setMimeTypes(this.mimeTypes));this[a]=(new google.picker.PickerBuilder).setOAuthToken(this[a+"Token"]).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(e).addView(g).addView(k).addView(google.picker.ViewId.RECENTLY_PICKED).addView(l).setCallback(mxUtils.bind(this,function(a){a.action!=google.picker.Action.PICKED&&a.action!=google.picker.Action.CANCEL||
+mxEvent.getSource(c).className&&(mxEvent.removeListener(document,"click",b),this[a].setVisible(!1))});if(null==this[a]||this[a+"Token"]!=this.token){this[a+"Token"]=this.token;var f=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0),g=(new google.picker.DocsView).setIncludeFolders(!0),k=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0),l=(new google.picker.DocsUploadView).setIncludeFolders(!0);c?(f.setMimeTypes("*/*"),g.setMimeTypes("*/*"),
+k.setMimeTypes("*/*")):(f.setMimeTypes(this.mimeTypes),g.setMimeTypes(this.mimeTypes),k.setMimeTypes(this.mimeTypes));this[a]=(new google.picker.PickerBuilder).setOAuthToken(this[a+"Token"]).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(f).addView(g).addView(k).addView(google.picker.ViewId.RECENTLY_PICKED).addView(l).setCallback(mxUtils.bind(this,function(a){a.action!=google.picker.Action.PICKED&&a.action!=google.picker.Action.CANCEL||
mxEvent.removeListener(document,"click",b);a.action==google.picker.Action.PICKED&&this.filePicked(a)})).build()}mxEvent.addListener(document,"click",b);this[a].setVisible(!0)}catch(n){this.ui.spinner.stop(),this.ui.handleError(n)}}))};
DriveClient.prototype.pickFolder=function(a,c){this.folderPickerCallback=a;var d=mxUtils.bind(this,function(){try{this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){try{this.ui.spinner.stop();var a=mxUtils.bind(this,function(b){"picker modal-dialog-bg picker-dialog-bg"==mxEvent.getSource(b).className&&(mxEvent.removeListener(document,"click",a),this.folderPicker.setVisible(!1))});if(null==this.folderPicker||this.folderPickerToken!=this.token){this.folderPickerToken=
this.token;var c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder"),d=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder"),k=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder");this.folderPicker=(new google.picker.PickerBuilder).setSelectableMimeTypes("application/vnd.google-apps.folder").setOAuthToken(this.folderPickerToken).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(c).addView(d).addView(k).addView(google.picker.ViewId.RECENTLY_PICKED).setTitle(mxResources.get("pickFolder")).setCallback(mxUtils.bind(this,
@@ -9031,7 +9037,7 @@ function(b){b.action!=google.picker.Action.PICKED&&b.action!=google.picker.Actio
id:"root"}]})}),mxUtils.bind(this,function(){d()}),mxResources.get("yes"),mxResources.get("noPickFolder")+"...",!0)};
DriveClient.prototype.pickLibrary=function(a){this.filePickerCallback=a;this.filePicked=mxUtils.bind(this,function(a){a.action==google.picker.Action.PICKED?this.filePickerCallback(a.docs[0].id):a.action==google.picker.Action.CANCEL&&null==this.ui.getCurrentFile()&&this.ui.showSplash()});this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){try{this.ui.spinner.stop();var a=mxUtils.bind(this,function(b){"picker modal-dialog-bg picker-dialog-bg"==
mxEvent.getSource(b).className&&(mxEvent.removeListener(document,"click",a),this.libraryPicker.setVisible(!1))});if(null==this.libraryPicker||this.libraryPickerToken!=this.token){this.libraryPickerToken=this.token;var d=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),b=(new google.picker.DocsView).setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),
-e=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),g=(new google.picker.DocsUploadView).setIncludeFolders(!0);this.libraryPicker=(new google.picker.PickerBuilder).setOAuthToken(this.libraryPickerToken).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(d).addView(b).addView(e).addView(google.picker.ViewId.RECENTLY_PICKED).addView(g).setCallback(mxUtils.bind(this,
+f=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),g=(new google.picker.DocsUploadView).setIncludeFolders(!0);this.libraryPicker=(new google.picker.PickerBuilder).setOAuthToken(this.libraryPickerToken).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(d).addView(b).addView(f).addView(google.picker.ViewId.RECENTLY_PICKED).addView(g).setCallback(mxUtils.bind(this,
function(b){b.action!=google.picker.Action.PICKED&&b.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document,"click",a);b.action==google.picker.Action.PICKED&&this.filePicked(b)})).build()}mxEvent.addListener(document,"click",a);this.libraryPicker.setVisible(!0)}catch(k){this.ui.spinner.stop(),this.ui.handleError(k)}}))};
DriveClient.prototype.showPermissions=function(a){var c=mxUtils.bind(this,function(){var c=new ConfirmDialog(this.ui,mxResources.get("googleSharingNotAvailable"),mxUtils.bind(this,function(){this.ui.editor.graph.openLink("https://drive.google.com/open?id="+a)}),null,mxResources.get("open"),null,null,null,null,IMAGE_PATH+"/google-share.png");this.ui.showDialog(c.container,360,190,!0,!0);c.init()});this.sharingFailed?c():this.checkToken(mxUtils.bind(this,function(){try{var d=new gapi.drive.share.ShareClient(this.appId);
d.setOAuthToken(this.token);d.setItemIds([a]);d.showSettingsDialog();"MutationObserver"in window&&(null!=this.sharingObserver&&(this.sharingObserver.disconnect(),this.sharingObserver=null),this.sharingObserver=new MutationObserver(mxUtils.bind(this,function(a){for(var b=!1,d=0;d<a.length;d++)for(var k=0;k<a[d].addedNodes.length;k++){var l=a[d].addedNodes[k];"BUTTON"==l.nodeName&&"ok"==l.getAttribute("name")&&null!=l.parentNode&&null!=l.parentNode.parentNode&&"dialog"==l.parentNode.parentNode.getAttribute("role")?
@@ -9040,75 +9046,75 @@ DriveClient.prototype.clearPersistentToken=function(){var a=JSON.parse(this.getP
DriveClient.prototype.setPersistentToken=function(a,c){var d=JSON.parse(this.getPersistentToken(!0))||{};a.userId=this.userId;d.current=a;d[this.userId]={refresh_token:a.refresh_token,user:this.user};DrawioClient.prototype.setPersistentToken.call(this,JSON.stringify(d),c)};DropboxFile=function(a,c,d){DrawioFile.call(this,a,c);this.stat=d};mxUtils.extend(DropboxFile,DrawioFile);DropboxFile.prototype.getId=function(){return this.stat.path_display.substring(1)};DropboxFile.prototype.getHash=function(){return"D"+encodeURIComponent(this.getId())};DropboxFile.prototype.getMode=function(){return App.MODE_DROPBOX};DropboxFile.prototype.isAutosaveOptional=function(){return!0};DropboxFile.prototype.getTitle=function(){return this.stat.name};
DropboxFile.prototype.isRenamable=function(){return!0};DropboxFile.prototype.getSize=function(){return this.stat.size};DropboxFile.prototype.isRevisionHistorySupported=function(){return!0};
DropboxFile.prototype.getRevisions=function(a,c){var d=this.ui.dropbox.client.filesListRevisions({path:this.stat.path_lower,limit:100});d.then(mxUtils.bind(this,function(b){try{for(var d=[],g=b.entries.length-1;0<=g;g--)mxUtils.bind(this,function(a){d.push({modifiedDate:a.client_modified,fileSize:a.size,getXml:mxUtils.bind(this,function(b,c){this.ui.dropbox.readFile({path:this.stat.path_lower,rev:a.rev},b,c)}),getUrl:mxUtils.bind(this,function(b){return this.ui.getUrl(window.location.pathname+"?rev="+
-a.rev+"&chrome=0&nav=1&layers=1&edit=_blank"+(null!=b?"&page="+b:""))+window.location.hash})})})(b.entries[g]);a(d)}catch(k){c(k)}}));d["catch"](function(a){c(a)})};DropboxFile.prototype.getLatestVersion=function(a,c){this.ui.dropbox.getFile(this.getId(),a,c)};DropboxFile.prototype.updateDescriptor=function(a){this.stat=a.stat};DropboxFile.prototype.save=function(a,c,d,b,e){this.doSave(this.getTitle(),a,c,d,b,e)};DropboxFile.prototype.saveAs=function(a,c,d){this.doSave(a,!1,c,d)};
-DropboxFile.prototype.doSave=function(a,c,d,b,e,g){var k=this.stat.name;this.stat.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.stat.name=k;this.saveFile(a,c,d,b,e,g)}),b,e,g])};
-DropboxFile.prototype.saveFile=function(a,c,d,b){this.isEditable()?this.savingFile?null!=b&&b({code:App.ERROR_BUSY}):(c=mxUtils.bind(this,function(c){if(c){var e=null,k=null;try{e=this.isModified;k=this.isModified();this.savingFile=!0;this.savingFileTime=new Date;var l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return k}});l();var n=mxUtils.bind(this,function(c){var f=this.stat.path_display.lastIndexOf("/"),f=1<f?this.stat.path_display.substring(1,f+1):null;this.ui.dropbox.saveFile(a,
-c,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.stat=a;this.contentChanged();null!=d&&d()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(k||this.isModified());if(null!=b){if(null!=a&&null!=a.retry){var c=a.retry;a.retry=function(){l();c()}}b(a)}}),f)});this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){n(this.ui.base64ToBlob(a,"image/png"))}),b,this.ui.getCurrentFile()!=
-this?this.getData():null):n(this.getData())}catch(q){if(this.savingFile=!1,null!=e&&(this.isModified=e),null!=k&&this.setModified(k||this.isModified()),null!=b)b(q);else throw q;}}else null!=b&&b()}),this.getTitle()==a?c(!0):this.ui.dropbox.checkExists(a,c)):null!=d&&d()};
+a.rev+"&chrome=0&nav=1&layers=1&edit=_blank"+(null!=b?"&page="+b:""))+window.location.hash})})})(b.entries[g]);a(d)}catch(k){c(k)}}));d["catch"](function(a){c(a)})};DropboxFile.prototype.getLatestVersion=function(a,c){this.ui.dropbox.getFile(this.getId(),a,c)};DropboxFile.prototype.updateDescriptor=function(a){this.stat=a.stat};DropboxFile.prototype.save=function(a,c,d,b,f){this.doSave(this.getTitle(),a,c,d,b,f)};DropboxFile.prototype.saveAs=function(a,c,d){this.doSave(a,!1,c,d)};
+DropboxFile.prototype.doSave=function(a,c,d,b,f,g){var k=this.stat.name;this.stat.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.stat.name=k;this.saveFile(a,c,d,b,f,g)}),b,f,g])};
+DropboxFile.prototype.saveFile=function(a,c,d,b){this.isEditable()?this.savingFile?null!=b&&b({code:App.ERROR_BUSY}):(c=mxUtils.bind(this,function(c){if(c){var f=null,k=null;try{f=this.isModified;k=this.isModified();this.savingFile=!0;this.savingFileTime=new Date;var l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return k}});l();var n=mxUtils.bind(this,function(c){var e=this.stat.path_display.lastIndexOf("/"),e=1<e?this.stat.path_display.substring(1,e+1):null;this.ui.dropbox.saveFile(a,
+c,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=f;this.stat=a;this.contentChanged();null!=d&&d()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=f;this.setModified(k||this.isModified());if(null!=b){if(null!=a&&null!=a.retry){var c=a.retry;a.retry=function(){l();c()}}b(a)}}),e)});this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){n(this.ui.base64ToBlob(a,"image/png"))}),b,this.ui.getCurrentFile()!=
+this?this.getData():null):n(this.getData())}catch(q){if(this.savingFile=!1,null!=f&&(this.isModified=f),null!=k&&this.setModified(k||this.isModified()),null!=b)b(q);else throw q;}}else null!=b&&b()}),this.getTitle()==a?c(!0):this.ui.dropbox.checkExists(a,c)):null!=d&&d()};
DropboxFile.prototype.rename=function(a,c,d){this.ui.dropbox.renameFile(this,a,mxUtils.bind(this,function(b){this.hasSameExtension(a,this.getTitle())?(this.stat=b,this.descriptorChanged(),null!=c&&c()):(this.stat=b,this.descriptorChanged(),this.save(!0,c,d))}),d)};DropboxLibrary=function(a,c,d){DropboxFile.call(this,a,c,d)};mxUtils.extend(DropboxLibrary,DropboxFile);DropboxLibrary.prototype.isAutosave=function(){return!0};DropboxLibrary.prototype.doSave=function(a,c,d){this.saveFile(a,!1,c,d)};DropboxLibrary.prototype.open=function(){};DropboxClient=function(a){DrawioClient.call(this,a,"dbauth");this.client=new Dropbox({clientId:App.DROPBOX_APPKEY});this.client.setAccessToken(this.token)};mxUtils.extend(DropboxClient,DrawioClient);DropboxClient.prototype.appPath="/drawio/";DropboxClient.prototype.extension=".drawio";DropboxClient.prototype.writingFile=!1;DropboxClient.prototype.maxRetries=4;
DropboxClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null;this.client.authTokenRevoke().then(mxUtils.bind(this,function(){this.client.setAccessToken(null)}))};
-DropboxClient.prototype.updateUser=function(a,c,d){var b=!0,e=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),g=this.client.usersGetCurrentAccount();g.then(mxUtils.bind(this,function(c){window.clearTimeout(e);b&&(this.setUser(new DrawioUser(c.account_id,c.email,c.name.display_name)),a())}));g["catch"](mxUtils.bind(this,function(k){window.clearTimeout(e);b&&(null==k||401!==k.status||d?c({message:mxResources.get("accessDenied")}):(this.setUser(null),
+DropboxClient.prototype.updateUser=function(a,c,d){var b=!0,f=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),g=this.client.usersGetCurrentAccount();g.then(mxUtils.bind(this,function(c){window.clearTimeout(f);b&&(this.setUser(new DrawioUser(c.account_id,c.email,c.name.display_name)),a())}));g["catch"](mxUtils.bind(this,function(k){window.clearTimeout(f);b&&(null==k||401!==k.status||d?c({message:mxResources.get("accessDenied")}):(this.setUser(null),
this.client.setAccessToken(null),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,c,!0)}),c)))}))};
-DropboxClient.prototype.authenticate=function(a,c){if(null==window.onDropboxCallback){var d=mxUtils.bind(this,function(){var b=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open(this.client.getAuthenticationUrl("https://"+window.location.host+"/dropbox.html"),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(k,l){if(b){window.onDropboxCallback=null;b=!1;try{null==k?c({message:mxResources.get("accessDenied"),retry:d}):(null!=g&&g(),this.client.setAccessToken(k),
-this.setUser(null),e&&this.setPersistentToken(k),a())}catch(n){c(n)}finally{null!=l&&l.close()}}else null!=l&&l.close()}):c({message:mxResources.get("serviceUnavailableOrBlocked"),retry:d})}),mxUtils.bind(this,function(){b&&(window.onDropboxCallback=null,b=!1,c({message:mxResources.get("accessDenied"),retry:d}))}))});d()}else c({code:App.ERROR_BUSY})};
-DropboxClient.prototype.executePromise=function(a,c,d){var b=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;d({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);a.then(mxUtils.bind(this,function(a){window.clearTimeout(l);k&&null!=c&&c(a)}));a["catch"](mxUtils.bind(this,function(a){window.clearTimeout(l);k&&(null==a||500!=a.status&&400!=a.status&&401!=a.status?d({message:mxResources.get("error")+" "+a.status}):(this.setUser(null),this.client.setAccessToken(null),
-g?d({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){e(!0)},d)})}):this.authenticate(function(){b(!0)},d)))}))}),e=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){e(!0)},d,a):b(a)});null===this.client.getAccessToken()?this.authenticate(function(){e(!0)},d):e(!1)};DropboxClient.prototype.getLibrary=function(a,c,d){this.getFile(a,c,d,!0)};
-DropboxClient.prototype.getFile=function(a,c,d,b){b=null!=b?b:!1;var e=/\.png$/i.test(a);if(/^https:\/\//i.test(a)||/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||/\.pdf$/i.test(a)||!this.ui.useCanvasForExport&&e){var g=mxUtils.bind(this,function(){var b=a.split("/");this.ui.convertFile(a,0<b.length?b[b.length-1]:a,null,this.extension,c,d)});null!=this.token?g():this.authenticate(g,d)}else g={path:"/"+a},null!=urlParams.rev&&(g.rev=urlParams.rev),this.readFile(g,mxUtils.bind(this,function(d,g){var k=
-e?d.lastIndexOf(","):-1,l=null;0<k&&(k=this.ui.extractGraphModelFromPng(d.substring(k+1)),null!=k&&0<k.length?d=k:l=new LocalFile(this,d,a,!0));c(null!=l?l:b?new DropboxLibrary(this.ui,d,g):new DropboxFile(this.ui,d,g))}),d,e)};
-DropboxClient.prototype.readFile=function(a,c,d,b){var e=mxUtils.bind(this,function(k){var l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT})}),this.ui.timeout),q=this.client.filesGetMetadata({path:"/"+a.path.substring(1),include_deleted:!1});q.then(mxUtils.bind(this,function(a){}));q["catch"](function(a){window.clearTimeout(n);l&&null!=a&&409==a.status&&(l=!1,d({message:mxResources.get("fileNotFound")}))});q=this.client.filesDownload(a);q.then(mxUtils.bind(this,
+DropboxClient.prototype.authenticate=function(a,c){if(null==window.onDropboxCallback){var d=mxUtils.bind(this,function(){var b=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(f,g){null!=window.open(this.client.getAuthenticationUrl("https://"+window.location.host+"/dropbox.html"),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(k,l){if(b){window.onDropboxCallback=null;b=!1;try{null==k?c({message:mxResources.get("accessDenied"),retry:d}):(null!=g&&g(),this.client.setAccessToken(k),
+this.setUser(null),f&&this.setPersistentToken(k),a())}catch(n){c(n)}finally{null!=l&&l.close()}}else null!=l&&l.close()}):c({message:mxResources.get("serviceUnavailableOrBlocked"),retry:d})}),mxUtils.bind(this,function(){b&&(window.onDropboxCallback=null,b=!1,c({message:mxResources.get("accessDenied"),retry:d}))}))});d()}else c({code:App.ERROR_BUSY})};
+DropboxClient.prototype.executePromise=function(a,c,d){var b=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;d({code:App.ERROR_TIMEOUT,retry:f})}),this.ui.timeout);a.then(mxUtils.bind(this,function(a){window.clearTimeout(l);k&&null!=c&&c(a)}));a["catch"](mxUtils.bind(this,function(a){window.clearTimeout(l);k&&(null==a||500!=a.status&&400!=a.status&&401!=a.status?d({message:mxResources.get("error")+" "+a.status}):(this.setUser(null),this.client.setAccessToken(null),
+g?d({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){f(!0)},d)})}):this.authenticate(function(){b(!0)},d)))}))}),f=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){f(!0)},d,a):b(a)});null===this.client.getAccessToken()?this.authenticate(function(){f(!0)},d):f(!1)};DropboxClient.prototype.getLibrary=function(a,c,d){this.getFile(a,c,d,!0)};
+DropboxClient.prototype.getFile=function(a,c,d,b){b=null!=b?b:!1;var f=/\.png$/i.test(a);if(/^https:\/\//i.test(a)||/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||/\.pdf$/i.test(a)||!this.ui.useCanvasForExport&&f){var g=mxUtils.bind(this,function(){var b=a.split("/");this.ui.convertFile(a,0<b.length?b[b.length-1]:a,null,this.extension,c,d)});null!=this.token?g():this.authenticate(g,d)}else g={path:"/"+a},null!=urlParams.rev&&(g.rev=urlParams.rev),this.readFile(g,mxUtils.bind(this,function(d,g){var k=
+f?d.lastIndexOf(","):-1,l=null;0<k&&(k=this.ui.extractGraphModelFromPng(d.substring(k+1)),null!=k&&0<k.length?d=k:l=new LocalFile(this,d,a,!0));c(null!=l?l:b?new DropboxLibrary(this.ui,d,g):new DropboxFile(this.ui,d,g))}),d,f)};
+DropboxClient.prototype.readFile=function(a,c,d,b){var f=mxUtils.bind(this,function(k){var l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT})}),this.ui.timeout),q=this.client.filesGetMetadata({path:"/"+a.path.substring(1),include_deleted:!1});q.then(mxUtils.bind(this,function(a){}));q["catch"](function(a){window.clearTimeout(n);l&&null!=a&&409==a.status&&(l=!1,d({message:mxResources.get("fileNotFound")}))});q=this.client.filesDownload(a);q.then(mxUtils.bind(this,
function(a){window.clearTimeout(n);if(l){l=!1;try{var e=new FileReader;e.onload=mxUtils.bind(this,function(b){c(e.result,a)});b?e.readAsDataURL(a.fileBlob):e.readAsText(a.fileBlob)}catch(p){d(p)}}}));q["catch"](mxUtils.bind(this,function(a){window.clearTimeout(n);l&&(l=!1,null==a||500!=a.status&&400!=a.status&&401!=a.status?d({message:mxResources.get("error")+" "+a.status}):(this.client.setAccessToken(null),this.setUser(null),k?d({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},
-d)})}):this.authenticate(function(){e(!0)},d)))}))}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},d,a):e(a)});null===this.client.getAccessToken()?this.authenticate(function(){g(!0)},d):g(!1)};
+d)})}):this.authenticate(function(){f(!0)},d)))}))}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},d,a):f(a)});null===this.client.getAccessToken()?this.authenticate(function(){g(!0)},d):g(!1)};
DropboxClient.prototype.checkExists=function(a,c,d){var b=this.client.filesGetMetadata({path:"/"+a.toLowerCase(),include_deleted:!1});this.executePromise(b,mxUtils.bind(this,function(b){d?c(!1,!0,b):this.ui.confirm(mxResources.get("replaceIt",[a]),function(){c(!0,!0,b)},function(){c(!1,!0,b)})}),function(a){c(!0,!1)})};
-DropboxClient.prototype.renameFile=function(a,c,d,b){if(/[\\\/:\?\*"\|]/.test(c))b({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=c){var e=a.stat.path_display.substring(1),g=e.lastIndexOf("/");0<g&&(c=e.substring(0,g+1)+c)}null!=a&&null!=c&&a.stat.path_lower.substring(1)!==c.toLowerCase()?this.checkExists(c,mxUtils.bind(this,function(e,g,n){e?(e=mxUtils.bind(this,function(e){e=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+c,autorename:!1});this.executePromise(e,
-d,b)}),g&&n.path_lower.substring(1)!==c.toLowerCase()?(g=this.client.filesDelete({path:"/"+c.toLowerCase()}),this.executePromise(g,e,b)):e()):b()})):b({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,c,d,b){this.insertFile(a,c,d,b,!0)};
-DropboxClient.prototype.insertFile=function(a,c,d,b,e){e=null!=e?e:!1;this.checkExists(a,mxUtils.bind(this,function(g){g?this.saveFile(a,c,mxUtils.bind(this,function(a){e?d(new DropboxLibrary(this.ui,c,a)):d(new DropboxFile(this.ui,c,a))}),b):b()}))};
-DropboxClient.prototype.saveFile=function(a,c,d,b,e){/[\\\/:\?\*"\|]/.test(a)?b({message:mxResources.get("dropboxCharsNotAllowed")}):15E7<=c.length?b({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(c.length)+" / 150 MB)"}):(a=this.client.filesUpload({path:"/"+(null!=e?e:"")+a,mode:{".tag":"overwrite"},mute:!0,contents:new Blob([c],{type:"text/plain"})}),this.executePromise(a,d,b))};
-DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(c){if(this.ui.spinner.spin(document.body,mxResources.get("loading"))){var d=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),b=c[0].link.indexOf(this.appPath);if(0<b){var e=decodeURIComponent(c[0].link.substring(b+this.appPath.length-1));this.readFile({path:e},mxUtils.bind(this,function(b,k){if(null!=k&&k.id==c[0].id)try{this.ui.spinner.stop(),
-a(e.substring(1),new DropboxLibrary(this.ui,b,k))}catch(l){this.ui.handleError(l)}else this.createLibrary(c[0],a,d)}),d)}else this.createLibrary(c[0],a,d)}})})};
+DropboxClient.prototype.renameFile=function(a,c,d,b){if(/[\\\/:\?\*"\|]/.test(c))b({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=c){var f=a.stat.path_display.substring(1),g=f.lastIndexOf("/");0<g&&(c=f.substring(0,g+1)+c)}null!=a&&null!=c&&a.stat.path_lower.substring(1)!==c.toLowerCase()?this.checkExists(c,mxUtils.bind(this,function(f,g,n){f?(f=mxUtils.bind(this,function(f){f=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+c,autorename:!1});this.executePromise(f,
+d,b)}),g&&n.path_lower.substring(1)!==c.toLowerCase()?(g=this.client.filesDelete({path:"/"+c.toLowerCase()}),this.executePromise(g,f,b)):f()):b()})):b({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,c,d,b){this.insertFile(a,c,d,b,!0)};
+DropboxClient.prototype.insertFile=function(a,c,d,b,f){f=null!=f?f:!1;this.checkExists(a,mxUtils.bind(this,function(g){g?this.saveFile(a,c,mxUtils.bind(this,function(a){f?d(new DropboxLibrary(this.ui,c,a)):d(new DropboxFile(this.ui,c,a))}),b):b()}))};
+DropboxClient.prototype.saveFile=function(a,c,d,b,f){/[\\\/:\?\*"\|]/.test(a)?b({message:mxResources.get("dropboxCharsNotAllowed")}):15E7<=c.length?b({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(c.length)+" / 150 MB)"}):(a=this.client.filesUpload({path:"/"+(null!=f?f:"")+a,mode:{".tag":"overwrite"},mute:!0,contents:new Blob([c],{type:"text/plain"})}),this.executePromise(a,d,b))};
+DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(c){if(this.ui.spinner.spin(document.body,mxResources.get("loading"))){var d=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),b=c[0].link.indexOf(this.appPath);if(0<b){var f=decodeURIComponent(c[0].link.substring(b+this.appPath.length-1));this.readFile({path:f},mxUtils.bind(this,function(b,k){if(null!=k&&k.id==c[0].id)try{this.ui.spinner.stop(),
+a(f.substring(1),new DropboxLibrary(this.ui,b,k))}catch(l){this.ui.handleError(l)}else this.createLibrary(c[0],a,d)}),d)}else this.createLibrary(c[0],a,d)}})})};
DropboxClient.prototype.createLibrary=function(a,c,d){this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){this.ui.loadUrl(a.link,mxUtils.bind(this,function(b){this.insertFile(a.name,b,mxUtils.bind(this,function(a){try{this.ui.spinner.stop(),c(a.getHash().substring(1),a)}catch(g){d(g)}}),d,!0)}),d)}),mxUtils.bind(this,function(){this.ui.spinner.stop()}))};
-DropboxClient.prototype.pickFile=function(a,c){null!=Dropbox.choose?(a=null!=a?a:mxUtils.bind(this,function(a,b){this.ui.loadFile(null!=a?"D"+encodeURIComponent(a):b.getHash(),null,b)}),Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(d){if(this.ui.spinner.spin(document.body,mxResources.get("loading")))if(c)this.ui.spinner.stop(),a(d[0].link);else{var b=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),e=mxUtils.bind(this,
-function(b,c){this.ui.spinner.stop();a(b,c)}),g=/\.png$/i.test(d[0].name);if(/\.vsdx$/i.test(d[0].name)||/\.gliffy$/i.test(d[0].name)||!this.ui.useCanvasForExport&&g)e(d[0].link);else{var k=d[0].link.indexOf(this.appPath);if(0<k){var l=decodeURIComponent(d[0].link.substring(k+this.appPath.length-1));this.readFile({path:l},mxUtils.bind(this,function(c,k){if(null!=k&&k.id==d[0].id){var f=g?c.lastIndexOf(","):-1;this.ui.spinner.stop();var m=null;0<f&&(f=this.ui.extractGraphModelFromPng(c.substring(f+
-1)),null!=f&&0<f.length?c=f:m=new LocalFile(this,c,l,!0));a(l.substring(1),null!=m?m:new DropboxFile(this.ui,c,k))}else this.createFile(d[0],e,b)}),b,g)}else this.createFile(d[0],e,b)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})};
-DropboxClient.prototype.createFile=function(a,c,d){var b=/(\.png)$/i.test(a.name);this.ui.loadUrl(a.link,mxUtils.bind(this,function(e){null!=e&&0<e.length?this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){var g=b?e.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(e.substring(g+1)),null!=g&&0<g.length&&(e=g));this.insertFile(a.name,e,mxUtils.bind(this,function(b){c(a.name,b)}),d)}),mxUtils.bind(this,function(){this.ui.spinner.stop()})):
+DropboxClient.prototype.pickFile=function(a,c){null!=Dropbox.choose?(a=null!=a?a:mxUtils.bind(this,function(a,b){this.ui.loadFile(null!=a?"D"+encodeURIComponent(a):b.getHash(),null,b)}),Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(d){if(this.ui.spinner.spin(document.body,mxResources.get("loading")))if(c)this.ui.spinner.stop(),a(d[0].link);else{var b=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),f=mxUtils.bind(this,
+function(b,c){this.ui.spinner.stop();a(b,c)}),g=/\.png$/i.test(d[0].name);if(/\.vsdx$/i.test(d[0].name)||/\.gliffy$/i.test(d[0].name)||!this.ui.useCanvasForExport&&g)f(d[0].link);else{var k=d[0].link.indexOf(this.appPath);if(0<k){var l=decodeURIComponent(d[0].link.substring(k+this.appPath.length-1));this.readFile({path:l},mxUtils.bind(this,function(c,k){if(null!=k&&k.id==d[0].id){var e=g?c.lastIndexOf(","):-1;this.ui.spinner.stop();var m=null;0<e&&(e=this.ui.extractGraphModelFromPng(c.substring(e+
+1)),null!=e&&0<e.length?c=e:m=new LocalFile(this,c,l,!0));a(l.substring(1),null!=m?m:new DropboxFile(this.ui,c,k))}else this.createFile(d[0],f,b)}),b,g)}else this.createFile(d[0],f,b)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})};
+DropboxClient.prototype.createFile=function(a,c,d){var b=/(\.png)$/i.test(a.name);this.ui.loadUrl(a.link,mxUtils.bind(this,function(f){null!=f&&0<f.length?this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){var g=b?f.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(f.substring(g+1)),null!=g&&0<g.length&&(f=g));this.insertFile(a.name,f,mxUtils.bind(this,function(b){c(a.name,b)}),d)}),mxUtils.bind(this,function(){this.ui.spinner.stop()})):
(this.ui.spinner.stop(),d({message:mxResources.get("errorLoadingFile")}))}),d,b)};OneDriveFile=function(a,c,d){DrawioFile.call(this,a,c);this.meta=d};mxUtils.extend(OneDriveFile,DrawioFile);OneDriveFile.prototype.getId=function(){return this.getIdOf(this.meta)};OneDriveFile.prototype.getParentId=function(){return this.getIdOf(this.meta,!0)};OneDriveFile.prototype.getIdOf=function(a,c){return(null!=a.parentReference&&null!=a.parentReference.driveId?a.parentReference.driveId+"/":"")+(null!=c?a.parentReference.id:a.id)};
OneDriveFile.prototype.getChannelId=function(){return"W-"+DrawioFile.prototype.getChannelId.apply(this,arguments)};OneDriveFile.prototype.getHash=function(){return"W"+encodeURIComponent(this.getId())};OneDriveFile.prototype.getMode=function(){return App.MODE_ONEDRIVE};OneDriveFile.prototype.isAutosaveOptional=function(){return!0};OneDriveFile.prototype.getTitle=function(){return this.meta.name};OneDriveFile.prototype.isRenamable=function(){return!0};OneDriveFile.prototype.isSyncSupported=function(){return!0};
OneDriveFile.prototype.getSize=function(){return this.meta.size};OneDriveFile.prototype.isConflict=function(a){return null!=a&&(412==a.getStatus()||409==a.getStatus())};OneDriveFile.prototype.getCurrentUser=function(){return null!=this.ui.oneDrive?this.ui.oneDrive.user:null};
OneDriveFile.prototype.loadDescriptor=function(a,c){this.ui.oneDrive.executeRequest(this.ui.oneDrive.getItemURL(this.getId()),mxUtils.bind(this,function(d){200<=d.getStatus()&&299>=d.getStatus()?a(JSON.parse(d.getText())):null!=c&&c()}),c)};OneDriveFile.prototype.getLatestVersion=function(a,c){this.ui.oneDrive.getFile(this.getId(),a,c)};OneDriveFile.prototype.getDescriptor=function(){return this.meta};OneDriveFile.prototype.setDescriptor=function(a){this.meta=a};
OneDriveFile.prototype.getDescriptorSecret=function(a){return null!=a.file&&null!=a.file.hashes&&null!=a.file.hashes.quickXorHash?a.file.hashes.quickXorHash:null};OneDriveFile.prototype.getDescriptorEtag=function(a){return a.eTag};OneDriveFile.prototype.setDescriptorEtag=function(a,c){a.eTag=c};
OneDriveFile.prototype.loadPatchDescriptor=function(a,c){var d=this.ui.oneDrive.getItemURL(this.getId());this.ui.oneDrive.executeRequest(d+"?select=etag,file",mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?a(JSON.parse(b.getText())):c(this.ui.oneDrive.parseRequestText(b))}),c)};
-OneDriveFile.prototype.getChannelKey=function(){return"undefined"!==typeof CryptoJS?CryptoJS.MD5(this.meta.createdDateTime+(null!=this.meta.createdBy&&null!=this.meta.createdBy.user?this.meta.createdBy.user.id:"")).toString():null};OneDriveFile.prototype.getLastModifiedDate=function(){return new Date(this.meta.lastModifiedDateTime)};OneDriveFile.prototype.save=function(a,c,d,b,e){this.doSave(this.getTitle(),a,c,d,b,e)};OneDriveFile.prototype.saveAs=function(a,c,d){this.doSave(a,!1,c,d)};
-OneDriveFile.prototype.doSave=function(a,c,d,b,e,g){var k=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.meta.name=k;this.saveFile(a,c,d,b,e,g)}),b,e,g])};
-OneDriveFile.prototype.saveFile=function(a,c,d,b,e,g){if(!this.isEditable())null!=d&&d();else if(!this.savingFile)if(this.getTitle()==a){var k=mxUtils.bind(this,function(){var a=null,c=null;try{a=this.isModified;c=this.isModified();this.savingFile=!0;this.savingFileTime=new Date;var e=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return c}}),f=g||this.constructor!=OneDriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?null:this.getCurrentEtag(),m=this.meta;
-e();this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(c,e){this.isModified=a;this.savingFile=!1;this.meta=c;this.fileSaved(e,m,mxUtils.bind(this,function(){this.contentChanged();null!=d&&d()}),b)}),mxUtils.bind(this,function(d,f){this.savingFile=!1;this.isModified=a;this.setModified(c||this.isModified());if(this.isConflict(f))this.inConflictState=!0,null!=this.sync?(this.savingFile=!0,this.savingFileTime=new Date,this.sync.fileConflict(null,mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,
-function(){this.updateFileData();k()}),100+500*Math.random())}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}))):null!=b&&b();else if(null!=b){if(null!=d&&null!=d.retry){var g=d.retry;d.retry=function(){e();g()}}b(d)}}),f)}catch(p){if(this.savingFile=!1,null!=a&&(this.isModified=a),null!=c&&this.setModified(c||this.isModified()),null!=b)b(p);else throw p;}});k()}else this.savingFile=!0,this.savingFileTime=new Date,this.ui.oneDrive.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=
-!1;null!=d&&d();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}))};OneDriveFile.prototype.rename=function(a,c,d){var b=this.getCurrentEtag();this.ui.oneDrive.renameFile(this,a,mxUtils.bind(this,function(e){this.hasSameExtension(a,this.getTitle())?(this.meta=e,this.descriptorChanged(),null!=this.sync&&this.sync.descriptorChanged(b),null!=c&&c(e)):(this.meta=e,null!=this.sync&&this.sync.descriptorChanged(b),this.save(!0,c,d))}),d)};
-OneDriveFile.prototype.move=function(a,c,d){this.ui.oneDrive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.meta=a;this.descriptorChanged();null!=c&&c(a)}),d)};OneDriveLibrary=function(a,c,d){OneDriveFile.call(this,a,c,d)};mxUtils.extend(OneDriveLibrary,OneDriveFile);OneDriveLibrary.prototype.isAutosave=function(){return!0};OneDriveLibrary.prototype.save=function(a,c,d){this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(a){this.desc=a;null!=c&&c(a)}),d)};OneDriveLibrary.prototype.open=function(){};OneDriveClient=function(a){DrawioClient.call(this,a,"oneDriveAuthInfo");a=JSON.parse(this.token);null!=a&&(this.token=a.access_token,this.endpointHint=a.endpointHint,this.tokenExpiresOn=a.expiresOn,a=(this.tokenExpiresOn-Date.now())/1E3,this.resetTokenRefresh(600>a?1:a))};mxUtils.extend(OneDriveClient,DrawioClient);OneDriveClient.prototype.clientId=window.DRAWIO_MSGRAPH_CLIENT_ID||("test.draw.io"==window.location.hostname?"2e598409-107f-4b59-89ca-d7723c8e00a4":"45c10911-200f-4e27-a666-9e9fca147395");
-OneDriveClient.prototype.scopes="user.read files.readwrite.all offline_access";OneDriveClient.prototype.redirectUri=window.location.protocol+"//"+window.location.host+"/microsoft";OneDriveClient.prototype.pickerRedirectUri=window.location.protocol+"//"+window.location.host+"/onedrive3.html";OneDriveClient.prototype.defEndpointHint="api.onedrive.com";OneDriveClient.prototype.endpointHint=OneDriveClient.prototype.defEndpointHint;OneDriveClient.prototype.extension=".drawio";
-OneDriveClient.prototype.baseUrl="https://graph.microsoft.com/v1.0";OneDriveClient.prototype.emptyFn=function(){};OneDriveClient.prototype.invalidFilenameRegExs=[/[~"#%\*:<>\?\/\\{\|}]/,/^\.lock$/i,/^CON$/i,/^PRN$/i,/^AUX$/i,/^NUL$/i,/^COM\d$/i,/^LPT\d$/i,/^desktop\.ini$/i,/_vti_/i];OneDriveClient.prototype.isValidFilename=function(a){if(null==a||""===a)return!1;for(var c=0;c<this.invalidFilenameRegExs.length;c++)if(this.invalidFilenameRegExs[c].test(a))return!1;return!0};
-OneDriveClient.prototype.get=function(a,c,d){a=new mxXmlRequest(a,null,"GET");a.setRequestHeaders=mxUtils.bind(this,function(a,c){a.setRequestHeader("Authorization","Bearer "+this.token)});a.send(c,d);return a};
-OneDriveClient.prototype.updateUser=function(a,c,d){var b=!0,e=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.get(this.baseUrl+"/me",mxUtils.bind(this,function(g){window.clearTimeout(e);b&&(200>g.getStatus()||300<=g.getStatus()?d?c({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,c,!0)}),c)):(g=JSON.parse(g.getText()),this.setUser(new DrawioUser(g.id,null,g.displayName)),
+OneDriveFile.prototype.getChannelKey=function(){return"undefined"!==typeof CryptoJS?CryptoJS.MD5(this.meta.createdDateTime+(null!=this.meta.createdBy&&null!=this.meta.createdBy.user?this.meta.createdBy.user.id:"")).toString():null};OneDriveFile.prototype.getLastModifiedDate=function(){return new Date(this.meta.lastModifiedDateTime)};OneDriveFile.prototype.save=function(a,c,d,b,f){this.doSave(this.getTitle(),a,c,d,b,f)};OneDriveFile.prototype.saveAs=function(a,c,d){this.doSave(a,!1,c,d)};
+OneDriveFile.prototype.doSave=function(a,c,d,b,f,g){var k=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.meta.name=k;this.saveFile(a,c,d,b,f,g)}),b,f,g])};
+OneDriveFile.prototype.saveFile=function(a,c,d,b,f,g){if(!this.isEditable())null!=d&&d();else if(!this.savingFile)if(this.getTitle()==a){var k=mxUtils.bind(this,function(){var a=null,c=null;try{a=this.isModified;c=this.isModified();this.savingFile=!0;this.savingFileTime=new Date;var f=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return c}}),e=g||this.constructor!=OneDriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?null:this.getCurrentEtag(),m=this.meta;
+f();this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(c,e){this.isModified=a;this.savingFile=!1;this.meta=c;this.fileSaved(e,m,mxUtils.bind(this,function(){this.contentChanged();null!=d&&d()}),b)}),mxUtils.bind(this,function(d,e){this.savingFile=!1;this.isModified=a;this.setModified(c||this.isModified());if(this.isConflict(e))this.inConflictState=!0,null!=this.sync?(this.savingFile=!0,this.savingFileTime=new Date,this.sync.fileConflict(null,mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,
+function(){this.updateFileData();k()}),100+500*Math.random())}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}))):null!=b&&b();else if(null!=b){if(null!=d&&null!=d.retry){var g=d.retry;d.retry=function(){f();g()}}b(d)}}),e)}catch(p){if(this.savingFile=!1,null!=a&&(this.isModified=a),null!=c&&this.setModified(c||this.isModified()),null!=b)b(p);else throw p;}});k()}else this.savingFile=!0,this.savingFileTime=new Date,this.ui.oneDrive.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=
+!1;null!=d&&d();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}))};OneDriveFile.prototype.rename=function(a,c,d){var b=this.getCurrentEtag();this.ui.oneDrive.renameFile(this,a,mxUtils.bind(this,function(f){this.hasSameExtension(a,this.getTitle())?(this.meta=f,this.descriptorChanged(),null!=this.sync&&this.sync.descriptorChanged(b),null!=c&&c(f)):(this.meta=f,null!=this.sync&&this.sync.descriptorChanged(b),this.save(!0,c,d))}),d)};
+OneDriveFile.prototype.move=function(a,c,d){this.ui.oneDrive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.meta=a;this.descriptorChanged();null!=c&&c(a)}),d)};OneDriveLibrary=function(a,c,d){OneDriveFile.call(this,a,c,d)};mxUtils.extend(OneDriveLibrary,OneDriveFile);OneDriveLibrary.prototype.isAutosave=function(){return!0};OneDriveLibrary.prototype.save=function(a,c,d){this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(a){this.desc=a;null!=c&&c(a)}),d)};OneDriveLibrary.prototype.open=function(){};OneDriveClient=function(a){DrawioClient.call(this,a,"oneDriveAuthInfo");a=JSON.parse(this.token);null!=a&&(this.token=a.access_token,this.endpointHint=a.endpointHint.replace("/Documents","/_layouts/15/onedrive.aspx"),this.tokenExpiresOn=a.expiresOn,a=(this.tokenExpiresOn-Date.now())/1E3,this.resetTokenRefresh(600>a?1:a))};mxUtils.extend(OneDriveClient,DrawioClient);
+OneDriveClient.prototype.clientId=window.DRAWIO_MSGRAPH_CLIENT_ID||("test.draw.io"==window.location.hostname?"2e598409-107f-4b59-89ca-d7723c8e00a4":"45c10911-200f-4e27-a666-9e9fca147395");OneDriveClient.prototype.scopes="user.read files.readwrite.all offline_access";OneDriveClient.prototype.redirectUri=window.location.protocol+"//"+window.location.host+"/microsoft";OneDriveClient.prototype.pickerRedirectUri=window.location.protocol+"//"+window.location.host+"/onedrive3.html";
+OneDriveClient.prototype.defEndpointHint="api.onedrive.com";OneDriveClient.prototype.endpointHint=OneDriveClient.prototype.defEndpointHint;OneDriveClient.prototype.extension=".drawio";OneDriveClient.prototype.baseUrl="https://graph.microsoft.com/v1.0";OneDriveClient.prototype.emptyFn=function(){};OneDriveClient.prototype.invalidFilenameRegExs=[/[~"#%\*:<>\?\/\\{\|}]/,/^\.lock$/i,/^CON$/i,/^PRN$/i,/^AUX$/i,/^NUL$/i,/^COM\d$/i,/^LPT\d$/i,/^desktop\.ini$/i,/_vti_/i];
+OneDriveClient.prototype.isValidFilename=function(a){if(null==a||""===a)return!1;for(var c=0;c<this.invalidFilenameRegExs.length;c++)if(this.invalidFilenameRegExs[c].test(a))return!1;return!0};OneDriveClient.prototype.get=function(a,c,d){a=new mxXmlRequest(a,null,"GET");a.setRequestHeaders=mxUtils.bind(this,function(a,c){a.setRequestHeader("Authorization","Bearer "+this.token)});a.send(c,d);return a};
+OneDriveClient.prototype.updateUser=function(a,c,d){var b=!0,f=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.get(this.baseUrl+"/me",mxUtils.bind(this,function(g){window.clearTimeout(f);b&&(200>g.getStatus()||300<=g.getStatus()?d?c({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,c,!0)}),c)):(g=JSON.parse(g.getText()),this.setUser(new DrawioUser(g.id,null,g.displayName)),
a()))}),c)};OneDriveClient.prototype.resetTokenRefresh=function(a){null!=this.tokenRefreshThread&&(window.clearTimeout(this.tokenRefreshThread),this.tokenRefreshThread=null);0<a&&(this.tokenRefreshInterval=1E3*a,this.tokenRefreshThread=window.setTimeout(mxUtils.bind(this,function(){this.authenticate(this.emptyFn,this.emptyFn,!0)}),900*a))};
-OneDriveClient.prototype.authenticate=function(a,c,d){if(null==window.onOneDriveCallback){var b=mxUtils.bind(this,function(){var e=!0,g=JSON.parse(this.getPersistentToken(!0));null!=g?(new mxXmlRequest(this.redirectUri+"?refresh_token="+g.refresh_token,null,"GET")).send(mxUtils.bind(this,function(e){200<=e.getStatus()&&299>=e.getStatus()?(e=JSON.parse(e.getText()),this.token=e.access_token,e.access_token=e.access_token,e.refresh_token=e.refresh_token,e.expiresOn=Date.now()+1E3*e.expires_in,this.tokenExpiresOn=
-e.expiresOn,this.setPersistentToken(JSON.stringify(e),!e.remember),this.resetTokenRefresh(e.expires_in),a()):(this.clearPersistentToken(),this.setUser(null),this.token=null,401!=e.getStatus()||d?c({message:mxResources.get("accessDenied"),retry:b}):b())}),c):this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(d,g){var k="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+this.clientId+"&response_type=code&redirect_uri="+encodeURIComponent(this.redirectUri)+"&scope="+encodeURIComponent(this.scopes),
-k=window.open(k,"odauth",["width=525,height=525","top="+(window.screenY+Math.max(window.outerHeight-525,0)/2),"left="+(window.screenX+Math.max(window.outerWidth-525,0)/2),"status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes"].join());null!=k&&(window.onOneDriveCallback=mxUtils.bind(this,function(k,f){if(e){window.onOneDriveCallback=null;e=!1;try{null==k?c({message:mxResources.get("accessDenied"),retry:b}):(null!=g&&g(),this.setUser(null),this.token=k.access_token,k.expiresOn=Date.now()+1E3*
-k.expires_in,this.tokenExpiresOn=k.expiresOn,k.remember=d,this.setPersistentToken(JSON.stringify(k),!d),this.resetTokenRefresh(k.expires_in),this.getAccountTypeAndEndpoint(mxUtils.bind(this,function(){a()}),c))}catch(m){c(m)}finally{null!=f&&f.close()}}else null!=f&&f.close()}),k.focus())}),mxUtils.bind(this,function(){e&&(window.onOneDriveCallback=null,e=!1,c({message:mxResources.get("accessDenied"),retry:b}))}))});b()}else c({code:App.ERROR_BUSY})};
-OneDriveClient.prototype.getAccountTypeAndEndpoint=function(a,c){this.get(this.baseUrl+"/me/drive/root",mxUtils.bind(this,function(d){try{if(200<=d.getStatus()&&299>=d.getStatus()){var b=JSON.parse(d.getText());0<b.webUrl.indexOf(".sharepoint.com")?this.endpointHint=b.webUrl:this.endpointHint=this.defEndpointHint;var e=JSON.parse(this.getPersistentToken(!0));null!=e&&(e.endpointHint=this.endpointHint,this.setPersistentToken(JSON.stringify(e),!e.remember));a();return}}catch(g){}c({message:mxResources.get("unknownError")+
-" (Code: "+d.getStatus()+")"})}),c)};
-OneDriveClient.prototype.executeRequest=function(a,c,d){var b=mxUtils.bind(this,function(e){var g=!0,k=window.setTimeout(mxUtils.bind(this,function(){g=!1;d({code:App.ERROR_TIMEOUT,retry:b})}),this.ui.timeout);this.get(a,mxUtils.bind(this,function(a){window.clearTimeout(k);g&&(200<=a.getStatus()&&299>=a.getStatus()||404==a.getStatus()?(null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0),c(a)):e||401!==a.getStatus()&&400!==a.getStatus()?d(this.parseRequestText(a)):this.authenticate(function(){b(!0)},
-d,e))}),d)});null==this.token||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(function(){b(!0)},d):b(!1)};OneDriveClient.prototype.checkToken=function(a){null==this.token||null==this.tokenRefreshThread||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(a,this.emptyFn):a()};OneDriveClient.prototype.getItemRef=function(a){var c=a.split("/");return 1<c.length?{driveId:c[0],id:c[1]}:{id:a}};
+OneDriveClient.prototype.authenticate=function(a,c,d){if(null==window.onOneDriveCallback){var b=mxUtils.bind(this,function(){var f=!0,g=JSON.parse(this.getPersistentToken(!0));null!=g?(new mxXmlRequest(this.redirectUri+"?refresh_token="+g.refresh_token,null,"GET")).send(mxUtils.bind(this,function(f){200<=f.getStatus()&&299>=f.getStatus()?(f=JSON.parse(f.getText()),this.token=f.access_token,f.access_token=f.access_token,f.refresh_token=f.refresh_token,f.expiresOn=Date.now()+1E3*f.expires_in,this.tokenExpiresOn=
+f.expiresOn,this.setPersistentToken(JSON.stringify(f),!f.remember),this.resetTokenRefresh(f.expires_in),a()):(this.clearPersistentToken(),this.setUser(null),this.token=null,401!=f.getStatus()||d?c({message:mxResources.get("accessDenied"),retry:b}):b())}),c):this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(d,g){var k="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+this.clientId+"&response_type=code&redirect_uri="+encodeURIComponent(this.redirectUri)+"&scope="+encodeURIComponent(this.scopes),
+k=window.open(k,"odauth",["width=525,height=525","top="+(window.screenY+Math.max(window.outerHeight-525,0)/2),"left="+(window.screenX+Math.max(window.outerWidth-525,0)/2),"status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes"].join());null!=k&&(window.onOneDriveCallback=mxUtils.bind(this,function(k,e){if(f){window.onOneDriveCallback=null;f=!1;try{null==k?c({message:mxResources.get("accessDenied"),retry:b}):(null!=g&&g(),this.setUser(null),this.token=k.access_token,k.expiresOn=Date.now()+1E3*
+k.expires_in,this.tokenExpiresOn=k.expiresOn,k.remember=d,this.setPersistentToken(JSON.stringify(k),!d),this.resetTokenRefresh(k.expires_in),this.getAccountTypeAndEndpoint(mxUtils.bind(this,function(){a()}),c))}catch(m){c(m)}finally{null!=e&&e.close()}}else null!=e&&e.close()}),k.focus())}),mxUtils.bind(this,function(){f&&(window.onOneDriveCallback=null,f=!1,c({message:mxResources.get("accessDenied"),retry:b}))}))});b()}else c({code:App.ERROR_BUSY})};
+OneDriveClient.prototype.getAccountTypeAndEndpoint=function(a,c){this.get(this.baseUrl+"/me/drive/root",mxUtils.bind(this,function(d){try{if(200<=d.getStatus()&&299>=d.getStatus()){var b=JSON.parse(d.getText());0<b.webUrl.indexOf(".sharepoint.com")?this.endpointHint=b.webUrl.replace("/Documents","/_layouts/15/onedrive.aspx"):this.endpointHint=this.defEndpointHint;var f=JSON.parse(this.getPersistentToken(!0));null!=f&&(f.endpointHint=this.endpointHint,this.setPersistentToken(JSON.stringify(f),!f.remember));
+a();return}}catch(g){}c({message:mxResources.get("unknownError")+" (Code: "+d.getStatus()+")"})}),c)};
+OneDriveClient.prototype.executeRequest=function(a,c,d){var b=mxUtils.bind(this,function(f){var g=!0,k=window.setTimeout(mxUtils.bind(this,function(){g=!1;d({code:App.ERROR_TIMEOUT,retry:b})}),this.ui.timeout);this.get(a,mxUtils.bind(this,function(a){window.clearTimeout(k);g&&(200<=a.getStatus()&&299>=a.getStatus()||404==a.getStatus()?(null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0),c(a)):f||401!==a.getStatus()&&400!==a.getStatus()?d(this.parseRequestText(a)):this.authenticate(function(){b(!0)},
+d,f))}),d)});null==this.token||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(function(){b(!0)},d):b(!1)};OneDriveClient.prototype.checkToken=function(a){null==this.token||null==this.tokenRefreshThread||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(a,this.emptyFn):a()};OneDriveClient.prototype.getItemRef=function(a){var c=a.split("/");return 1<c.length?{driveId:c[0],id:c[1]}:{id:a}};
OneDriveClient.prototype.getItemURL=function(a,c){var d=a.split("/");return 1<d.length?(c?"":this.baseUrl)+"/drives/"+d[0]+"/items/"+d[1]:(c?"":this.baseUrl)+"/me/drive/items/"+a};OneDriveClient.prototype.getLibrary=function(a,c,d){this.getFile(a,c,d,!1,!0)};
-OneDriveClient.prototype.getFile=function(a,c,d,b,e){e=null!=e?e:!1;this.executeRequest(this.getItemURL(a),mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){var b=JSON.parse(a.getText()),g=/\.png$/i.test(b.name);if(/\.v(dx|sdx?)$/i.test(b.name)||/\.gliffy$/i.test(b.name)||/\.pdf$/i.test(b.name)||!this.ui.useCanvasForExport&&g)this.ui.convertFile(b["@microsoft.graph.downloadUrl"],b.name,null!=b.file?b.file.mimeType:null,this.extension,c,d);else{var n=!0,q=window.setTimeout(mxUtils.bind(this,
-function(){n=!1;d({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.ui.loadUrl(b["@microsoft.graph.downloadUrl"],mxUtils.bind(this,function(a){try{if(window.clearTimeout(q),n){var f=g?a.lastIndexOf(","):-1,k=null;if(0<f){var l=this.ui.extractGraphModelFromPng(a.substring(f+1));null!=l&&0<l.length?a=l:k=new LocalFile(this.ui,a,b.name,!0)}else if("data:image/png;base64,PG14ZmlsZS"==a.substring(0,32)){var v=a.substring(22);a=window.atob&&!mxClient.IS_SF?atob(v):Base64.decode(v)}Graph.fileSupport&&(new XMLHttpRequest).upload&&
-this.ui.isRemoteFileFormat(a,b["@microsoft.graph.downloadUrl"])?this.ui.parseFile(new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){try{4==a.readyState&&(200<=a.status&&299>=a.status?c(new LocalFile(this.ui,a.responseText,b.name+this.extension,!0)):null!=d&&d({message:mxResources.get("errorLoadingFile")}))}catch(z){if(null!=d)d(z);else throw z;}}),b.name):null!=k?c(k):e?c(new OneDriveLibrary(this.ui,a,b)):c(new OneDriveFile(this.ui,a,b))}}catch(t){if(null!=d)d(t);else throw t;
+OneDriveClient.prototype.getFile=function(a,c,d,b,f){f=null!=f?f:!1;this.executeRequest(this.getItemURL(a),mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){var b=JSON.parse(a.getText()),g=/\.png$/i.test(b.name);if(/\.v(dx|sdx?)$/i.test(b.name)||/\.gliffy$/i.test(b.name)||/\.pdf$/i.test(b.name)||!this.ui.useCanvasForExport&&g)this.ui.convertFile(b["@microsoft.graph.downloadUrl"],b.name,null!=b.file?b.file.mimeType:null,this.extension,c,d);else{var n=!0,q=window.setTimeout(mxUtils.bind(this,
+function(){n=!1;d({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.ui.loadUrl(b["@microsoft.graph.downloadUrl"],mxUtils.bind(this,function(a){try{if(window.clearTimeout(q),n){var e=g?a.lastIndexOf(","):-1,k=null;if(0<e){var l=this.ui.extractGraphModelFromPng(a.substring(e+1));null!=l&&0<l.length?a=l:k=new LocalFile(this.ui,a,b.name,!0)}else if("data:image/png;base64,PG14ZmlsZS"==a.substring(0,32)){var v=a.substring(22);a=window.atob&&!mxClient.IS_SF?atob(v):Base64.decode(v)}Graph.fileSupport&&(new XMLHttpRequest).upload&&
+this.ui.isRemoteFileFormat(a,b["@microsoft.graph.downloadUrl"])?this.ui.parseFile(new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){try{4==a.readyState&&(200<=a.status&&299>=a.status?c(new LocalFile(this.ui,a.responseText,b.name+this.extension,!0)):null!=d&&d({message:mxResources.get("errorLoadingFile")}))}catch(y){if(null!=d)d(y);else throw y;}}),b.name):null!=k?c(k):f?c(new OneDriveLibrary(this.ui,a,b)):c(new OneDriveFile(this.ui,a,b))}}catch(t){if(null!=d)d(t);else throw t;
}}),mxUtils.bind(this,function(a){window.clearTimeout(q);n&&d(this.parseRequestText(a))}),g||null!=b.file&&null!=b.file.mimeType&&("image/"==b.file.mimeType.substring(0,6)||"application/pdf"==b.file.mimeType))}}else d(this.parseRequestText(a))}),d)};
-OneDriveClient.prototype.renameFile=function(a,c,d,b){null!=a&&null!=c&&(this.isValidFilename(c)?this.checkExists(a.getParentId(),c,!1,mxUtils.bind(this,function(e){e?this.writeFile(this.getItemURL(a.getId()),JSON.stringify({name:c}),"PATCH","application/json",d,b):b()})):b({message:this.invalidFilenameRegExs[0].test(c)?mxResources.get("oneDriveCharsNotAllowed"):mxResources.get("oneDriveInvalidDeviceName")}))};
-OneDriveClient.prototype.moveFile=function(a,c,d,b){c=this.getItemRef(c);var e=this.getItemRef(a);c.driveId!=e.driveId?b({message:mxResources.get("cannotMoveOneDrive",null,"Moving a file between accounts is not supported yet.")}):this.writeFile(this.getItemURL(a),JSON.stringify({parentReference:c}),"PATCH","application/json",d,b)};OneDriveClient.prototype.insertLibrary=function(a,c,d,b,e){this.insertFile(a,c,d,b,!0,e)};
-OneDriveClient.prototype.insertFile=function(a,c,d,b,e,g){this.isValidFilename(a)?(e=null!=e?e:!1,this.checkExists(g,a,!0,mxUtils.bind(this,function(k){k?(k="/me/drive/root",null!=g&&(k=this.getItemURL(g,!0)),k=this.baseUrl+k+"/children/"+encodeURIComponent(a)+"/content",this.writeFile(k,c,"PUT",null,mxUtils.bind(this,function(a){e?d(new OneDriveLibrary(this.ui,c,a)):d(new OneDriveFile(this.ui,c,a))}),b)):b()}))):b({message:this.invalidFilenameRegExs[0].test(a)?mxResources.get("oneDriveCharsNotAllowed"):
+OneDriveClient.prototype.renameFile=function(a,c,d,b){null!=a&&null!=c&&(this.isValidFilename(c)?this.checkExists(a.getParentId(),c,!1,mxUtils.bind(this,function(f){f?this.writeFile(this.getItemURL(a.getId()),JSON.stringify({name:c}),"PATCH","application/json",d,b):b()})):b({message:this.invalidFilenameRegExs[0].test(c)?mxResources.get("oneDriveCharsNotAllowed"):mxResources.get("oneDriveInvalidDeviceName")}))};
+OneDriveClient.prototype.moveFile=function(a,c,d,b){c=this.getItemRef(c);var f=this.getItemRef(a);c.driveId!=f.driveId?b({message:mxResources.get("cannotMoveOneDrive",null,"Moving a file between accounts is not supported yet.")}):this.writeFile(this.getItemURL(a),JSON.stringify({parentReference:c}),"PATCH","application/json",d,b)};OneDriveClient.prototype.insertLibrary=function(a,c,d,b,f){this.insertFile(a,c,d,b,!0,f)};
+OneDriveClient.prototype.insertFile=function(a,c,d,b,f,g){this.isValidFilename(a)?(f=null!=f?f:!1,this.checkExists(g,a,!0,mxUtils.bind(this,function(k){k?(k="/me/drive/root",null!=g&&(k=this.getItemURL(g,!0)),k=this.baseUrl+k+"/children/"+encodeURIComponent(a)+"/content",this.writeFile(k,c,"PUT",null,mxUtils.bind(this,function(a){f?d(new OneDriveLibrary(this.ui,c,a)):d(new OneDriveFile(this.ui,c,a))}),b)):b()}))):b({message:this.invalidFilenameRegExs[0].test(a)?mxResources.get("oneDriveCharsNotAllowed"):
mxResources.get("oneDriveInvalidDeviceName")})};
-OneDriveClient.prototype.checkExists=function(a,c,d,b){var e="/me/drive/root";null!=a&&(e=this.getItemURL(a,!0));this.executeRequest(this.baseUrl+e+"/children/"+encodeURIComponent(c),mxUtils.bind(this,function(a){404==a.getStatus()?b(!0):d?(this.ui.spinner.stop(),this.ui.confirm(mxResources.get("replaceIt",[c]),function(){b(!0)},function(){b(!1)})):(this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){b(!1)}))}),function(a){b(!1)},
-!0)};OneDriveClient.prototype.saveFile=function(a,c,d,b){try{var e=a.getData(),g=mxUtils.bind(this,function(g){var k=this.getItemURL(a.getId());this.writeFile(k+"/content/",g,"PUT",null,mxUtils.bind(this,function(a){c(a,e)}),d,b)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){g(this.ui.base64ToBlob(a,"image/png"))}),d,this.ui.getCurrentFile()!=a?e:null):g(e)}catch(k){d(k)}};
-OneDriveClient.prototype.writeFile=function(a,c,d,b,e,g,k){try{if(null!=a&&null!=c)if(4E6<=c.length)g({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(c.length)+" / 4 MB)"});else{var l=mxUtils.bind(this,function(n){try{var q=!0,f=window.setTimeout(mxUtils.bind(this,function(){q=!1;g({code:App.ERROR_TIMEOUT,retry:l})}),this.ui.timeout),m=new mxXmlRequest(a,c,d);m.setRequestHeaders=mxUtils.bind(this,function(a,c){a.setRequestHeader("Content-Type",b||" ");a.setRequestHeader("Authorization",
-"Bearer "+this.token);null!=k&&a.setRequestHeader("If-Match",k)});m.send(mxUtils.bind(this,function(a){window.clearTimeout(f);q&&(200<=a.getStatus()&&299>=a.getStatus()?(null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0),e(JSON.parse(a.getText()))):n||401!==a.getStatus()?g(this.parseRequestText(a),a):this.authenticate(function(){l(!0)},g,n))}),mxUtils.bind(this,function(a){window.clearTimeout(f);q&&g(this.parseRequestText(a))}))}catch(p){g(p)}});null==this.token||6E4>this.tokenExpiresOn-
+OneDriveClient.prototype.checkExists=function(a,c,d,b){var f="/me/drive/root";null!=a&&(f=this.getItemURL(a,!0));this.executeRequest(this.baseUrl+f+"/children/"+encodeURIComponent(c),mxUtils.bind(this,function(a){404==a.getStatus()?b(!0):d?(this.ui.spinner.stop(),this.ui.confirm(mxResources.get("replaceIt",[c]),function(){b(!0)},function(){b(!1)})):(this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){b(!1)}))}),function(a){b(!1)},
+!0)};OneDriveClient.prototype.saveFile=function(a,c,d,b){try{var f=a.getData(),g=mxUtils.bind(this,function(g){var k=this.getItemURL(a.getId());this.writeFile(k+"/content/",g,"PUT",null,mxUtils.bind(this,function(a){c(a,f)}),d,b)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){g(this.ui.base64ToBlob(a,"image/png"))}),d,this.ui.getCurrentFile()!=a?f:null):g(f)}catch(k){d(k)}};
+OneDriveClient.prototype.writeFile=function(a,c,d,b,f,g,k){try{if(null!=a&&null!=c)if(4E6<=c.length)g({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(c.length)+" / 4 MB)"});else{var l=mxUtils.bind(this,function(n){try{var q=!0,e=window.setTimeout(mxUtils.bind(this,function(){q=!1;g({code:App.ERROR_TIMEOUT,retry:l})}),this.ui.timeout),m=new mxXmlRequest(a,c,d);m.setRequestHeaders=mxUtils.bind(this,function(a,c){a.setRequestHeader("Content-Type",b||" ");a.setRequestHeader("Authorization",
+"Bearer "+this.token);null!=k&&a.setRequestHeader("If-Match",k)});m.send(mxUtils.bind(this,function(a){window.clearTimeout(e);q&&(200<=a.getStatus()&&299>=a.getStatus()?(null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0),f(JSON.parse(a.getText()))):n||401!==a.getStatus()?g(this.parseRequestText(a),a):this.authenticate(function(){l(!0)},g,n))}),mxUtils.bind(this,function(a){window.clearTimeout(e);q&&g(this.parseRequestText(a))}))}catch(p){g(p)}});null==this.token||6E4>this.tokenExpiresOn-
Date.now()?this.authenticate(function(){l(!0)},g):l(!1)}else g({message:mxResources.get("unknownError")})}catch(n){g(n)}};OneDriveClient.prototype.parseRequestText=function(a){var c={message:mxResources.get("unknownError")};try{c=JSON.parse(a.getText())}catch(d){}return c};OneDriveClient.prototype.pickLibrary=function(a){this.pickFile(function(c){a(c)})};
OneDriveClient.prototype.pickFolder=function(a,c){var d=mxUtils.bind(this,function(b){var c=mxUtils.bind(this,function(){OneDrive.save({clientId:this.clientId,action:"query",openInNewWindow:!0,advanced:{endpointHint:mxClient.IS_IE11?null:this.endpointHint,redirectUri:this.pickerRedirectUri,queryParameters:"select=id,name,parentReference",accessToken:this.token,isConsumerAccount:!1},success:mxUtils.bind(this,function(b){a(b);mxClient.IS_IE11&&(this.token=b.accessToken)}),cancel:mxUtils.bind(this,function(){}),
error:mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a)})})});b?c():this.ui.confirm(mxResources.get("useRootFolder"),mxUtils.bind(this,function(){a({value:[{id:"root",name:"root",parentReference:{driveId:"me"}}]})}),c,mxResources.get("yes"),mxResources.get("noPickFolder")+"...",!0);null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0)});null==this.token||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(mxUtils.bind(this,function(){d(!1)}),this.emptyFn):d(c)};
@@ -9117,103 +9123,103 @@ OneDriveClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,func
300,140,!0,!0)}),this.emptyFn):c()};OneDriveClient.prototype.logout=function(){if(isLocalStorage){var a=localStorage.getItem("odpickerv7cache");null!=a&&'{"odsdkLoginHint":{'==a.substring(0,19)&&localStorage.removeItem("odpickerv7cache")}this.clearPersistentToken();this.setUser(null);this.token=null};GitHubFile=function(a,c,d){DrawioFile.call(this,a,c);this.meta=d;this.peer=this.ui.gitHub};mxUtils.extend(GitHubFile,DrawioFile);GitHubFile.prototype.getId=function(){return encodeURIComponent(this.meta.org)+"/"+(null!=this.meta.repo?encodeURIComponent(this.meta.repo)+"/"+(null!=this.meta.ref?this.meta.ref+(null!=this.meta.path?"/"+this.meta.path:""):""):"")};GitHubFile.prototype.getHash=function(){return encodeURIComponent("H"+this.getId())};
GitHubFile.prototype.getPublicUrl=function(a){null!=this.meta.download_url?mxUtils.get(this.meta.download_url,mxUtils.bind(this,function(c){a(200<=c.getStatus()&&299>=c.getStatus()?this.meta.download_url:null)}),mxUtils.bind(this,function(){a(null)})):a(null)};GitHubFile.prototype.isConflict=function(a){return null!=a&&409==a.status};GitHubFile.prototype.getMode=function(){return App.MODE_GITHUB};GitHubFile.prototype.isAutosave=function(){return!1};GitHubFile.prototype.getTitle=function(){return this.meta.name};
GitHubFile.prototype.isRenamable=function(){return!1};GitHubFile.prototype.getLatestVersion=function(a,c){this.peer.getFile(this.getId(),a,c)};GitHubFile.prototype.isCompressedStorage=function(){return!1};GitHubFile.prototype.getDescriptor=function(){return this.meta};GitHubFile.prototype.setDescriptor=function(a){this.meta=a};GitHubFile.prototype.getDescriptorEtag=function(a){return a.sha};GitHubFile.prototype.setDescriptorEtag=function(a,c){a.sha=c};
-GitHubFile.prototype.save=function(a,c,d,b,e,g){this.doSave(this.getTitle(),c,d,b,e,g)};GitHubFile.prototype.saveAs=function(a,c,d){this.doSave(a,c,d)};GitHubFile.prototype.doSave=function(a,c,d,b,e,g){var k=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.meta.name=k;this.saveFile(a,!1,c,d,b,e,g)}),d,b,e])};
-GitHubFile.prototype.saveFile=function(a,c,d,b,e,g,k){if(this.isEditable())if(this.savingFile)null!=b&&b({code:App.ERROR_BUSY});else{var l=mxUtils.bind(this,function(c){if(this.getTitle()==a){var e=null,f=null;try{e=this.isModified;f=this.isModified();this.savingFile=!0;this.savingFileTime=new Date;var k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return f}}),l=this.getCurrentEtag(),n=this.data;k();this.peer.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=
-!1;this.isModified=e;this.setDescriptorEtag(this.meta,a);this.fileSaved(n,l,mxUtils.bind(this,function(){this.contentChanged();null!=d&&d()}),b)}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(f||this.isModified());if(this.isConflict(a))this.inConflictState=!0,null!=b&&b({commitMessage:c});else if(null!=b){if(null!=a&&null!=a.retry){var d=a.retry;a.retry=function(){k();d()}}b(a)}}),g,c)}catch(v){if(this.savingFile=!1,null!=e&&(this.isModified=e),null!=f&&this.setModified(f||
+GitHubFile.prototype.save=function(a,c,d,b,f,g){this.doSave(this.getTitle(),c,d,b,f,g)};GitHubFile.prototype.saveAs=function(a,c,d){this.doSave(a,c,d)};GitHubFile.prototype.doSave=function(a,c,d,b,f,g){var k=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.meta.name=k;this.saveFile(a,!1,c,d,b,f,g)}),d,b,f])};
+GitHubFile.prototype.saveFile=function(a,c,d,b,f,g,k){if(this.isEditable())if(this.savingFile)null!=b&&b({code:App.ERROR_BUSY});else{var l=mxUtils.bind(this,function(c){if(this.getTitle()==a){var f=null,e=null;try{f=this.isModified;e=this.isModified();this.savingFile=!0;this.savingFileTime=new Date;var k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return e}}),l=this.getCurrentEtag(),n=this.data;k();this.peer.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=
+!1;this.isModified=f;this.setDescriptorEtag(this.meta,a);this.fileSaved(n,l,mxUtils.bind(this,function(){this.contentChanged();null!=d&&d()}),b)}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=f;this.setModified(e||this.isModified());if(this.isConflict(a))this.inConflictState=!0,null!=b&&b({commitMessage:c});else if(null!=b){if(null!=a&&null!=a.retry){var d=a.retry;a.retry=function(){k();d()}}b(a)}}),g,c)}catch(v){if(this.savingFile=!1,null!=f&&(this.isModified=f),null!=e&&this.setModified(e||
this.isModified()),null!=b)b(v);else throw v;}}else this.savingFile=!0,this.savingFileTime=new Date,this.ui.pickFolder(this.getMode(),mxUtils.bind(this,function(e){this.peer.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=d&&d();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}),!1,e,c)}))});null!=k?l(k):this.peer.showCommitDialog(this.meta.name,null==this.getDescriptorEtag(this.meta)||this.meta.isNew,mxUtils.bind(this,function(a){l(a)}),
b)}else null!=d&&d()};GitHubLibrary=function(a,c,d){GitHubFile.call(this,a,c,d)};mxUtils.extend(GitHubLibrary,GitHubFile);GitHubLibrary.prototype.doSave=function(a,c,d){this.saveFile(a,!1,c,d)};GitHubLibrary.prototype.open=function(){};GitHubClient=function(a,c){DrawioClient.call(this,a,c||"ghauth")};mxUtils.extend(GitHubClient,DrawioClient);GitHubClient.prototype.clientId="test.draw.io"==window.location.hostname?"23bc97120b9035515661":"89c9e4624ca416554489";GitHubClient.prototype.scope="repo";GitHubClient.prototype.extension=".drawio";GitHubClient.prototype.baseUrl="https://api.github.com";GitHubClient.prototype.maxFileSize=1E6;
-GitHubClient.prototype.updateUser=function(a,c,d){var b=!0,e=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.ui.timeout);mxUtils.get(this.baseUrl+"/user?access_token="+this.token,mxUtils.bind(this,function(g){window.clearTimeout(e);b&&(401===g.getStatus()?d?c({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,c,!0)}),c)):200>g.getStatus()||300<=g.getStatus()?
+GitHubClient.prototype.updateUser=function(a,c,d){var b=!0,f=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.ui.timeout);mxUtils.get(this.baseUrl+"/user?access_token="+this.token,mxUtils.bind(this,function(g){window.clearTimeout(f);b&&(401===g.getStatus()?d?c({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,c,!0)}),c)):200>g.getStatus()||300<=g.getStatus()?
c({message:mxResources.get("accessDenied")}):(this.setUser(this.createUser(JSON.parse(g.getText()))),a()))}))};GitHubClient.prototype.createUser=function(a){return new DrawioUser(a.id,a.email,a.name)};
-GitHubClient.prototype.authenticate=function(a,c){if(null==window.onGitHubCallback){var d=mxUtils.bind(this,function(){var b=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open("https://github.com/login/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope,"ghauth")?window.onGitHubCallback=mxUtils.bind(this,function(k,l){if(b)if(window.onGitHubCallback=null,b=!1,null==k)c({message:mxResources.get("accessDenied"),retry:d});else{var n=mxUtils.bind(this,function(){var b=
-!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT,retry:n})}),this.ui.timeout);mxUtils.get("/github?client_id="+this.clientId+"&code="+k,mxUtils.bind(this,function(f){window.clearTimeout(d);if(b)try{if(200>f.getStatus()||300<=f.getStatus())c({message:mxResources.get("cannotLogin")});else{null!=g&&g();var k=f.getText();this.token=k.substring(k.indexOf("=")+1,k.indexOf("&"));this.setUser(null);e&&this.setPersistentToken(this.token);a()}}catch(u){c(u)}finally{null!=l&&
+GitHubClient.prototype.authenticate=function(a,c){if(null==window.onGitHubCallback){var d=mxUtils.bind(this,function(){var b=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(f,g){null!=window.open("https://github.com/login/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope,"ghauth")?window.onGitHubCallback=mxUtils.bind(this,function(k,l){if(b)if(window.onGitHubCallback=null,b=!1,null==k)c({message:mxResources.get("accessDenied"),retry:d});else{var n=mxUtils.bind(this,function(){var b=
+!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c({code:App.ERROR_TIMEOUT,retry:n})}),this.ui.timeout);mxUtils.get("/github?client_id="+this.clientId+"&code="+k,mxUtils.bind(this,function(e){window.clearTimeout(d);if(b)try{if(200>e.getStatus()||300<=e.getStatus())c({message:mxResources.get("cannotLogin")});else{null!=g&&g();var k=e.getText();this.token=k.substring(k.indexOf("=")+1,k.indexOf("&"));this.setUser(null);f&&this.setPersistentToken(this.token);a()}}catch(u){c(u)}finally{null!=l&&
l.close()}}))});n()}else null!=l&&l.close()}):c({message:mxResources.get("serviceUnavailableOrBlocked"),retry:d})}),mxUtils.bind(this,function(){b&&(window.onGitHubCallback=null,b=!1,c({message:mxResources.get("accessDenied"),retry:d}))}))});d()}else c({code:App.ERROR_BUSY})};GitHubClient.prototype.getErrorMessage=function(a,c){try{var d=JSON.parse(a.getText());null!=d&&null!=d.message&&(c=d.message)}catch(b){}return c};
-GitHubClient.prototype.executeRequest=function(a,c,d,b){var e=mxUtils.bind(this,function(k){var l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),q=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","token "+q)};a.send(mxUtils.bind(this,function(){window.clearTimeout(n);if(l)if(200<=a.getStatus()&&299>=a.getStatus()||b&&404==a.getStatus())c(a);else if(401===a.getStatus())k?d({code:a.getStatus(),message:mxResources.get("accessDenied"),
-retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},d)})}):this.authenticate(function(){e(!0)},d);else if(403===a.getStatus()){var f=!1;try{var m=JSON.parse(a.getText());null!=m&&null!=m.errors&&0<m.errors.length&&(f="too_large"==m.errors[0].code)}catch(p){}d({message:mxResources.get(f?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?d({code:a.getStatus(),message:this.getErrorMessage(a,mxResources.get("fileNotFound"))}):409===a.getStatus()?d({code:a.getStatus(),status:409}):
-d({code:a.getStatus(),message:this.getErrorMessage(a,mxResources.get("error")+" "+a.getStatus())})}),d)}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},d,a):e(a)});null==this.token?this.authenticate(function(){g(!0)},d):g(!1)};GitHubClient.prototype.getLibrary=function(a,c,d){this.getFile(a,c,d,!0)};
-GitHubClient.prototype.getSha=function(a,c,d,b,e,g){var k="&t="+(new Date).getTime();a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+c+"/contents/"+d+"?ref="+b+k,null,"HEAD");this.executeRequest(a,mxUtils.bind(this,function(a){try{e(a.request.getResponseHeader("Etag").match(/"([^"]+)"/)[1])}catch(n){g(n)}}),g)};
-GitHubClient.prototype.getFile=function(a,c,d,b,e){b=null!=b?b:!1;var g=a.split("/"),k=g[0],l=g[1],n=g[2];a=g.slice(3,g.length).join("/");g=/\.png$/i.test(a);!e&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||/\.pdf$/i.test(a)||!this.ui.useCanvasForExport&&g)?null!=this.token?(e=this.baseUrl+"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+n+"&token="+this.token,g=a.split("/"),this.ui.convertFile(e,0<g.length?g[g.length-1]:a,null,this.extension,c,d)):d({message:mxResources.get("accessDenied")}):(e="&t="+
-(new Date).getTime(),a=new mxXmlRequest(this.baseUrl+"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+n+e,null,"GET"),this.executeRequest(a,mxUtils.bind(this,function(a){try{c(this.createGitHubFile(k,l,n,JSON.parse(a.getText()),b))}catch(f){d(f)}}),d))};
-GitHubClient.prototype.createGitHubFile=function(a,c,d,b,e){a={org:a,repo:c,ref:d,name:b.name,path:b.path,sha:b.sha,html_url:b.html_url,download_url:b.download_url};c=b.content;"base64"===b.encoding&&(/\.jpe?g$/i.test(b.name)?c="data:image/jpeg;base64,"+c:/\.gif$/i.test(b.name)?c="data:image/gif;base64,"+c:/\.png$/i.test(b.name)?(b=this.ui.extractGraphModelFromPng(c),c=null!=b&&0<b.length?b:"data:image/png;base64,"+c):c=Base64.decode(c));return e?new GitHubLibrary(this.ui,c,a):new GitHubFile(this.ui,
-c,a)};GitHubClient.prototype.insertLibrary=function(a,c,d,b,e){this.insertFile(a,c,d,b,!0,e,!1)};
-GitHubClient.prototype.insertFile=function(a,c,d,b,e,g,k){e=null!=e?e:!1;g=g.split("/");var l=g[0],n=g[1],q=g[2],f=g.slice(3,g.length).join("/");0<f.length&&(f+="/");f+=a;this.checkExists(l+"/"+n+"/"+q+"/"+f,!0,mxUtils.bind(this,function(g,p){g?e?(k||(c=Base64.encode(c)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(l,n,q,f,a,c,p,mxUtils.bind(this,function(a){try{var c=JSON.parse(a.getText());d(this.createGitHubFile(l,n,q,c.content,e))}catch(z){b(z)}}),b)}),b)):d(new GitHubFile(this.ui,
-c,{org:l,repo:n,ref:q,name:a,path:f,sha:p,isNew:!0})):b()}))};GitHubClient.prototype.showCommitDialog=function(a,c,d,b){var e=this.ui.spinner.pause();a=new FilenameDialog(this.ui,mxResources.get(c?"addedFile":"updateFile",[a]),mxResources.get("ok"),mxUtils.bind(this,function(a){e();d(a)}),mxResources.get("commitMessage"),null,null,null,null,mxUtils.bind(this,function(){b()}),null,280);this.ui.showDialog(a.container,400,80,!0,!1);a.init()};
-GitHubClient.prototype.writeFile=function(a,c,d,b,e,g,k,l,n){g.length>=this.maxFileSize?n({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"}):(d={path:b,branch:decodeURIComponent(d),message:e,content:g},null!=k&&(d.sha=k),a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+c+"/contents/"+b,JSON.stringify(d),"PUT"),this.executeRequest(a,mxUtils.bind(this,function(a){l(a)}),mxUtils.bind(this,function(a){404==a.code&&(a.helpLink="https://github.com/settings/connections/applications/"+
+GitHubClient.prototype.executeRequest=function(a,c,d,b){var f=mxUtils.bind(this,function(k){var l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),q=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","token "+q)};a.send(mxUtils.bind(this,function(){window.clearTimeout(n);if(l)if(200<=a.getStatus()&&299>=a.getStatus()||b&&404==a.getStatus())c(a);else if(401===a.getStatus())k?d({code:a.getStatus(),message:mxResources.get("accessDenied"),
+retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},d)})}):this.authenticate(function(){f(!0)},d);else if(403===a.getStatus()){var e=!1;try{var m=JSON.parse(a.getText());null!=m&&null!=m.errors&&0<m.errors.length&&(e="too_large"==m.errors[0].code)}catch(p){}d({message:mxResources.get(e?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?d({code:a.getStatus(),message:this.getErrorMessage(a,mxResources.get("fileNotFound"))}):409===a.getStatus()?d({code:a.getStatus(),status:409}):
+d({code:a.getStatus(),message:this.getErrorMessage(a,mxResources.get("error")+" "+a.getStatus())})}),d)}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},d,a):f(a)});null==this.token?this.authenticate(function(){g(!0)},d):g(!1)};GitHubClient.prototype.getLibrary=function(a,c,d){this.getFile(a,c,d,!0)};
+GitHubClient.prototype.getSha=function(a,c,d,b,f,g){var k="&t="+(new Date).getTime();a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+c+"/contents/"+d+"?ref="+b+k,null,"HEAD");this.executeRequest(a,mxUtils.bind(this,function(a){try{f(a.request.getResponseHeader("Etag").match(/"([^"]+)"/)[1])}catch(n){g(n)}}),g)};
+GitHubClient.prototype.getFile=function(a,c,d,b,f){b=null!=b?b:!1;var g=a.split("/"),k=g[0],l=g[1],n=g[2];a=g.slice(3,g.length).join("/");g=/\.png$/i.test(a);!f&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||/\.pdf$/i.test(a)||!this.ui.useCanvasForExport&&g)?null!=this.token?(f=this.baseUrl+"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+n+"&token="+this.token,g=a.split("/"),this.ui.convertFile(f,0<g.length?g[g.length-1]:a,null,this.extension,c,d)):d({message:mxResources.get("accessDenied")}):(f="&t="+
+(new Date).getTime(),a=new mxXmlRequest(this.baseUrl+"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+n+f,null,"GET"),this.executeRequest(a,mxUtils.bind(this,function(a){try{c(this.createGitHubFile(k,l,n,JSON.parse(a.getText()),b))}catch(e){d(e)}}),d))};
+GitHubClient.prototype.createGitHubFile=function(a,c,d,b,f){a={org:a,repo:c,ref:d,name:b.name,path:b.path,sha:b.sha,html_url:b.html_url,download_url:b.download_url};c=b.content;"base64"===b.encoding&&(/\.jpe?g$/i.test(b.name)?c="data:image/jpeg;base64,"+c:/\.gif$/i.test(b.name)?c="data:image/gif;base64,"+c:/\.png$/i.test(b.name)?(b=this.ui.extractGraphModelFromPng(c),c=null!=b&&0<b.length?b:"data:image/png;base64,"+c):c=Base64.decode(c));return f?new GitHubLibrary(this.ui,c,a):new GitHubFile(this.ui,
+c,a)};GitHubClient.prototype.insertLibrary=function(a,c,d,b,f){this.insertFile(a,c,d,b,!0,f,!1)};
+GitHubClient.prototype.insertFile=function(a,c,d,b,f,g,k){f=null!=f?f:!1;g=g.split("/");var l=g[0],n=g[1],q=g[2],e=g.slice(3,g.length).join("/");0<e.length&&(e+="/");e+=a;this.checkExists(l+"/"+n+"/"+q+"/"+e,!0,mxUtils.bind(this,function(g,p){g?f?(k||(c=Base64.encode(c)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(l,n,q,e,a,c,p,mxUtils.bind(this,function(a){try{var c=JSON.parse(a.getText());d(this.createGitHubFile(l,n,q,c.content,f))}catch(y){b(y)}}),b)}),b)):d(new GitHubFile(this.ui,
+c,{org:l,repo:n,ref:q,name:a,path:e,sha:p,isNew:!0})):b()}))};GitHubClient.prototype.showCommitDialog=function(a,c,d,b){var f=this.ui.spinner.pause();a=new FilenameDialog(this.ui,mxResources.get(c?"addedFile":"updateFile",[a]),mxResources.get("ok"),mxUtils.bind(this,function(a){f();d(a)}),mxResources.get("commitMessage"),null,null,null,null,mxUtils.bind(this,function(){b()}),null,280);this.ui.showDialog(a.container,400,80,!0,!1);a.init()};
+GitHubClient.prototype.writeFile=function(a,c,d,b,f,g,k,l,n){g.length>=this.maxFileSize?n({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"}):(d={path:b,branch:decodeURIComponent(d),message:f,content:g},null!=k&&(d.sha=k),a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+c+"/contents/"+b,JSON.stringify(d),"PUT"),this.executeRequest(a,mxUtils.bind(this,function(a){l(a)}),mxUtils.bind(this,function(a){404==a.code&&(a.helpLink="https://github.com/settings/connections/applications/"+
this.clientId,a.code=null);n(a)})))};
-GitHubClient.prototype.checkExists=function(a,c,d){var b=a.split("/"),e=b[0],g=b[1],k=b[2];a=b.slice(3,b.length).join("/");this.getSha(e,g,a,k,mxUtils.bind(this,function(b){if(c){var e=this.ui.spinner.pause();this.ui.confirm(mxResources.get("replaceIt",[a]),function(){e();d(!0,b)},function(){e();d(!1)})}else this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){d(!1)})}),mxUtils.bind(this,function(a){d(!0)}),null,!0)};
-GitHubClient.prototype.saveFile=function(a,c,d,b,e){var g=a.meta.org,k=a.meta.repo,l=a.meta.ref,n=a.meta.path,q=mxUtils.bind(this,function(b,f){this.writeFile(g,k,l,n,e,f,b,mxUtils.bind(this,function(b){delete a.meta.isNew;c(JSON.parse(b.getText()).content.sha)}),mxUtils.bind(this,function(a){d(a)}))}),f=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(n)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){q(a.meta.sha,b)}),d,this.ui.getCurrentFile()!=a?a.getData():null):
-q(a.meta.sha,Base64.encode(a.getData()))});b?this.getSha(g,k,n,l,mxUtils.bind(this,function(b){a.meta.sha=b;f()}),d):f()};GitHubClient.prototype.pickLibrary=function(a){this.pickFile(a)};GitHubClient.prototype.pickFolder=function(a){this.showGitHubDialog(!1,a)};GitHubClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("H"+encodeURIComponent(a))});this.showGitHubDialog(!0,a)};
-GitHubClient.prototype.showGitHubDialog=function(a,c){var d=null,b=null,e=null,g=null,k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.height="304px";var l=document.createElement("h3");mxUtils.write(l,mxResources.get(a?"selectFile":"selectFolder"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";k.appendChild(l);var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.border="1px solid lightgray";n.style.boxSizing=
-"border-box";n.style.padding="4px";n.style.overflow="auto";n.style.lineHeight="1.2em";n.style.height="274px";k.appendChild(n);var q=document.createElement("div");q.style.textOverflow="ellipsis";q.style.boxSizing="border-box";q.style.overflow="hidden";q.style.padding="4px";q.style.width="100%";var f=new CustomDialog(this.ui,k,mxUtils.bind(this,function(){c(d+"/"+b+"/"+encodeURIComponent(e)+"/"+g)}));this.ui.showDialog(f.container,420,360,!0,!0);a&&f.okButton.parentNode.removeChild(f.okButton);var m=
-mxUtils.bind(this,function(a,b,c){var d=document.createElement("a");d.setAttribute("href","javascript:void(0);");d.setAttribute("title",a);mxUtils.write(d,a);mxEvent.addListener(d,"click",b);null!=c&&(a=q.cloneNode(),a.style.padding=c,a.appendChild(d),d=a);return d}),p=mxUtils.bind(this,function(a){var c=document.createElement("div");c.style.marginBottom="8px";c.appendChild(m(d+"/"+b,mxUtils.bind(this,function(){g=null;C()})));a||(mxUtils.write(c," / "),c.appendChild(m(decodeURIComponent(e),mxUtils.bind(this,
-function(){g=null;x()}))));if(null!=g&&0<g.length){var f=g.split("/");for(a=0;a<f.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(m(f[a],mxUtils.bind(this,function(){g=f.slice(0,a+1).join("/");z()})))})(a)}n.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(g=e=b=d=null,C()):this.ui.hideDialog()}))}),v=null,t=null,z=mxUtils.bind(this,function(k){null==k&&(n.innerHTML="",k=1);var l=new mxXmlRequest(this.baseUrl+
-"/repos/"+d+"/"+b+"/contents/"+g+"?ref="+encodeURIComponent(e)+"&per_page=100&page="+k,null,"GET");this.ui.spinner.spin(n,mxResources.get("loading"));f.okButton.removeAttribute("disabled");null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var B=mxUtils.bind(this,function(){z(k+1)});mxEvent.addListener(v,
-"click",B);this.executeRequest(l,mxUtils.bind(this,function(f){this.ui.spinner.stop();1==k&&(p(),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,C();else{var a=g.split("/");g=a.slice(0,a.length-1).join("/");z()}}),"4px")));var l=JSON.parse(f.getText());if(null==l||0==l.length)mxUtils.write(n,mxResources.get("noFiles"));else{var y=!0,t=0;f=mxUtils.bind(this,function(f){for(var k=0;k<l.length;k++)mxUtils.bind(this,function(k,l){if(f==("dir"==k.type)){var p=q.cloneNode();p.style.backgroundColor=
-y?"#eeeeee":"";y=!y;var B=document.createElement("img");B.src=IMAGE_PATH+"/"+("dir"==k.type?"folder.png":"file.png");B.setAttribute("align","absmiddle");B.style.marginRight="4px";B.style.marginTop="-4px";B.width=20;p.appendChild(B);p.appendChild(m(k.name+("dir"==k.type?"/":""),mxUtils.bind(this,function(){"dir"==k.type?(g=k.path,z()):a&&"file"==k.type&&(this.ui.hideDialog(),c(d+"/"+b+"/"+encodeURIComponent(e)+"/"+k.path))})));n.appendChild(p);t++}})(l[k],k)});f(!0);a&&f(!1)}}),u,!0)}),x=mxUtils.bind(this,
-function(a){null==a&&(n.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/repos/"+d+"/"+b+"/branches?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var k=
-mxUtils.bind(this,function(){x(a+1)});mxEvent.addListener(v,"click",k);this.executeRequest(c,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(p(!0),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){g=null;C()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(n,mxResources.get("noFiles"));else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a,b){var c=q.cloneNode();c.style.backgroundColor=0==b%2?"#eeeeee":"";c.appendChild(m(a.name,mxUtils.bind(this,function(){e=
-a.name;g="";z()})));n.appendChild(c)})(b[c],c);100==b.length&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&k()},mxEvent.addListener(n,"scroll",t))}}),u)}),C=mxUtils.bind(this,function(a){null==a&&(n.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=t&&mxEvent.removeListener(n,"scroll",t);null!=v&&null!=v.parentNode&&
-v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){C(a+1)});mxEvent.addListener(v,"click",k);this.executeRequest(c,mxUtils.bind(this,function(c){this.ui.spinner.stop();c=JSON.parse(c.getText());if(null==c||0==c.length)mxUtils.write(n,mxResources.get("noFiles"));else{1==a&&(n.appendChild(m(mxResources.get("enterValue")+"...",mxUtils.bind(this,
-function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,function(a){if(null!=a){var c=a.split("/");if(1<c.length){a=c[0];var f=c[1];3>c.length?(d=a,b=f,g=e=null,x()):this.ui.spinner.spin(n,mxResources.get("loading"))&&(c=encodeURIComponent(c.slice(2,c.length).join("/")),this.getFile(a+"/"+f+"/"+c,mxUtils.bind(this,function(a){this.ui.spinner.stop();d=a.meta.org;b=a.meta.repo;e=decodeURIComponent(a.meta.ref);g="";z()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();
-this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})}}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(n),mxUtils.br(n));for(var f=0;f<c.length;f++)mxUtils.bind(this,function(a,c){var f=q.cloneNode();f.style.backgroundColor=0==c%2?"#eeeeee":"";f.appendChild(m(a.full_name,mxUtils.bind(this,function(){d=a.owner.login;b=a.name;e=a.default_branch;
-g="";z()})));n.appendChild(f)})(c[f],f)}100==c.length&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&k()},mxEvent.addListener(n,"scroll",t))}),u)});C()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,c,d){DrawioFile.call(this,a,c);this.meta=d;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1};TrelloFile.prototype.getSize=function(){return this.meta.bytes};
+GitHubClient.prototype.checkExists=function(a,c,d){var b=a.split("/"),f=b[0],g=b[1],k=b[2];a=b.slice(3,b.length).join("/");this.getSha(f,g,a,k,mxUtils.bind(this,function(b){if(c){var f=this.ui.spinner.pause();this.ui.confirm(mxResources.get("replaceIt",[a]),function(){f();d(!0,b)},function(){f();d(!1)})}else this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){d(!1)})}),mxUtils.bind(this,function(a){d(!0)}),null,!0)};
+GitHubClient.prototype.saveFile=function(a,c,d,b,f){var g=a.meta.org,k=a.meta.repo,l=a.meta.ref,n=a.meta.path,q=mxUtils.bind(this,function(b,e){this.writeFile(g,k,l,n,f,e,b,mxUtils.bind(this,function(b){delete a.meta.isNew;c(JSON.parse(b.getText()).content.sha)}),mxUtils.bind(this,function(a){d(a)}))}),e=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(n)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){q(a.meta.sha,b)}),d,this.ui.getCurrentFile()!=a?a.getData():null):
+q(a.meta.sha,Base64.encode(a.getData()))});b?this.getSha(g,k,n,l,mxUtils.bind(this,function(b){a.meta.sha=b;e()}),d):e()};GitHubClient.prototype.pickLibrary=function(a){this.pickFile(a)};GitHubClient.prototype.pickFolder=function(a){this.showGitHubDialog(!1,a)};GitHubClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("H"+encodeURIComponent(a))});this.showGitHubDialog(!0,a)};
+GitHubClient.prototype.showGitHubDialog=function(a,c){var d=null,b=null,f=null,g=null,k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.height="304px";var l=document.createElement("h3");mxUtils.write(l,mxResources.get(a?"selectFile":"selectFolder"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";k.appendChild(l);var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.border="1px solid lightgray";n.style.boxSizing=
+"border-box";n.style.padding="4px";n.style.overflow="auto";n.style.lineHeight="1.2em";n.style.height="274px";k.appendChild(n);var q=document.createElement("div");q.style.textOverflow="ellipsis";q.style.boxSizing="border-box";q.style.overflow="hidden";q.style.padding="4px";q.style.width="100%";var e=new CustomDialog(this.ui,k,mxUtils.bind(this,function(){c(d+"/"+b+"/"+encodeURIComponent(f)+"/"+g)}));this.ui.showDialog(e.container,420,360,!0,!0);a&&e.okButton.parentNode.removeChild(e.okButton);var m=
+mxUtils.bind(this,function(a,b,c){var d=document.createElement("a");d.setAttribute("href","javascript:void(0);");d.setAttribute("title",a);mxUtils.write(d,a);mxEvent.addListener(d,"click",b);null!=c&&(a=q.cloneNode(),a.style.padding=c,a.appendChild(d),d=a);return d}),p=mxUtils.bind(this,function(a){var c=document.createElement("div");c.style.marginBottom="8px";c.appendChild(m(d+"/"+b,mxUtils.bind(this,function(){g=null;B()})));a||(mxUtils.write(c," / "),c.appendChild(m(decodeURIComponent(f),mxUtils.bind(this,
+function(){g=null;z()}))));if(null!=g&&0<g.length){var e=g.split("/");for(a=0;a<e.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(m(e[a],mxUtils.bind(this,function(){g=e.slice(0,a+1).join("/");y()})))})(a)}n.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(g=f=b=d=null,B()):this.ui.hideDialog()}))}),v=null,t=null,y=mxUtils.bind(this,function(k){null==k&&(n.innerHTML="",k=1);var l=new mxXmlRequest(this.baseUrl+
+"/repos/"+d+"/"+b+"/contents/"+g+"?ref="+encodeURIComponent(f)+"&per_page=100&page="+k,null,"GET");this.ui.spinner.spin(n,mxResources.get("loading"));e.okButton.removeAttribute("disabled");null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var C=mxUtils.bind(this,function(){y(k+1)});mxEvent.addListener(v,
+"click",C);this.executeRequest(l,mxUtils.bind(this,function(e){this.ui.spinner.stop();1==k&&(p(),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,B();else{var a=g.split("/");g=a.slice(0,a.length-1).join("/");y()}}),"4px")));var l=JSON.parse(e.getText());if(null==l||0==l.length)mxUtils.write(n,mxResources.get("noFiles"));else{var x=!0,t=0;e=mxUtils.bind(this,function(e){for(var k=0;k<l.length;k++)mxUtils.bind(this,function(k,l){if(e==("dir"==k.type)){var p=q.cloneNode();p.style.backgroundColor=
+x?"#eeeeee":"";x=!x;var C=document.createElement("img");C.src=IMAGE_PATH+"/"+("dir"==k.type?"folder.png":"file.png");C.setAttribute("align","absmiddle");C.style.marginRight="4px";C.style.marginTop="-4px";C.width=20;p.appendChild(C);p.appendChild(m(k.name+("dir"==k.type?"/":""),mxUtils.bind(this,function(){"dir"==k.type?(g=k.path,y()):a&&"file"==k.type&&(this.ui.hideDialog(),c(d+"/"+b+"/"+encodeURIComponent(f)+"/"+k.path))})));n.appendChild(p);t++}})(l[k],k)});e(!0);a&&e(!1)}}),u,!0)}),z=mxUtils.bind(this,
+function(a){null==a&&(n.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/repos/"+d+"/"+b+"/branches?per_page=100&page="+a,null,"GET");e.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var k=
+mxUtils.bind(this,function(){z(a+1)});mxEvent.addListener(v,"click",k);this.executeRequest(c,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(p(!0),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){g=null;B()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(n,mxResources.get("noFiles"));else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a,b){var c=q.cloneNode();c.style.backgroundColor=0==b%2?"#eeeeee":"";c.appendChild(m(a.name,mxUtils.bind(this,function(){f=
+a.name;g="";y()})));n.appendChild(c)})(b[c],c);100==b.length&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&k()},mxEvent.addListener(n,"scroll",t))}}),u)}),B=mxUtils.bind(this,function(a){null==a&&(n.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");e.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=t&&mxEvent.removeListener(n,"scroll",t);null!=v&&null!=v.parentNode&&
+v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){B(a+1)});mxEvent.addListener(v,"click",k);this.executeRequest(c,mxUtils.bind(this,function(c){this.ui.spinner.stop();c=JSON.parse(c.getText());if(null==c||0==c.length)mxUtils.write(n,mxResources.get("noFiles"));else{1==a&&(n.appendChild(m(mxResources.get("enterValue")+"...",mxUtils.bind(this,
+function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,function(a){if(null!=a){var c=a.split("/");if(1<c.length){a=c[0];var e=c[1];3>c.length?(d=a,b=e,g=f=null,z()):this.ui.spinner.spin(n,mxResources.get("loading"))&&(c=encodeURIComponent(c.slice(2,c.length).join("/")),this.getFile(a+"/"+e+"/"+c,mxUtils.bind(this,function(a){this.ui.spinner.stop();d=a.meta.org;b=a.meta.repo;f=decodeURIComponent(a.meta.ref);g="";y()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();
+this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})}}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(n),mxUtils.br(n));for(var e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){var e=q.cloneNode();e.style.backgroundColor=0==c%2?"#eeeeee":"";e.appendChild(m(a.full_name,mxUtils.bind(this,function(){d=a.owner.login;b=a.name;f=a.default_branch;
+g="";y()})));n.appendChild(e)})(c[e],e)}100==c.length&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&k()},mxEvent.addListener(n,"scroll",t))}),u)});B()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,c,d){DrawioFile.call(this,a,c);this.meta=d;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1};TrelloFile.prototype.getSize=function(){return this.meta.bytes};
TrelloFile.prototype.save=function(a,c,d){this.doSave(this.getTitle(),c,d)};TrelloFile.prototype.saveAs=function(a,c,d){this.doSave(a,c,d)};TrelloFile.prototype.doSave=function(a,c,d){var b=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=b;this.saveFile(a,!1,c,d)};
-TrelloFile.prototype.saveFile=function(a,c,d,b){if(this.isEditable())if(this.savingFile)null!=b&&(this.saveNeededCounter++,b({code:App.ERROR_BUSY}));else if(this.savingFile=!0,this.savingFileTime=new Date,this.getTitle()==a){var e=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.trello.saveFile(this,mxUtils.bind(this,function(k){this.savingFile=!1;this.isModified=e;this.meta=k;this.contentChanged();null!=d&&
-d();0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a,c,d,b))}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=b){if(null!=a&&null!=a.retry){var c=a.retry;a.retry=function(){k();c()}}b(a)}}))}else this.ui.pickFolder(App.MODE_TRELLO,mxUtils.bind(this,function(e){this.ui.trello.insertFile(a,this.getData(),mxUtils.bind(this,function(e){this.savingFile=!1;null!=d&&d();this.ui.fileLoaded(e);0<this.saveNeededCounter&&
-(this.saveNeededCounter--,this.saveFile(a,c,d,b))}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}),!1,e)}));else null!=d&&d()};TrelloLibrary=function(a,c,d){TrelloFile.call(this,a,c,d)};mxUtils.extend(TrelloLibrary,TrelloFile);TrelloLibrary.prototype.doSave=function(a,c,d){this.saveFile(a,!1,c,d)};TrelloLibrary.prototype.open=function(){};TrelloClient=function(a){DrawioClient.call(this,a,"tauth");Trello.setKey(this.key)};mxUtils.extend(TrelloClient,DrawioClient);TrelloClient.prototype.key="e73615c79cf7e381aef91c85936e9553";TrelloClient.prototype.baseUrl="https://api.trello.com/1/";TrelloClient.prototype.SEPARATOR="|$|";TrelloClient.prototype.maxFileSize=1E7;TrelloClient.prototype.extension=".xml";
+TrelloFile.prototype.saveFile=function(a,c,d,b){if(this.isEditable())if(this.savingFile)null!=b&&(this.saveNeededCounter++,b({code:App.ERROR_BUSY}));else if(this.savingFile=!0,this.savingFileTime=new Date,this.getTitle()==a){var f=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.trello.saveFile(this,mxUtils.bind(this,function(g){this.savingFile=!1;this.isModified=f;this.meta=g;this.contentChanged();null!=d&&
+d();0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a,c,d,b))}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=f;this.setModified(g||this.isModified());if(null!=b){if(null!=a&&null!=a.retry){var c=a.retry;a.retry=function(){k();c()}}b(a)}}))}else this.ui.pickFolder(App.MODE_TRELLO,mxUtils.bind(this,function(f){this.ui.trello.insertFile(a,this.getData(),mxUtils.bind(this,function(f){this.savingFile=!1;null!=d&&d();this.ui.fileLoaded(f);0<this.saveNeededCounter&&
+(this.saveNeededCounter--,this.saveFile(a,c,d,b))}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}),!1,f)}));else null!=d&&d()};TrelloLibrary=function(a,c,d){TrelloFile.call(this,a,c,d)};mxUtils.extend(TrelloLibrary,TrelloFile);TrelloLibrary.prototype.doSave=function(a,c,d){this.saveFile(a,!1,c,d)};TrelloLibrary.prototype.open=function(){};TrelloClient=function(a){DrawioClient.call(this,a,"tauth");Trello.setKey(this.key)};mxUtils.extend(TrelloClient,DrawioClient);TrelloClient.prototype.key="e73615c79cf7e381aef91c85936e9553";TrelloClient.prototype.baseUrl="https://api.trello.com/1/";TrelloClient.prototype.SEPARATOR="|$|";TrelloClient.prototype.maxFileSize=1E7;TrelloClient.prototype.extension=".xml";
TrelloClient.prototype.authenticate=function(a,c,d){d&&this.logout();d=mxUtils.bind(this,function(b,d){Trello.authorize({type:"popup",name:"draw.io",scope:{read:"true",write:"true"},expiration:b?"never":"1hour",success:function(){null!=d&&d();a()},error:function(){null!=d&&d();null!=c&&c(mxResources.get("loggedOut"))}})});this.isAuthorized()?d(!0):this.ui.showAuthDialog(this,!0,d)};TrelloClient.prototype.getLibrary=function(a,c,d){this.getFile(a,c,d,!1,!0)};
-TrelloClient.prototype.getFile=function(a,c,d,b,e){e=null!=e?e:!1;var g=mxUtils.bind(this,function(){var b=a.split(this.SEPARATOR),l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout);Trello.cards.get(b[0]+"/attachments/"+b[1],mxUtils.bind(this,function(b){window.clearTimeout(n);if(l){var f=/\.png$/i.test(b.name);/\.v(dx|sdx?)$/i.test(b.name)||/\.gliffy$/i.test(b.name)||!this.ui.useCanvasForExport&&f?this.ui.convertFile(PROXY_URL+"?url="+
-encodeURIComponent(b.url),b.name,b.mimeType,this.extension,c,d):(l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT})}),this.ui.timeout),this.ui.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b.url),mxUtils.bind(this,function(d){window.clearTimeout(n);if(l){b.compoundId=a;var k=f?d.lastIndexOf(","):-1;0<k&&(k=this.ui.extractGraphModelFromPng(d.substring(k+1)),null!=k&&0<k.length&&(d=k));e?c(new TrelloLibrary(this.ui,d,b)):c(new TrelloFile(this.ui,d,b))}}),mxUtils.bind(this,
-function(a,b){window.clearTimeout(n);l&&(401==b.status?this.authenticate(g,d,!0):d())}),f||null!=b.mimeType&&"image/"==b.mimeType.substring(0,6)))}}),mxUtils.bind(this,function(a){window.clearTimeout(n);l&&(null!=a&&401==a.status?this.authenticate(g,d,!0):d())}))});this.authenticate(g,d)};TrelloClient.prototype.insertLibrary=function(a,c,d,b,e){this.insertFile(a,c,d,b,!0,e)};
-TrelloClient.prototype.insertFile=function(a,c,d,b,e,g){e=null!=e?e:!1;var k=mxUtils.bind(this,function(){var k=mxUtils.bind(this,function(k){this.writeFile(a,k,g,mxUtils.bind(this,function(a){e?d(new TrelloLibrary(this.ui,c,a)):d(new TrelloFile(this.ui,c,a))}),b)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(this.ui.base64ToBlob(a,"image/png"))}),b,c):k(c)});this.authenticate(k,b)};
-TrelloClient.prototype.saveFile=function(a,c,d){var b=a.meta.compoundId.split(this.SEPARATOR),e=mxUtils.bind(this,function(e){this.writeFile(a.meta.name,e,b[0],function(a){Trello.del("cards/"+b[0]+"/attachments/"+b[1],mxUtils.bind(this,function(){c(a)}),mxUtils.bind(this,function(a){null!=a&&401==a.status?this.authenticate(g,d,!0):d()}))},d)}),g=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){e(this.ui.base64ToBlob(a,
-"image/png"))}),d,this.ui.getCurrentFile()!=a?a.getData():null):e(a.getData())});this.authenticate(g,d)};
-TrelloClient.prototype.writeFile=function(a,c,d,b,e){if(null!=a&&null!=c)if(c.length>=this.maxFileSize)e({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(c.length)+" / 10 MB)"});else{var g=mxUtils.bind(this,function(){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;e({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),n=new FormData;n.append("key",Trello.key());n.append("token",Trello.token());n.append("file","string"===typeof c?new Blob([c]):c,a);n.append("name",
-a);var q=new XMLHttpRequest;q.responseType="json";q.onreadystatechange=mxUtils.bind(this,function(){if(4===q.readyState&&(window.clearTimeout(l),k))if(200==q.status){var a=q.response;a.compoundId=d+this.SEPARATOR+a.id;b(a)}else 401==q.status?this.authenticate(g,e,!0):e()});q.open("POST",this.baseUrl+"cards/"+d+"/attachments");q.send(n)});this.authenticate(g,e)}else e({message:mxResources.get("unknownError")})};TrelloClient.prototype.pickLibrary=function(a){this.pickFile(a)};
+TrelloClient.prototype.getFile=function(a,c,d,b,f){f=null!=f?f:!1;var g=mxUtils.bind(this,function(){var b=a.split(this.SEPARATOR),l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout);Trello.cards.get(b[0]+"/attachments/"+b[1],mxUtils.bind(this,function(b){window.clearTimeout(n);if(l){var e=/\.png$/i.test(b.name);/\.v(dx|sdx?)$/i.test(b.name)||/\.gliffy$/i.test(b.name)||!this.ui.useCanvasForExport&&e?this.ui.convertFile(PROXY_URL+"?url="+
+encodeURIComponent(b.url),b.name,b.mimeType,this.extension,c,d):(l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT})}),this.ui.timeout),this.ui.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b.url),mxUtils.bind(this,function(d){window.clearTimeout(n);if(l){b.compoundId=a;var g=e?d.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(d.substring(g+1)),null!=g&&0<g.length&&(d=g));f?c(new TrelloLibrary(this.ui,d,b)):c(new TrelloFile(this.ui,d,b))}}),mxUtils.bind(this,
+function(a,b){window.clearTimeout(n);l&&(401==b.status?this.authenticate(g,d,!0):d())}),e||null!=b.mimeType&&"image/"==b.mimeType.substring(0,6)))}}),mxUtils.bind(this,function(a){window.clearTimeout(n);l&&(null!=a&&401==a.status?this.authenticate(g,d,!0):d())}))});this.authenticate(g,d)};TrelloClient.prototype.insertLibrary=function(a,c,d,b,f){this.insertFile(a,c,d,b,!0,f)};
+TrelloClient.prototype.insertFile=function(a,c,d,b,f,g){f=null!=f?f:!1;var k=mxUtils.bind(this,function(){var k=mxUtils.bind(this,function(k){this.writeFile(a,k,g,mxUtils.bind(this,function(a){f?d(new TrelloLibrary(this.ui,c,a)):d(new TrelloFile(this.ui,c,a))}),b)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(this.ui.base64ToBlob(a,"image/png"))}),b,c):k(c)});this.authenticate(k,b)};
+TrelloClient.prototype.saveFile=function(a,c,d){var b=a.meta.compoundId.split(this.SEPARATOR),f=mxUtils.bind(this,function(f){this.writeFile(a.meta.name,f,b[0],function(a){Trello.del("cards/"+b[0]+"/attachments/"+b[1],mxUtils.bind(this,function(){c(a)}),mxUtils.bind(this,function(a){null!=a&&401==a.status?this.authenticate(g,d,!0):d()}))},d)}),g=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){f(this.ui.base64ToBlob(a,
+"image/png"))}),d,this.ui.getCurrentFile()!=a?a.getData():null):f(a.getData())});this.authenticate(g,d)};
+TrelloClient.prototype.writeFile=function(a,c,d,b,f){if(null!=a&&null!=c)if(c.length>=this.maxFileSize)f({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(c.length)+" / 10 MB)"});else{var g=mxUtils.bind(this,function(){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;f({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),n=new FormData;n.append("key",Trello.key());n.append("token",Trello.token());n.append("file","string"===typeof c?new Blob([c]):c,a);n.append("name",
+a);var q=new XMLHttpRequest;q.responseType="json";q.onreadystatechange=mxUtils.bind(this,function(){if(4===q.readyState&&(window.clearTimeout(l),k))if(200==q.status){var a=q.response;a.compoundId=d+this.SEPARATOR+a.id;b(a)}else 401==q.status?this.authenticate(g,f,!0):f()});q.open("POST",this.baseUrl+"cards/"+d+"/attachments");q.send(n)});this.authenticate(g,f)}else f({message:mxResources.get("unknownError")})};TrelloClient.prototype.pickLibrary=function(a){this.pickFile(a)};
TrelloClient.prototype.pickFolder=function(a){this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!1,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a)}))};TrelloClient.prototype.pickFile=function(a,c){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("T"+encodeURIComponent(a))});this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!0,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a,mxResources.get("ok"))}))};
-TrelloClient.prototype.showTrelloDialog=function(a,c){var d=null,b="@me",e=0,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.height="224px";var k=document.createElement("h3");mxUtils.write(k,a?mxResources.get("selectFile"):mxResources.get("selectCard"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(k);var l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.overflow="auto";l.style.height=
-"194px";g.appendChild(l);g=new CustomDialog(this.ui,g);this.ui.showDialog(g.container,340,270,!0,!0);g.okButton.parentNode.removeChild(g.okButton);var n=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==e%2?"#eee":"#fff");var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");if(null!=c){var k=document.createElement("img");k.src=c.url;k.width=c.width;k.height=
-c.height;k.style="border: 1px solid black;margin:5px;vertical-align:middle";f.appendChild(k)}mxUtils.write(f,a);mxEvent.addListener(f,"click",b);d.appendChild(f);return d}),q=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),f=mxUtils.bind(this,function(){e=0;l.innerHTML="";this.ui.spinner.spin(l,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(d+"/attachments",{fields:"id,name,previews"},
+TrelloClient.prototype.showTrelloDialog=function(a,c){var d=null,b="@me",f=0,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.height="224px";var k=document.createElement("h3");mxUtils.write(k,a?mxResources.get("selectFile"):mxResources.get("selectCard"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(k);var l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.overflow="auto";l.style.height=
+"194px";g.appendChild(l);g=new CustomDialog(this.ui,g);this.ui.showDialog(g.container,340,270,!0,!0);g.okButton.parentNode.removeChild(g.okButton);var n=mxUtils.bind(this,function(a,b,c){f++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==f%2?"#eee":"#fff");var e=document.createElement("a");e.setAttribute("href","javascript:void(0);");if(null!=c){var g=document.createElement("img");g.src=c.url;g.width=c.width;g.height=
+c.height;g.style="border: 1px solid black;margin:5px;vertical-align:middle";e.appendChild(g)}mxUtils.write(e,a);mxEvent.addListener(e,"click",b);d.appendChild(e);return d}),q=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),e=mxUtils.bind(this,function(){f=0;l.innerHTML="";this.ui.spinner.spin(l,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(d+"/attachments",{fields:"id,name,previews"},
mxUtils.bind(this,function(a){this.ui.spinner.stop();l.appendChild(n("../ [Up]",mxUtils.bind(this,function(){u()})));mxUtils.br(l);null==a||0==a.length?mxUtils.write(l,mxResources.get("noFiles")):mxUtils.bind(this,function(){for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){l.appendChild(n(a.name,mxUtils.bind(this,function(){this.ui.hideDialog();c(d+this.SEPARATOR+a.id)}),null!=a.previews?a.previews[0]:null))})(a[b])})()}),mxUtils.bind(this,function(b){401==b.status?this.authenticate(a,q,!0):
-null!=q&&q(b)}))});a()}),m=null,p=null,u=mxUtils.bind(this,function(k){null==k&&(e=0,l.innerHTML="",k=1);this.ui.spinner.spin(l,mxResources.get("loading"));null!=m&&null!=m.parentNode&&m.parentNode.removeChild(m);m=document.createElement("a");m.style.display="block";m.setAttribute("href","javascript:void(0);");mxUtils.write(m,mxResources.get("more")+"...");var g=mxUtils.bind(this,function(){mxEvent.removeListener(l,"scroll",p);u(k+1)});mxEvent.addListener(m,"click",g);var v=mxUtils.bind(this,function(){Trello.get("search",
-{query:""==mxUtils.trim(b)?"is:open":b,cards_limit:100,cards_page:k-1},mxUtils.bind(this,function(e){this.ui.spinner.stop();e=null!=e?e.cards:null;if(null==e||0==e.length)mxUtils.write(l,mxResources.get("noFiles"));else{1==k&&(l.appendChild(n(mxResources.get("filterCards")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,b,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(b=a,u())}),mxResources.get("filterCards"),null,null,"http://help.trello.com/article/808-searching-for-cards-all-boards");
-this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(l));for(var t=0;t<e.length;t++)mxUtils.bind(this,function(b){l.appendChild(n(b.name,mxUtils.bind(this,function(){a?(d=b.id,f()):(this.ui.hideDialog(),c(b.id))})))})(e[t]);100==e.length&&(l.appendChild(m),p=function(){l.scrollTop>=l.scrollHeight-l.offsetHeight&&g()},mxEvent.addListener(l,"scroll",p))}}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(v,q,!0):null!=q&&q({message:a.responseText})}))});v()});u()};
+null!=q&&q(b)}))});a()}),m=null,p=null,u=mxUtils.bind(this,function(g){null==g&&(f=0,l.innerHTML="",g=1);this.ui.spinner.spin(l,mxResources.get("loading"));null!=m&&null!=m.parentNode&&m.parentNode.removeChild(m);m=document.createElement("a");m.style.display="block";m.setAttribute("href","javascript:void(0);");mxUtils.write(m,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){mxEvent.removeListener(l,"scroll",p);u(g+1)});mxEvent.addListener(m,"click",k);var v=mxUtils.bind(this,function(){Trello.get("search",
+{query:""==mxUtils.trim(b)?"is:open":b,cards_limit:100,cards_page:g-1},mxUtils.bind(this,function(f){this.ui.spinner.stop();f=null!=f?f.cards:null;if(null==f||0==f.length)mxUtils.write(l,mxResources.get("noFiles"));else{1==g&&(l.appendChild(n(mxResources.get("filterCards")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,b,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(b=a,u())}),mxResources.get("filterCards"),null,null,"http://help.trello.com/article/808-searching-for-cards-all-boards");
+this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(l));for(var t=0;t<f.length;t++)mxUtils.bind(this,function(b){l.appendChild(n(b.name,mxUtils.bind(this,function(){a?(d=b.id,e()):(this.ui.hideDialog(),c(b.id))})))})(f[t]);100==f.length&&(l.appendChild(m),p=function(){l.scrollTop>=l.scrollHeight-l.offsetHeight&&k()},mxEvent.addListener(l,"scroll",p))}}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(v,q,!0):null!=q&&q({message:a.responseText})}))});v()});u()};
TrelloClient.prototype.isAuthorized=function(){try{return null!=localStorage.trello_token}catch(a){}return!1};TrelloClient.prototype.logout=function(){localStorage.removeItem("trello_token");Trello.deauthorize()};GitLabFile=function(a,c,d){GitHubFile.call(this,a,c,d);this.peer=this.ui.gitLab};mxUtils.extend(GitLabFile,GitHubFile);GitLabFile.prototype.getId=function(){return this.meta.org+"/"+(null!=this.meta.repo?encodeURIComponent(this.meta.repo)+"/"+(null!=this.meta.ref?this.meta.ref+(null!=this.meta.path?"/"+this.meta.path:""):""):"")};GitLabFile.prototype.getHash=function(){return encodeURIComponent("A"+this.getId())};GitLabFile.prototype.isConflict=function(a){return null!=a&&400==a.status};
GitLabFile.prototype.getMode=function(){return App.MODE_GITLAB};GitLabFile.prototype.getDescriptorEtag=function(a){return a.last_commit_id};GitLabFile.prototype.setDescriptorEtag=function(a,c){a.last_commit_id=c};GitLabLibrary=function(a,c,d){GitLabFile.call(this,a,c,d)};mxUtils.extend(GitLabLibrary,GitLabFile);GitLabLibrary.prototype.doSave=function(a,c,d){this.saveFile(a,!1,c,d)};GitLabLibrary.prototype.open=function(){};GitLabClient=function(a){GitHubClient.call(this,a,"gitlabauth")};mxUtils.extend(GitLabClient,GitHubClient);GitLabClient.prototype.clientId=DRAWIO_GITLAB_ID;GitLabClient.prototype.scope="api%20read_repository%20write_repository";GitLabClient.prototype.baseUrl=DRAWIO_GITLAB_URL+"/api/v4";
-GitLabClient.prototype.authenticate=function(a,c){if(null==window.onGitLabCallback){var d=mxUtils.bind(this,function(){var b=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){var k=window.location.href,k=k.substring(0,k.lastIndexOf("/")),k=encodeURIComponent(k+"/gitlab.html");null!=window.open(DRAWIO_GITLAB_URL+"/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope+"&redirect_uri="+k+"&response_type=token&state=123","gitlabauth")?window.onGitLabCallback=mxUtils.bind(this,
-function(k,n){b?(window.onGitLabCallback=null,b=!1,null==k?c({message:mxResources.get("accessDenied"),retry:d}):(null!=g&&g(),this.token=k,this.setUser(null),e&&this.setPersistentToken(this.token),a())):null!=n&&n.close()}):c({message:mxResources.get("serviceUnavailableOrBlocked"),retry:d})}),mxUtils.bind(this,function(){b&&(window.onGitLabCallback=null,b=!1,c({message:mxResources.get("accessDenied"),retry:d}))}))});d()}else c({code:App.ERROR_BUSY})};
-GitLabClient.prototype.executeRequest=function(a,c,d,b){var e=mxUtils.bind(this,function(k){var l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.ui.timeout),q=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","Bearer "+q);a.setRequestHeader("PRIVATE_TOKEN",q);a.setRequestHeader("Content-Type","application/json")};a.send(mxUtils.bind(this,function(){window.clearTimeout(n);if(l)if(200<=a.getStatus()&&
-299>=a.getStatus()||b&&404==a.getStatus())c(a);else if(401===a.getStatus())k?d({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},d)})}):this.authenticate(function(){e(!0)},d);else if(403===a.getStatus()){var f=!1;try{var m=JSON.parse(a.getText());null!=m&&null!=m.errors&&0<m.errors.length&&(f="too_large"==m.errors[0].code)}catch(p){}d({message:mxResources.get(f?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?d({message:this.getErrorMessage(a,
-mxResources.get("fileNotFound"))}):400===a.getStatus()?d({status:400}):d({status:a.getStatus(),message:this.getErrorMessage(a,mxResources.get("error")+" "+a.getStatus())})}),d)}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},d,a):e(a)});null==this.token?this.authenticate(function(){g(!0)},d):g(!1)};
-GitLabClient.prototype.getRefIndex=function(a,c,d,b,e){if(null!=e)d(a,e);else{var g=a.length-2,k=mxUtils.bind(this,function(){if(2>g)b({message:mxResources.get("fileNotFound")});else{var e=Math.max(g-1,0),n=a.slice(0,e).join("/"),e=a[e],q=a[g],f=a.slice(g+1,a.length).join("/"),n=this.baseUrl+"/projects/"+encodeURIComponent(n+"/"+e)+"/repository/"+(c?"tree?path="+f+"&ref="+q:"files/"+encodeURIComponent(f)+"?ref="+q),m=new mxXmlRequest(n,null,"HEAD");this.executeRequest(m,mxUtils.bind(this,function(){200==
+GitLabClient.prototype.authenticate=function(a,c){if(null==window.onGitLabCallback){var d=mxUtils.bind(this,function(){var b=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(f,g){var k=window.location.href,k=k.substring(0,k.lastIndexOf("/")),k=encodeURIComponent(k+"/gitlab.html");null!=window.open(DRAWIO_GITLAB_URL+"/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope+"&redirect_uri="+k+"&response_type=token&state=123","gitlabauth")?window.onGitLabCallback=mxUtils.bind(this,
+function(k,n){b?(window.onGitLabCallback=null,b=!1,null==k?c({message:mxResources.get("accessDenied"),retry:d}):(null!=g&&g(),this.token=k,this.setUser(null),f&&this.setPersistentToken(this.token),a())):null!=n&&n.close()}):c({message:mxResources.get("serviceUnavailableOrBlocked"),retry:d})}),mxUtils.bind(this,function(){b&&(window.onGitLabCallback=null,b=!1,c({message:mxResources.get("accessDenied"),retry:d}))}))});d()}else c({code:App.ERROR_BUSY})};
+GitLabClient.prototype.executeRequest=function(a,c,d,b){var f=mxUtils.bind(this,function(k){var l=!0,n=window.setTimeout(mxUtils.bind(this,function(){l=!1;d({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.ui.timeout),q=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","Bearer "+q);a.setRequestHeader("PRIVATE_TOKEN",q);a.setRequestHeader("Content-Type","application/json")};a.send(mxUtils.bind(this,function(){window.clearTimeout(n);if(l)if(200<=a.getStatus()&&
+299>=a.getStatus()||b&&404==a.getStatus())c(a);else if(401===a.getStatus())k?d({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},d)})}):this.authenticate(function(){f(!0)},d);else if(403===a.getStatus()){var e=!1;try{var m=JSON.parse(a.getText());null!=m&&null!=m.errors&&0<m.errors.length&&(e="too_large"==m.errors[0].code)}catch(p){}d({message:mxResources.get(e?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?d({message:this.getErrorMessage(a,
+mxResources.get("fileNotFound"))}):400===a.getStatus()?d({status:400}):d({status:a.getStatus(),message:this.getErrorMessage(a,mxResources.get("error")+" "+a.getStatus())})}),d)}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},d,a):f(a)});null==this.token?this.authenticate(function(){g(!0)},d):g(!1)};
+GitLabClient.prototype.getRefIndex=function(a,c,d,b,f){if(null!=f)d(a,f);else{var g=a.length-2,k=mxUtils.bind(this,function(){if(2>g)b({message:mxResources.get("fileNotFound")});else{var f=Math.max(g-1,0),n=a.slice(0,f).join("/"),f=a[f],q=a[g],e=a.slice(g+1,a.length).join("/"),n=this.baseUrl+"/projects/"+encodeURIComponent(n+"/"+f)+"/repository/"+(c?"tree?path="+e+"&ref="+q:"files/"+encodeURIComponent(e)+"?ref="+q),m=new mxXmlRequest(n,null,"HEAD");this.executeRequest(m,mxUtils.bind(this,function(){200==
m.getStatus()?d(a,g):b({message:mxResources.get("fileNotFound")})}),mxUtils.bind(this,function(){404==m.getStatus()?(g--,k()):b({message:mxResources.get("fileNotFound")})}))}});k()}};
-GitLabClient.prototype.getFile=function(a,c,d,b,e,g){b=null!=b?b:!1;this.getRefIndex(a.split("/"),!1,mxUtils.bind(this,function(k,g){var l=Math.max(g-1,0),q=k.slice(0,l).join("/"),f=k[l],m=k[g];a=k.slice(g+1,k.length).join("/");l=/\.png$/i.test(a);if(!e&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||/\.pdf$/i.test(a)||!this.ui.useCanvasForExport&&l))if(null!=this.token){var l="&t="+(new Date).getTime(),p=this.baseUrl+"/projects/"+encodeURIComponent(q+"/"+f)+"/repository/files/"+encodeURIComponent(a)+
-"?ref="+m;k=a.split("/");this.ui.convertFile(p+l,0<k.length?k[k.length-1]:a,null,this.extension,c,d,mxUtils.bind(this,function(a,b,c){a=new mxXmlRequest(a,null,"GET");this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.getFileContent(JSON.parse(a.getText())))}catch(x){c(x)}}),c)}))}else d({message:mxResources.get("accessDenied")});else l="&t="+(new Date).getTime(),p=this.baseUrl+"/projects/"+encodeURIComponent(q+"/"+f)+"/repository/files/"+encodeURIComponent(a)+"?ref="+m,l=new mxXmlRequest(p+
-l,null,"GET"),this.executeRequest(l,mxUtils.bind(this,function(a){try{c(this.createGitLabFile(q,f,m,JSON.parse(a.getText()),b,g))}catch(v){d(v)}}),d)}),d,g)};
+GitLabClient.prototype.getFile=function(a,c,d,b,f,g){b=null!=b?b:!1;this.getRefIndex(a.split("/"),!1,mxUtils.bind(this,function(g,l){var k=Math.max(l-1,0),q=g.slice(0,k).join("/"),e=g[k],m=g[l];a=g.slice(l+1,g.length).join("/");k=/\.png$/i.test(a);if(!f&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||/\.pdf$/i.test(a)||!this.ui.useCanvasForExport&&k))if(null!=this.token){var k="&t="+(new Date).getTime(),p=this.baseUrl+"/projects/"+encodeURIComponent(q+"/"+e)+"/repository/files/"+encodeURIComponent(a)+
+"?ref="+m;g=a.split("/");this.ui.convertFile(p+k,0<g.length?g[g.length-1]:a,null,this.extension,c,d,mxUtils.bind(this,function(a,b,c){a=new mxXmlRequest(a,null,"GET");this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.getFileContent(JSON.parse(a.getText())))}catch(z){c(z)}}),c)}))}else d({message:mxResources.get("accessDenied")});else k="&t="+(new Date).getTime(),p=this.baseUrl+"/projects/"+encodeURIComponent(q+"/"+e)+"/repository/files/"+encodeURIComponent(a)+"?ref="+m,k=new mxXmlRequest(p+
+k,null,"GET"),this.executeRequest(k,mxUtils.bind(this,function(a){try{c(this.createGitLabFile(q,e,m,JSON.parse(a.getText()),b,l))}catch(v){d(v)}}),d)}),d,g)};
GitLabClient.prototype.getFileContent=function(a){var c=a.file_name,d=a.content;"base64"===a.encoding&&(/\.jpe?g$/i.test(c)?d="data:image/jpeg;base64,"+d:/\.gif$/i.test(c)?d="data:image/gif;base64,"+d:/\.pdf$/i.test(c)?d="data:application/pdf;base64,"+d:/\.png$/i.test(c)?(a=this.ui.extractGraphModelFromPng(d),d=null!=a&&0<a.length?a:"data:image/png;base64,"+d):d=Base64.decode(d));return d};
-GitLabClient.prototype.createGitLabFile=function(a,c,d,b,e,g){var k=DRAWIO_GITLAB_URL+"/";a={org:a,repo:c,ref:d,name:b.file_name,path:b.file_path,html_url:k+a+"/"+c+"/blob/"+d+"/"+b.file_path,download_url:k+a+"/"+c+"/raw/"+d+"/"+b.file_path+"?inline=false",last_commit_id:b.last_commit_id,refPos:g};b=this.getFileContent(b);return e?new GitLabLibrary(this.ui,b,a):new GitLabFile(this.ui,b,a)};
-GitLabClient.prototype.insertFile=function(a,c,d,b,e,g,k){e=null!=e?e:!1;this.getRefIndex(g.split("/"),!0,mxUtils.bind(this,function(g,n){var l=Math.max(n-1,0),f=g.slice(0,l).join("/"),m=g[l],p=g[n];path=g.slice(n+1,g.length).join("/");0<path.length&&(path+="/");path+=a;this.checkExists(f+"/"+m+"/"+p+"/"+path,!0,mxUtils.bind(this,function(g,l){if(g)if(e)k||(c=Base64.encode(c)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(f,m,p,path,a,c,l,mxUtils.bind(this,function(a){try{var c=
-JSON.parse(a.getText());d(this.createGitLabFile(f,m,p,c.content,e,n))}catch(H){b(H)}}),b)}),b);else{var t=DRAWIO_GITLAB_URL+"/";d(new GitLabFile(this.ui,c,{org:f,repo:m,ref:p,name:a,path:path,html_url:t+f+"/"+m+"/blob/"+p+"/"+path,download_url:t+f+"/"+m+"/raw/"+p+"/"+path+"?inline=false",refPos:n,last_commit_id:l,isNew:!0}))}else b()}))}),b)};
-GitLabClient.prototype.checkExists=function(a,c,d){this.getFile(a,mxUtils.bind(this,function(b){if(c){var e=this.ui.spinner.pause();this.ui.confirm(mxResources.get("replaceIt",[a]),function(){e();d(!0,b.getCurrentEtag())},function(){e();d(!1)})}else this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){d(!1)})}),mxUtils.bind(this,function(a){d(!0)}),null,!0)};
-GitLabClient.prototype.writeFile=function(a,c,d,b,e,g,k,l,n){if(g.length>=this.maxFileSize)n({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"});else{var q="POST";d={path:encodeURIComponent(b),branch:decodeURIComponent(d),commit_message:e,content:g,encoding:"base64"};null!=k&&(d.last_commit_id=k,q="PUT");a=this.baseUrl+"/projects/"+encodeURIComponent(a+"/"+c)+"/repository/files/"+encodeURIComponent(b);q=new mxXmlRequest(a,JSON.stringify(d),q);this.executeRequest(q,
+GitLabClient.prototype.createGitLabFile=function(a,c,d,b,f,g){var k=DRAWIO_GITLAB_URL+"/";a={org:a,repo:c,ref:d,name:b.file_name,path:b.file_path,html_url:k+a+"/"+c+"/blob/"+d+"/"+b.file_path,download_url:k+a+"/"+c+"/raw/"+d+"/"+b.file_path+"?inline=false",last_commit_id:b.last_commit_id,refPos:g};b=this.getFileContent(b);return f?new GitLabLibrary(this.ui,b,a):new GitLabFile(this.ui,b,a)};
+GitLabClient.prototype.insertFile=function(a,c,d,b,f,g,k){f=null!=f?f:!1;this.getRefIndex(g.split("/"),!0,mxUtils.bind(this,function(g,n){var l=Math.max(n-1,0),e=g.slice(0,l).join("/"),m=g[l],p=g[n];path=g.slice(n+1,g.length).join("/");0<path.length&&(path+="/");path+=a;this.checkExists(e+"/"+m+"/"+p+"/"+path,!0,mxUtils.bind(this,function(g,l){if(g)if(f)k||(c=Base64.encode(c)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(e,m,p,path,a,c,l,mxUtils.bind(this,function(a){try{var c=
+JSON.parse(a.getText());d(this.createGitLabFile(e,m,p,c.content,f,n))}catch(G){b(G)}}),b)}),b);else{var t=DRAWIO_GITLAB_URL+"/";d(new GitLabFile(this.ui,c,{org:e,repo:m,ref:p,name:a,path:path,html_url:t+e+"/"+m+"/blob/"+p+"/"+path,download_url:t+e+"/"+m+"/raw/"+p+"/"+path+"?inline=false",refPos:n,last_commit_id:l,isNew:!0}))}else b()}))}),b)};
+GitLabClient.prototype.checkExists=function(a,c,d){this.getFile(a,mxUtils.bind(this,function(b){if(c){var f=this.ui.spinner.pause();this.ui.confirm(mxResources.get("replaceIt",[a]),function(){f();d(!0,b.getCurrentEtag())},function(){f();d(!1)})}else this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){d(!1)})}),mxUtils.bind(this,function(a){d(!0)}),null,!0)};
+GitLabClient.prototype.writeFile=function(a,c,d,b,f,g,k,l,n){if(g.length>=this.maxFileSize)n({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"});else{var q="POST";d={path:encodeURIComponent(b),branch:decodeURIComponent(d),commit_message:f,content:g,encoding:"base64"};null!=k&&(d.last_commit_id=k,q="PUT");a=this.baseUrl+"/projects/"+encodeURIComponent(a+"/"+c)+"/repository/files/"+encodeURIComponent(b);q=new mxXmlRequest(a,JSON.stringify(d),q);this.executeRequest(q,
mxUtils.bind(this,function(a){l(a)}),n)}};
-GitLabClient.prototype.saveFile=function(a,c,d,b,e){var g=a.meta.org,k=a.meta.repo,l=a.meta.ref,n=a.meta.path,q=mxUtils.bind(this,function(b,f){this.writeFile(g,k,l,n,e,f,b,mxUtils.bind(this,function(b){delete a.meta.isNew;this.getFile(g+"/"+k+"/"+l+"/"+n,mxUtils.bind(this,function(b){b.getData()==a.getData()?c(b.getCurrentEtag()):c({content:a.getCurrentEtag()})}),d,null,null,a.meta.refPos)}),d)}),f=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(n)?this.ui.getEmbeddedPng(mxUtils.bind(this,
-function(b){q(a.meta.last_commit_id,b)}),d,this.ui.getCurrentFile()!=a?a.getData():null):q(a.meta.last_commit_id,Base64.encode(a.getData()))});b?this.getFile(g+"/"+k+"/"+l+"/"+n,mxUtils.bind(this,function(b){a.meta.last_commit_id=b.meta.last_commit_id;f()}),d):f()};GitLabClient.prototype.pickFolder=function(a){this.showGitLabDialog(!1,a)};GitLabClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("A"+encodeURIComponent(a))});this.showGitLabDialog(!0,a)};
-GitLabClient.prototype.showGitLabDialog=function(a,c){var d=null,b=null,e=null,g=null,k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.height="304px";var l=document.createElement("h3");mxUtils.write(l,mxResources.get(a?"selectFile":"selectFolder"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";k.appendChild(l);var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.border="1px solid lightgray";n.style.boxSizing=
-"border-box";n.style.padding="4px";n.style.overflow="auto";n.style.lineHeight="1.2em";n.style.height="274px";k.appendChild(n);var q=document.createElement("div");q.style.textOverflow="ellipsis";q.style.boxSizing="border-box";q.style.overflow="hidden";q.style.padding="4px";q.style.width="100%";var f=new CustomDialog(this.ui,k,mxUtils.bind(this,function(){c(d+"/"+b+"/"+encodeURIComponent(e)+"/"+g)}));this.ui.showDialog(f.container,420,360,!0,!0);a&&f.okButton.parentNode.removeChild(f.okButton);var m=
-mxUtils.bind(this,function(a,b,c){var d=document.createElement("a");d.setAttribute("href","javascript:void(0);");d.setAttribute("title",a);mxUtils.write(d,a);mxEvent.addListener(d,"click",b);null!=c&&(a=q.cloneNode(),a.style.padding=c,a.appendChild(d),d=a);return d}),p=mxUtils.bind(this,function(a){var c=document.createElement("div");c.style.marginBottom="8px";c.appendChild(m(d+"/"+b,mxUtils.bind(this,function(){g=null;C()})));a||(mxUtils.write(c," / "),c.appendChild(m(decodeURIComponent(e),mxUtils.bind(this,
-function(){g=null;x()}))));if(null!=g&&0<g.length){var f=g.split("/");for(a=0;a<f.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(m(f[a],mxUtils.bind(this,function(){g=f.slice(0,a+1).join("/");z()})))})(a)}n.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(g=e=b=d=null,C()):this.ui.hideDialog()}))}),v=null,t=null,z=mxUtils.bind(this,function(k){null==k&&(n.innerHTML="",k=1);var l=new mxXmlRequest(this.baseUrl+
-"/projects/"+encodeURIComponent(d+"/"+b)+"/repository/tree?path="+g+"&ref="+e+"&per_page=100&page="+k,null,"GET");this.ui.spinner.spin(n,mxResources.get("loading"));f.okButton.removeAttribute("disabled");null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var B=mxUtils.bind(this,function(){z(k+
-1)});mxEvent.addListener(v,"click",B);this.executeRequest(l,mxUtils.bind(this,function(f){this.ui.spinner.stop();1==k&&(p(!e),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,C();else{var a=g.split("/");g=a.slice(0,a.length-1).join("/");z()}}),"4px")));var l=JSON.parse(f.getText());if(null==l||0==l.length)mxUtils.write(n,mxResources.get("noFiles"));else{var y=!0,u=0;f=mxUtils.bind(this,function(f){for(var k=0;k<l.length;k++)mxUtils.bind(this,function(k){if(f==("tree"==k.type)){var l=
-q.cloneNode();l.style.backgroundColor=y?"#eeeeee":"";y=!y;var p=document.createElement("img");p.src=IMAGE_PATH+"/"+("tree"==k.type?"folder.png":"file.png");p.setAttribute("align","absmiddle");p.style.marginRight="4px";p.style.marginTop="-4px";p.width=20;l.appendChild(p);l.appendChild(m(k.name+("tree"==k.type?"/":""),mxUtils.bind(this,function(){"tree"==k.type?(g=k.path,z()):a&&"blob"==k.type&&(this.ui.hideDialog(),c(d+"/"+b+"/"+e+"/"+k.path))})));n.appendChild(l);u++}})(l[k])});f(!0);a&&f(!1);100==
-u&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&B()},mxEvent.addListener(n,"scroll",t))}}),u,!0)}),x=mxUtils.bind(this,function(a){null==a&&(n.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/projects/"+encodeURIComponent(d+"/"+b)+"/repository/branches?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&
-v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){x(a+1)});mxEvent.addListener(v,"click",k);this.executeRequest(c,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(p(!0),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){g=null;C()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(n,mxResources.get("noFiles"));
-else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a,b){var c=q.cloneNode();c.style.backgroundColor=0==b%2?"#eeeeee":"";c.appendChild(m(a.name,mxUtils.bind(this,function(){e=encodeURIComponent(a.name);g="";z()})));n.appendChild(c)})(b[c],c);100==b.length&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&k()},mxEvent.addListener(n,"scroll",t))}}),u)});f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));var C=mxUtils.bind(this,
-function(a){this.ui.spinner.stop();null==a&&(n.innerHTML="",a=1);null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var c=mxUtils.bind(this,function(){C(a+1)});mxEvent.addListener(v,"click",c);var f=mxUtils.bind(this,function(a){this.ui.spinner.spin(n,mxResources.get("loading"));var b=new mxXmlRequest(this.baseUrl+
-"/groups?per_page=100",null,"GET");this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();a(JSON.parse(b.getText()))}),u)}),k=mxUtils.bind(this,function(a,b){this.ui.spinner.spin(n,mxResources.get("loading"));var c=new mxXmlRequest(this.baseUrl+"/groups/"+a.id+"/projects?per_page=100",null,"GET");this.executeRequest(c,mxUtils.bind(this,function(c){this.ui.spinner.stop();b(a,JSON.parse(c.getText()))}),u)});f(mxUtils.bind(this,function(f){var l=new mxXmlRequest(this.baseUrl+"/users/"+
-this.user.id+"/projects?per_page=100&page="+a,null,"GET");this.ui.spinner.spin(n,mxResources.get("loading"));this.executeRequest(l,mxUtils.bind(this,function(l){this.ui.spinner.stop();l=JSON.parse(l.getText());if(null!=l&&0!=l.length||null!=f&&0!=f.length){1==a&&(n.appendChild(m(mxResources.get("enterValue")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(a=a.split("/"),1<a.length?(d=a[0],b=a[1],e="master",
-g=null,2<a.length&&(g=encodeURIComponent(a.slice(2,a.length).join("/"))),z()):(this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})))}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(n),mxUtils.br(n));for(var p=!0,y=0;y<l.length;y++)mxUtils.bind(this,function(a,c){var f=q.cloneNode();f.style.backgroundColor=p?"#eeeeee":"";p=!p;f.appendChild(m(a.name_with_namespace,mxUtils.bind(this,function(){d=a.owner.username;b=
-a.path;e=a.default_branch||"master";g="";z()})));n.appendChild(f)})(l[y],y);for(y=0;y<f.length;y++)k(f[y],mxUtils.bind(this,function(a,c){for(var f=0;f<c.length;f++){var k=q.cloneNode();k.style.backgroundColor=p?"#eeeeee":"";p=!p;mxUtils.bind(this,function(c){k.appendChild(m(c.name_with_namespace,mxUtils.bind(this,function(){d=a.full_path;b=c.path;e=c.default_branch||"master";g="";z()})));n.appendChild(k)})(c[f])}}))}else mxUtils.write(n,mxResources.get("noFiles"));100==l.length&&(n.appendChild(v),
-t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&c()},mxEvent.addListener(n,"scroll",t))}),u)}))});this.token?this.user?C():this.updateUser(function(){C()},u,!0):this.authenticate(mxUtils.bind(this,function(){this.updateUser(function(){C()},u,!0)}),u)};GitLabClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};DrawioComment=function(a,c,d,b,e,g,k){this.file=a;this.id=c;this.content=d;this.modifiedDate=b;this.createdDate=e;this.isResolved=g;this.user=k;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,c,d,b,e){c()};DrawioComment.prototype.editComment=function(a,c,d){c()};DrawioComment.prototype.deleteComment=function(a,c){a()};DriveComment=function(a,c,d,b,e,g,k,l){DrawioComment.call(this,a,c,d,b,e,g,k);this.pCommentId=l};mxUtils.extend(DriveComment,DrawioComment);DriveComment.prototype.addReply=function(a,c,d,b,e){a={content:a.content};b?a.verb="resolve":e&&(a.verb="reopen");this.file.ui.drive.executeRequest({url:"/files/"+this.file.getId()+"/comments/"+this.id+"/replies",params:a,method:"POST"},mxUtils.bind(this,function(a){c(a.replyId)}),d)};
+GitLabClient.prototype.saveFile=function(a,c,d,b,f){var g=a.meta.org,k=a.meta.repo,l=a.meta.ref,n=a.meta.path,q=mxUtils.bind(this,function(b,e){this.writeFile(g,k,l,n,f,e,b,mxUtils.bind(this,function(b){delete a.meta.isNew;this.getFile(g+"/"+k+"/"+l+"/"+n,mxUtils.bind(this,function(b){b.getData()==a.getData()?c(b.getCurrentEtag()):c({content:a.getCurrentEtag()})}),d,null,null,a.meta.refPos)}),d)}),e=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(n)?this.ui.getEmbeddedPng(mxUtils.bind(this,
+function(b){q(a.meta.last_commit_id,b)}),d,this.ui.getCurrentFile()!=a?a.getData():null):q(a.meta.last_commit_id,Base64.encode(a.getData()))});b?this.getFile(g+"/"+k+"/"+l+"/"+n,mxUtils.bind(this,function(b){a.meta.last_commit_id=b.meta.last_commit_id;e()}),d):e()};GitLabClient.prototype.pickFolder=function(a){this.showGitLabDialog(!1,a)};GitLabClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("A"+encodeURIComponent(a))});this.showGitLabDialog(!0,a)};
+GitLabClient.prototype.showGitLabDialog=function(a,c){var d=null,b=null,f=null,g=null,k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.height="304px";var l=document.createElement("h3");mxUtils.write(l,mxResources.get(a?"selectFile":"selectFolder"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";k.appendChild(l);var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.border="1px solid lightgray";n.style.boxSizing=
+"border-box";n.style.padding="4px";n.style.overflow="auto";n.style.lineHeight="1.2em";n.style.height="274px";k.appendChild(n);var q=document.createElement("div");q.style.textOverflow="ellipsis";q.style.boxSizing="border-box";q.style.overflow="hidden";q.style.padding="4px";q.style.width="100%";var e=new CustomDialog(this.ui,k,mxUtils.bind(this,function(){c(d+"/"+b+"/"+encodeURIComponent(f)+"/"+g)}));this.ui.showDialog(e.container,420,360,!0,!0);a&&e.okButton.parentNode.removeChild(e.okButton);var m=
+mxUtils.bind(this,function(a,b,c){var d=document.createElement("a");d.setAttribute("href","javascript:void(0);");d.setAttribute("title",a);mxUtils.write(d,a);mxEvent.addListener(d,"click",b);null!=c&&(a=q.cloneNode(),a.style.padding=c,a.appendChild(d),d=a);return d}),p=mxUtils.bind(this,function(a){var c=document.createElement("div");c.style.marginBottom="8px";c.appendChild(m(d+"/"+b,mxUtils.bind(this,function(){g=null;B()})));a||(mxUtils.write(c," / "),c.appendChild(m(decodeURIComponent(f),mxUtils.bind(this,
+function(){g=null;z()}))));if(null!=g&&0<g.length){var e=g.split("/");for(a=0;a<e.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(m(e[a],mxUtils.bind(this,function(){g=e.slice(0,a+1).join("/");y()})))})(a)}n.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(g=f=b=d=null,B()):this.ui.hideDialog()}))}),v=null,t=null,y=mxUtils.bind(this,function(k){null==k&&(n.innerHTML="",k=1);var l=new mxXmlRequest(this.baseUrl+
+"/projects/"+encodeURIComponent(d+"/"+b)+"/repository/tree?path="+g+"&ref="+f+"&per_page=100&page="+k,null,"GET");this.ui.spinner.spin(n,mxResources.get("loading"));e.okButton.removeAttribute("disabled");null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var C=mxUtils.bind(this,function(){y(k+
+1)});mxEvent.addListener(v,"click",C);this.executeRequest(l,mxUtils.bind(this,function(e){this.ui.spinner.stop();1==k&&(p(!f),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,B();else{var a=g.split("/");g=a.slice(0,a.length-1).join("/");y()}}),"4px")));var l=JSON.parse(e.getText());if(null==l||0==l.length)mxUtils.write(n,mxResources.get("noFiles"));else{var x=!0,u=0;e=mxUtils.bind(this,function(e){for(var k=0;k<l.length;k++)mxUtils.bind(this,function(k){if(e==("tree"==k.type)){var l=
+q.cloneNode();l.style.backgroundColor=x?"#eeeeee":"";x=!x;var p=document.createElement("img");p.src=IMAGE_PATH+"/"+("tree"==k.type?"folder.png":"file.png");p.setAttribute("align","absmiddle");p.style.marginRight="4px";p.style.marginTop="-4px";p.width=20;l.appendChild(p);l.appendChild(m(k.name+("tree"==k.type?"/":""),mxUtils.bind(this,function(){"tree"==k.type?(g=k.path,y()):a&&"blob"==k.type&&(this.ui.hideDialog(),c(d+"/"+b+"/"+f+"/"+k.path))})));n.appendChild(l);u++}})(l[k])});e(!0);a&&e(!1);100==
+u&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&C()},mxEvent.addListener(n,"scroll",t))}}),u,!0)}),z=mxUtils.bind(this,function(a){null==a&&(n.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/projects/"+encodeURIComponent(d+"/"+b)+"/repository/branches?per_page=100&page="+a,null,"GET");e.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&
+v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){z(a+1)});mxEvent.addListener(v,"click",k);this.executeRequest(c,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(p(!0),n.appendChild(m("../ [Up]",mxUtils.bind(this,function(){g=null;B()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(n,mxResources.get("noFiles"));
+else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a,b){var c=q.cloneNode();c.style.backgroundColor=0==b%2?"#eeeeee":"";c.appendChild(m(a.name,mxUtils.bind(this,function(){f=encodeURIComponent(a.name);g="";y()})));n.appendChild(c)})(b[c],c);100==b.length&&(n.appendChild(v),t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&k()},mxEvent.addListener(n,"scroll",t))}}),u)});e.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));var B=mxUtils.bind(this,
+function(a){this.ui.spinner.stop();null==a&&(n.innerHTML="",a=1);null!=t&&(mxEvent.removeListener(n,"scroll",t),t=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("more")+"...");var c=mxUtils.bind(this,function(){B(a+1)});mxEvent.addListener(v,"click",c);var e=mxUtils.bind(this,function(a){this.ui.spinner.spin(n,mxResources.get("loading"));var b=new mxXmlRequest(this.baseUrl+
+"/groups?per_page=100",null,"GET");this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();a(JSON.parse(b.getText()))}),u)}),k=mxUtils.bind(this,function(a,b){this.ui.spinner.spin(n,mxResources.get("loading"));var c=new mxXmlRequest(this.baseUrl+"/groups/"+a.id+"/projects?per_page=100",null,"GET");this.executeRequest(c,mxUtils.bind(this,function(c){this.ui.spinner.stop();b(a,JSON.parse(c.getText()))}),u)});e(mxUtils.bind(this,function(e){var l=new mxXmlRequest(this.baseUrl+"/users/"+
+this.user.id+"/projects?per_page=100&page="+a,null,"GET");this.ui.spinner.spin(n,mxResources.get("loading"));this.executeRequest(l,mxUtils.bind(this,function(l){this.ui.spinner.stop();l=JSON.parse(l.getText());if(null!=l&&0!=l.length||null!=e&&0!=e.length){1==a&&(n.appendChild(m(mxResources.get("enterValue")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(a=a.split("/"),1<a.length?(d=a[0],b=a[1],f="master",
+g=null,2<a.length&&(g=encodeURIComponent(a.slice(2,a.length).join("/"))),y()):(this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})))}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(n),mxUtils.br(n));for(var p=!0,x=0;x<l.length;x++)mxUtils.bind(this,function(a,c){var e=q.cloneNode();e.style.backgroundColor=p?"#eeeeee":"";p=!p;e.appendChild(m(a.name_with_namespace,mxUtils.bind(this,function(){d=a.owner.username;b=
+a.path;f=a.default_branch||"master";g="";y()})));n.appendChild(e)})(l[x],x);for(x=0;x<e.length;x++)k(e[x],mxUtils.bind(this,function(a,c){for(var e=0;e<c.length;e++){var k=q.cloneNode();k.style.backgroundColor=p?"#eeeeee":"";p=!p;mxUtils.bind(this,function(c){k.appendChild(m(c.name_with_namespace,mxUtils.bind(this,function(){d=a.full_path;b=c.path;f=c.default_branch||"master";g="";y()})));n.appendChild(k)})(c[e])}}))}else mxUtils.write(n,mxResources.get("noFiles"));100==l.length&&(n.appendChild(v),
+t=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&c()},mxEvent.addListener(n,"scroll",t))}),u)}))});this.token?this.user?B():this.updateUser(function(){B()},u,!0):this.authenticate(mxUtils.bind(this,function(){this.updateUser(function(){B()},u,!0)}),u)};GitLabClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};DrawioComment=function(a,c,d,b,f,g,k){this.file=a;this.id=c;this.content=d;this.modifiedDate=b;this.createdDate=f;this.isResolved=g;this.user=k;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,c,d,b,f){c()};DrawioComment.prototype.editComment=function(a,c,d){c()};DrawioComment.prototype.deleteComment=function(a,c){a()};DriveComment=function(a,c,d,b,f,g,k,l){DrawioComment.call(this,a,c,d,b,f,g,k);this.pCommentId=l};mxUtils.extend(DriveComment,DrawioComment);DriveComment.prototype.addReply=function(a,c,d,b,f){a={content:a.content};b?a.verb="resolve":f&&(a.verb="reopen");this.file.ui.drive.executeRequest({url:"/files/"+this.file.getId()+"/comments/"+this.id+"/replies",params:a,method:"POST"},mxUtils.bind(this,function(a){c(a.replyId)}),d)};
DriveComment.prototype.editComment=function(a,c,d){this.content=a;a={content:a};this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,params:a,method:"PATCH"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,params:a,method:"PATCH"},c,d)};
DriveComment.prototype.deleteComment=function(a,c){this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,method:"DELETE"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,method:"DELETE"},a,c)};App=function(a,c,d){EditorUi.call(this,a,c,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(window.onunload=mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.isModified()){var c={category:"DISCARD-FILE-"+a.getHash(),action:(a.savingFile?"saving":"")+(a.savingFile&&null!=a.savingFileTime?"_"+Math.round((Date.now()-a.savingFileTime.getTime())/1E3):"")+(null!=a.saveLevel?"-sl_"+a.saveLevel:"")+"-age_"+(null!=
a.ageStart?Math.round((Date.now()-a.ageStart.getTime())/1E3):"x")+(this.editor.autosave?"":"-nosave")+(a.isAutosave()?"":"-noauto")+"-open_"+(null!=a.opened?Math.round((Date.now()-a.opened.getTime())/1E3):"x")+"-save_"+(null!=a.lastSaved?Math.round((Date.now()-a.lastSaved.getTime())/1E3):"x")+"-change_"+(null!=a.lastChanged?Math.round((Date.now()-a.lastChanged.getTime())/1E3):"x")+"-alive_"+Math.round((Date.now()-App.startTime.getTime())/1E3),label:null!=a.sync?"client_"+a.sync.clientId:"nosync"};
@@ -9231,20 +9237,20 @@ App.getStoredMode=function(){var a=null;null==a&&isLocalStorage&&(a=localStorage
2)?(mxscript(App.DROPBOX_URL),mxscript(App.DROPINS_URL,null,"dropboxjs",App.DROPBOX_APPKEY)):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=null),"function"===typeof window.OneDriveClient&&("0"!=urlParams.od&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript(App.ONEDRIVE_URL):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=
null),"function"===typeof window.TrelloClient&&("0"!=urlParams.tr&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_TRELLO||null!=window.location.hash&&"#T"==window.location.hash.substring(0,2)?(mxscript(App.TRELLO_JQUERY_URL),mxscript(App.TRELLO_URL)):"0"==urlParams.chrome&&(window.TrelloClient=null):window.TrelloClient=null)),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")))})();
App.main=function(a,c){function d(b){mxUtils.getAll("1"!=urlParams.dev?[b]:[b,STYLE_PATH+"/default.xml",STYLE_PATH+"/dark-default.xml"],function(b){mxResources.parse(b[0].getText());if(isLocalStorage&&null!=localStorage&&null!=window.location.hash&&"#_CONFIG_"==window.location.hash.substring(0,9))try{var d=function(a){if(null!=a)for(var b=0;b<a.length;b++)if(!e[a[b]])throw Error(mxResources.get("invalidInput")+' "'+a[b])+'"';return!0},e={},f;for(f in App.pluginRegistry)e[App.pluginRegistry[f]]=!0;
-var k=JSON.parse(Graph.decompress(window.location.hash.substring(9)));null!=k&&d(k.plugins)&&(EditorUi.debug("Setting configuration",JSON.stringify(k)),confirm(mxResources.get("configLinkWarn"))&&confirm(mxResources.get("configLinkConfirm"))&&(localStorage.setItem(".configuration",JSON.stringify(k)),window.location.hash="",window.location.reload()));window.location.hash=""}catch(z){window.location.hash="",alert(z)}2<b.length&&(Graph.prototype.defaultThemes["default-style2"]=b[1].getDocumentElement(),
+var g=JSON.parse(Graph.decompress(window.location.hash.substring(9)));null!=g&&d(g.plugins)&&(EditorUi.debug("Setting configuration",JSON.stringify(g)),confirm(mxResources.get("configLinkWarn"))&&confirm(mxResources.get("configLinkConfirm"))&&(localStorage.setItem(".configuration",JSON.stringify(g)),window.location.hash="",window.location.reload()));window.location.hash=""}catch(y){window.location.hash="",alert(y)}2<b.length&&(Graph.prototype.defaultThemes["default-style2"]=b[1].getDocumentElement(),
Graph.prototype.defaultThemes.darkTheme=b[2].getDocumentElement());b=null!=c?c():new App(new Editor("0"==urlParams.chrome||"min"==uiTheme,null,null,null,"0"!=urlParams.chrome));if(null!=window.mxscript){if("function"===typeof window.DropboxClient&&null==window.Dropbox&&null!=window.DrawDropboxClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode))mxscript(App.DROPBOX_URL,function(){mxscript(App.DROPINS_URL,
function(){DrawDropboxClientCallback()},"dropboxjs",App.DROPBOX_APPKEY)});else if("undefined"===typeof window.Dropbox||"undefined"===typeof window.Dropbox.choose)window.DropboxClient=null;"function"===typeof window.OneDriveClient&&"undefined"===typeof OneDrive&&null!=window.DrawOneDriveClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):
"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null);"function"===typeof window.TrelloClient&&"undefined"===typeof window.Trello&&null!=window.DrawTrelloClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==urlParams.tr)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.TRELLO_JQUERY_URL,function(){mxscript(App.TRELLO_URL,function(){DrawTrelloClientCallback()})}):"undefined"===typeof window.Trello&&(window.TrelloClient=null)}null!=
a&&a(b);"0"!=urlParams.chrome&&"1"==urlParams.test&&(EditorUi.debug("App.start",[b,(new Date).getTime()-t0.getTime()+"ms"]),null!=urlParams["export"]&&EditorUi.debug("Export:",EXPORT_URL))},function(a){a=document.getElementById("geStatus");null!=a&&(a.innerHTML="Error loading page. <a>Please try refreshing.</a>",a.getElementsByTagName("a")[0].onclick=function(){mxLanguage="en";d(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))})})}function b(){try{if(null!=
mxSettings.settings){if(null!=mxSettings.settings.autosaveDelay){var a=parseInt(mxSettings.settings.autosaveDelay);!isNaN(a)&&0<a?(DrawioFile.prototype.autosaveDelay=a,EditorUi.debug("Setting autosaveDelay",a)):EditorUi.debug("Invalid autosaveDelay",a)}null!=mxSettings.settings.defaultEdgeLength&&(a=parseInt(mxSettings.settings.defaultEdgeLength),!isNaN(a)&&0<a?(Graph.prototype.defaultEdgeLength=a,EditorUi.debug("Using defaultEdgeLength",a)):EditorUi.debug("Invalid defaultEdgeLength",a))}}catch(m){null!=
-window.console&&console.error(m)}mxResources.loadDefaultBundle=!1;d(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}window.onerror=function(a,b,c,d,e){EditorUi.logError(a,b,c,d,e)};if("1"==urlParams.embed||"1"==urlParams.lightbox){var e=document.getElementById("geInfo");null!=e&&e.parentNode.removeChild(e)}null!=document.referrer&&"aws3"==urlParams.libs&&"https://aws.amazon.com/architecture/icons/"==document.referrer.substring(0,42)&&
-(urlParams.libs="aws4");if(null!=window.mxscript){"1"==urlParams.offline||"1"==urlParams.appcache?(mxscript("js/shapes.min.js"),mxscript("js/stencils.min.js"),mxscript("js/extensions.min.js"),"serviceWorker"in navigator?window.addEventListener("load",function(){navigator.serviceWorker.register("/service-worker.js")}):null!=window.applicationCache&&(e=document.createElement("iframe"),e.setAttribute("width","0"),e.setAttribute("height","0"),e.setAttribute("src","offline.html"),document.body.appendChild(e))):
-"serviceWorker"in navigator&&navigator.serviceWorker.controller&&window.addEventListener("load",function(){navigator.serviceWorker.register("/service-worker.js")});"ArrayBuffer"in window&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"auto"==DrawioFile.SYNC&&"1"!=urlParams.embed&&"1"!=urlParams.local&&"1"!=urlParams.stealth&&"1"!=urlParams.offline&&mxscript(App.PUSHER_URL);if("0"!=urlParams.plugins&&"1"!=urlParams.offline){e=null!=mxSettings.settings?mxSettings.getPlugins():null;if(null==mxSettings.settings&&
-isLocalStorage&&"undefined"!==typeof JSON)try{var g=JSON.parse(localStorage.getItem(mxSettings.key));null!=g&&(e=g.plugins)}catch(f){}g=urlParams.p;App.initPluginCallback();null!=g&&App.loadPlugins(g.split(";"));if(null!=e&&0<e.length&&"0"!=urlParams.plugins){for(var g=window.location.protocol+"//"+window.location.host,k=!0,l=0;l<e.length&&k;l++)"/"!=e[l].charAt(0)&&e[l].substring(0,g.length)!=g&&(k=!1);if(k||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",
-[e.join("\n")]).replace(/\\n/g,"\n")))for(l=0;l<e.length;l++)try{null==App.pluginsLoaded[e[l]]&&(App.pluginsLoaded[e[l]]=!0,App.embedModePluginsCount++,"/"==e[l].charAt(0)&&(e[l]=PLUGINS_BASE_PATH+e[l]),mxscript(e[l]))}catch(f){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback",
+window.console&&console.error(m)}mxResources.loadDefaultBundle=!1;d(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}window.onerror=function(a,b,c,d,f){EditorUi.logError(a,b,c,d,f)};if("1"==urlParams.embed||"1"==urlParams.lightbox){var f=document.getElementById("geInfo");null!=f&&f.parentNode.removeChild(f)}null!=document.referrer&&"aws3"==urlParams.libs&&"https://aws.amazon.com/architecture/icons/"==document.referrer.substring(0,42)&&
+(urlParams.libs="aws4");if(null!=window.mxscript){"1"==urlParams.offline||"1"==urlParams.appcache?(mxscript("js/shapes.min.js"),mxscript("js/stencils.min.js"),mxscript("js/extensions.min.js"),"serviceWorker"in navigator?window.addEventListener("load",function(){navigator.serviceWorker.register("/service-worker.js")}):null!=window.applicationCache&&(f=document.createElement("iframe"),f.setAttribute("width","0"),f.setAttribute("height","0"),f.setAttribute("src","offline.html"),document.body.appendChild(f))):
+"serviceWorker"in navigator&&navigator.serviceWorker.controller&&window.addEventListener("load",function(){navigator.serviceWorker.register("/service-worker.js")});"ArrayBuffer"in window&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"auto"==DrawioFile.SYNC&&"1"!=urlParams.embed&&"1"!=urlParams.local&&"1"!=urlParams.stealth&&"1"!=urlParams.offline&&mxscript(App.PUSHER_URL);if("0"!=urlParams.plugins&&"1"!=urlParams.offline){f=null!=mxSettings.settings?mxSettings.getPlugins():null;if(null==mxSettings.settings&&
+isLocalStorage&&"undefined"!==typeof JSON)try{var g=JSON.parse(localStorage.getItem(mxSettings.key));null!=g&&(f=g.plugins)}catch(e){}g=urlParams.p;App.initPluginCallback();null!=g&&App.loadPlugins(g.split(";"));if(null!=f&&0<f.length&&"0"!=urlParams.plugins){for(var g=window.location.protocol+"//"+window.location.host,k=!0,l=0;l<f.length&&k;l++)"/"!=f[l].charAt(0)&&f[l].substring(0,g.length)!=g&&(k=!1);if(k||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",
+[f.join("\n")]).replace(/\\n/g,"\n")))for(l=0;l<f.length;l++)try{null==App.pluginsLoaded[f[l]]&&(App.pluginsLoaded[f[l]]=!0,App.embedModePluginsCount++,"/"==f[l].charAt(0)&&(f[l]=PLUGINS_BASE_PATH+f[l]),mxscript(f[l]))}catch(e){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback",
null,null,null,mxClient.IS_SVG):"undefined"===typeof window.gapi&&(window.DriveClient=null)}"0"!=urlParams.math&&Editor.initMath();if("1"==urlParams.configure){var n=window.opener||window.parent,q=function(a){if(a.source==n)try{var c=JSON.parse(a.data);null!=c&&"configure"==c.action&&(mxEvent.removeListener(window,"message",q),Editor.configure(c.config,!0),mxSettings.load(),b())}catch(p){null!=window.console&&console.log("Error in configure message: "+p,a.data)}};mxEvent.addListener(window,"message",
-q);n.postMessage(JSON.stringify({event:"configure"}),"*")}else{if(null==Editor.config){if(null!=window.DRAWIO_CONFIG)try{EditorUi.debug("Using global configuration",window.DRAWIO_CONFIG),Editor.configure(window.DRAWIO_CONFIG)}catch(f){null!=window.console&&console.error(f)}if(isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&(e=localStorage.getItem(".configuration"),null!=e))try{e=JSON.parse(e),null!=e&&(EditorUi.debug("Using local configuration",e),Editor.configure(e))}catch(f){null!=window.console&&
-console.error(f)}}b()}};mxUtils.extend(App,EditorUi);App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=64";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg==";
+q);n.postMessage(JSON.stringify({event:"configure"}),"*")}else{if(null==Editor.config){if(null!=window.DRAWIO_CONFIG)try{EditorUi.debug("Using global configuration",window.DRAWIO_CONFIG),Editor.configure(window.DRAWIO_CONFIG)}catch(e){null!=window.console&&console.error(e)}if(isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&(f=localStorage.getItem(".configuration"),null!=f))try{f=JSON.parse(f),null!=f&&(EditorUi.debug("Using local configuration",f),Editor.configure(f))}catch(e){null!=window.console&&
+console.error(e)}}b()}};mxUtils.extend(App,EditorUi);App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=64";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg==";
App.prototype.chevronUpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUY1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NjA1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1RDUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1RTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg+qUokAAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAAL0lEQVR42mJgRgMMRAswMKAKMDDARBjg8lARBoR6KImkH0wTbygT6YaS4DmAAAMAYPkClOEDDD0AAAAASUVORK5CYII=":
IMAGE_PATH+"/chevron-up.png";
App.prototype.chevronDownImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUI1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NUM1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1OTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1QTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsCtve8AAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAALUlEQVR42mJgRgMMRAkwQEXBNAOcBSPhclB1cNVwfcxI+vEZykSpoSR6DiDAAF23ApT99bZ+AAAAAElFTkSuQmCC":IMAGE_PATH+
@@ -9254,26 +9260,27 @@ App.prototype.formatShowImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgo
App.prototype.formatHideImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODdCREY5REI1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODdCREY5REM1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4N0JERjlEOTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4N0JERjlEQTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqjT9SMAAAAGUExURQAAAP///6XZn90AAAACdFJOU/8A5bcwSgAAAB9JREFUeNpiYEQDDEQJMMABTAAmNdAC6A4j0XMAAQYAcbwA1Xvj1CgAAAAASUVORK5CYII=":IMAGE_PATH+
"/format-hide.png";App.prototype.fullscreenImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABpJREFUCNdjgAAbGxAy4AEh5gNwBBGByoIBAIueBd12TUjqAAAAAElFTkSuQmCC":IMAGE_PATH+"/fullscreen.png";App.prototype.warnInterval=3E5;"1"!=urlParams.embed?App.prototype.menubarHeight=64:App.prototype.footerHeight=0;App.initPluginCallback=function(){null==App.DrawPlugins&&(App.DrawPlugins=[],window.Draw={},window.Draw.loadPlugin=function(a){App.DrawPlugins.push(a)})};
App.pluginsLoaded={};App.embedModePluginsCount=0;
-App.loadPlugins=function(a,c){EditorUi.debug("Loading plugins",a);for(var d=0;d<a.length;d++)if(null!=a[d]&&0<a[d].length)try{var b=App.pluginRegistry[a[d]];null!=b?null==App.pluginsLoaded[b]&&(App.pluginsLoaded[b]=!0,App.embedModePluginsCount++,"undefined"===typeof window.drawDevUrl?c?mxinclude(b):mxscript(b):c?mxinclude(b):mxscript(drawDevUrl+b)):null!=window.console&&console.log("Unknown plugin:",a[d])}catch(e){null!=window.console&&console.log("Error loading plugin:",a[d],e)}};
+App.loadPlugins=function(a,c){EditorUi.debug("Loading plugins",a);for(var d=0;d<a.length;d++)if(null!=a[d]&&0<a[d].length)try{var b=App.pluginRegistry[a[d]];null!=b?null==App.pluginsLoaded[b]&&(App.pluginsLoaded[b]=!0,App.embedModePluginsCount++,"undefined"===typeof window.drawDevUrl?c?mxinclude(b):mxscript(b):c?mxinclude(b):mxscript(drawDevUrl+b)):null!=window.console&&console.log("Unknown plugin:",a[d])}catch(f){null!=window.console&&console.log("Error loading plugin:",a[d],f)}};
App.prototype.initializeEmbedMode=function(){"1"!=urlParams.embed||0<App.embedModePluginsCount||this.initEmbedDone||(this.initEmbedDone=!0,EditorUi.prototype.initializeEmbedMode.apply(this,arguments))};App.prototype.initializeViewerMode=function(){var a=window.opener||window.parent;null!=a&&this.editor.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(){a.postMessage(JSON.stringify(this.createLoadMessage("size")),"*")}))};
App.prototype.init=function(){EditorUi.prototype.init.apply(this,arguments);this.defaultLibraryName=mxResources.get("untitledLibrary");this.descriptorChangedListener=mxUtils.bind(this,this.descriptorChanged);this.gitHub=mxClient.IS_IE&&10!=document.documentMode&&!mxClient.IS_IE11&&!mxClient.IS_EDGE||"0"==urlParams.gh||"1"==urlParams.embed&&"1"!=urlParams.gh?null:new GitHubClient(this);null!=this.gitHub&&this.gitHub.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()}));
-this.gitLab=mxClient.IS_IE&&10!=document.documentMode&&!mxClient.IS_IE11&&!mxClient.IS_EDGE||"0"==urlParams.gl||"1"==urlParams.embed&&"1"!=urlParams.gl?null:new GitLabClient(this);null!=this.gitLab&&this.gitLab.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()}));var a=mxUtils.bind(this,function(a,b,c,d,e,k){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:0px;max-width:90%;padding:10px;padding-right:26px;white-space:nowrap;left:50%;bottom:2px;";
-f.className=c;c="geStatusAlert"==c?'<img src="'+mxClient.imageBasePath+'/warning.gif" border="0" style="margin-top:-4px;margin-right:8px;margin-left:8px;" valign="middle"/>':"";mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,110%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.style.whiteSpace="nowrap";f.innerHTML='<a href="'+(null!=b?b:"javascript:void(0)")+'" target="_blank" style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;">'+c+
-a+c+"</a>"+(null!=e?'<a href="'+e+'" target="_blank" style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;margin-right:8px;">Help</a>':"");a=document.createElement("img");a.setAttribute("src",Dialog.prototype.closeImage);a.setAttribute("title",mxResources.get("close"));a.style.position="absolute";a.style.cursor="pointer";a.style.right="10px";a.style.top="12px";f.appendChild(a);d&&mxEvent.addListener(a,"click",d);null!=k&&(f.style.paddingRight="40px",mxEvent.addListener(f,
-"click",k));return f});if("1"!=urlParams.embed||"1"==urlParams.od){var c=mxUtils.bind(this,function(){"undefined"!==typeof OneDrive?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):null==window.DrawOneDriveClientCallback&&(window.DrawOneDriveClientCallback=c)});c()}if("1"!=urlParams.embed||"1"==urlParams.tr){var d=
-mxUtils.bind(this,function(){if("undefined"!==typeof window.Trello)try{this.trello=new TrelloClient(this),this.trello.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.trello))}catch(l){null!=window.console&&console.error(l)}else null==window.DrawTrelloClientCallback&&(window.DrawTrelloClientCallback=d)});d()}if("1"!=urlParams.embed||"1"==urlParams.gapi){var b=mxUtils.bind(this,function(){if("undefined"!==
-typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this);this.drive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries();this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+App.GOOGLE_APIS,a),window.DrawGapiClientCallback=null):a()}else null==window.DrawGapiClientCallback&&(window.DrawGapiClientCallback=
-b)});b()}if("1"!=urlParams.embed||"1"==urlParams.db){var e=mxUtils.bind(this,function(){if("function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose){window.DrawDropboxClientCallback=null;try{this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))}catch(l){null!=window.console&&console.error(l)}}else null==window.DrawDropboxClientCallback&&
-(window.DrawDropboxClientCallback=e)});e()}if("1"!=urlParams.embed){this.bg=this.createBackground();document.body.appendChild(this.bg);this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";"1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode;if("1"==urlParams.offline&&"serviceWorker"in navigator&&!mxClient.IS_CHROMEAPP&&
-!EditorUi.isElectronApp){var g=null;window.addEventListener("beforeinstallprompt",mxUtils.bind(this,function(b){if(!(this.footerShowing||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings.closeAddToHomeScreenFooter)){g=b;var c=mxUtils.bind(this,function(){d.parentNode.removeChild(d);this.footerShowing=!1;g=null;this.hideFooter();isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings.closeAddToHomeScreenFooter=Date.now(),mxSettings.save())}),d=a('<img border="0" align="absmiddle" style="margin-top:-6px;cursor:pointer;margin-left:8px;margin-right:12px;width:24px;height:24px;" src="'+
-IMAGE_PATH+'/logo.png"><font size="3" style="color:#ffffff;">'+mxUtils.htmlEntities(mxResources.get("installDrawio",null,"Install draw.io"))+"</font>","https://www.draw.io/index.html?offline=1","geStatusMessage geBtn gePrimaryBtn",c,null,mxUtils.bind(this,function(){null!=g&&(g.prompt(),g.userChoice.then(c))}));d.style.zIndex=mxPopupMenu.prototype.zIndex;d.style.padding="18px 50px 12px 30px";d.getElementsByTagName("img")[1].style.filter="invert(1)";document.body.appendChild(d);this.footerShowing=
-!0;window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,110%)");this.footerShowing=!1}),6E4)}}))}else mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||this.editor.chromeless&&!this.editor.editable||this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){if(!(this.getCurrentFile().mode!=App.MODE_DEVICE||isLocalStorage&&
-null!=mxSettings.settings&&null!=mxSettings.settings.closeDesktopFooter||this.footerShowing)&&null==urlParams.open){var b=a('<img border="0" align="absmiddle" style="margin-top:-6px;cursor:pointer;margin-left:8px;margin-right:12px;width:24px;height:24px;" src="'+IMAGE_PATH+'/logo.png"><font size="3" style="color:#ffffff;">'+mxUtils.htmlEntities(mxResources.get("downloadDesktop"))+"</font>","https://get.draw.io/","geStatusMessage geBtn gePrimaryBtn",mxUtils.bind(this,function(){b.parentNode.removeChild(b);
-this.footerShowing=!1;this.hideFooter();isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings.closeDesktopFooter=Date.now(),mxSettings.save())}));b.style.zIndex=mxPopupMenu.prototype.zIndex;b.style.padding="18px 50px 12px 30px";b.getElementsByTagName("img")[1].style.filter="invert(1)";document.body.appendChild(b);this.footerShowing=!0;window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(b.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(mxUtils.bind(this,
-function(){mxUtils.setPrefixedStyle(b.style,"transform","translate(-50%,110%)");this.footerShowing=!1}),6E4)}}));if(!(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"1"==urlParams.embed||"auto"!=DrawioFile.SYNC||"1"==urlParams.local||"1"==urlParams.stealth||"1"==urlParams.offline||this.editor.chromeless&&!this.editor.editable)){var k=window.setTimeout(mxUtils.bind(this,function(){DrawioFile.SYNC="manual";var a=this.getCurrentFile();null!=a&&null!=a.sync&&(a.sync.destroy(),a.sync=null,a=mxUtils.htmlEntities(mxResources.get("timeout")),
-this.editor.setStatus('<div title="'+a+'" class="geStatusAlert" style="overflow:hidden;">'+a+"</div>"));EditorUi.logEvent({category:"TIMEOUT-CACHE-CHECK",action:"timeout",label:408})}),Editor.cacheTimeout);(new Date).getTime();mxUtils.get(EditorUi.cacheUrl+"?alive",mxUtils.bind(this,function(a){window.clearTimeout(k)}))}}else null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();null!=this.menubar&&(this.buttonContainer=document.createElement("div"),this.buttonContainer.style.display=
-"inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",IMAGE_PATH+"/logo-flat-small.png"),this.icon.setAttribute("title",mxResources.get("draw.io")),
-this.icon.style.padding="6px",this.icon.style.cursor="pointer",mxEvent.addListener(this.icon,"click",mxUtils.bind(this,function(a){this.appIconClicked(a)})),mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild));this.editor.graph.isViewer()&&this.initializeViewerMode()};
+this.gitLab=mxClient.IS_IE&&10!=document.documentMode&&!mxClient.IS_IE11&&!mxClient.IS_EDGE||"0"==urlParams.gl||"1"==urlParams.embed&&"1"!=urlParams.gl?null:new GitLabClient(this);null!=this.gitLab&&this.gitLab.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()}));var a=mxUtils.bind(this,function(a,b,c,d,f,g,k){var e=document.createElement("div");e.style.cssText="position:absolute;bottom:0px;max-width:90%;padding:10px;padding-right:26px;white-space:nowrap;left:50%;bottom:2px;";
+e.className=c;c="geStatusAlert"==c?'<img src="'+mxClient.imageBasePath+'/warning.gif" border="0" style="margin-top:-4px;margin-right:8px;margin-left:8px;" valign="middle"/>':"";mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,110%)");mxUtils.setPrefixedStyle(e.style,"transition","all 1s ease");e.style.whiteSpace="nowrap";e.innerHTML='<a href="'+(null!=b?b:"javascript:void(0)")+'" '+(k?"":'target="_blank" ')+'style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;">'+
+c+a+c+"</a>"+(null!=f?'<a href="'+f+'" target="_blank" style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;margin-right:8px;">Help</a>':"");a=document.createElement("img");a.setAttribute("src",Dialog.prototype.closeImage);a.setAttribute("title",mxResources.get("close"));a.style.position="absolute";a.style.cursor="pointer";a.style.right="10px";a.style.top="12px";e.appendChild(a);d&&mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){d(a);mxEvent.consume(a)}));
+null!=g&&(e.style.paddingRight="40px",mxEvent.addListener(e,"click",mxUtils.bind(this,function(a){g(a)})));return e});if("1"!=urlParams.embed||"1"==urlParams.od){var c=mxUtils.bind(this,function(){"undefined"!==typeof OneDrive?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):null==window.DrawOneDriveClientCallback&&
+(window.DrawOneDriveClientCallback=c)});c()}if("1"!=urlParams.embed||"1"==urlParams.tr){var d=mxUtils.bind(this,function(){if("undefined"!==typeof window.Trello)try{this.trello=new TrelloClient(this),this.trello.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.trello))}catch(l){null!=window.console&&console.error(l)}else null==window.DrawTrelloClientCallback&&(window.DrawTrelloClientCallback=
+d)});d()}if("1"!=urlParams.embed||"1"==urlParams.gapi){var b=mxUtils.bind(this,function(){if("undefined"!==typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this);this.drive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries();this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+App.GOOGLE_APIS,a),
+window.DrawGapiClientCallback=null):a()}else null==window.DrawGapiClientCallback&&(window.DrawGapiClientCallback=b)});b()}if("1"!=urlParams.embed||"1"==urlParams.db){var f=mxUtils.bind(this,function(){if("function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose){window.DrawDropboxClientCallback=null;try{this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded",
+"client",this.dropbox))}catch(l){null!=window.console&&console.error(l)}}else null==window.DrawDropboxClientCallback&&(window.DrawDropboxClientCallback=f)});f()}if("1"!=urlParams.embed){this.bg=this.createBackground();document.body.appendChild(this.bg);this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";"1"==urlParams.local?this.setMode(App.MODE_DEVICE):
+this.mode=App.mode;if("1"==urlParams.offline&&"serviceWorker"in navigator&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var g=null;window.addEventListener("beforeinstallprompt",mxUtils.bind(this,function(b){if(!(this.footerShowing||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings.closeAddToHomeScreenFooter)){g=b;var c=mxUtils.bind(this,function(){d.parentNode.removeChild(d);this.footerShowing=!1;g=null;this.hideFooter();isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings.closeAddToHomeScreenFooter=
+Date.now(),mxSettings.save())}),d=a('<img border="0" align="absmiddle" style="margin-top:-6px;cursor:pointer;margin-left:8px;margin-right:12px;width:24px;height:24px;" src="'+IMAGE_PATH+'/logo.png"><font size="3" style="color:#ffffff;">'+mxUtils.htmlEntities(mxResources.get("installDrawio",null,"Install draw.io"))+"</font>","https://www.draw.io/index.html?offline=1","geStatusMessage geBtn gePrimaryBtn",c,null,mxUtils.bind(this,function(){null!=g&&(g.prompt(),g.userChoice.then(c))}));d.style.zIndex=
+mxPopupMenu.prototype.zIndex;d.style.padding="18px 50px 12px 30px";d.getElementsByTagName("img")[1].style.filter="invert(1)";document.body.appendChild(d);this.footerShowing=!0;window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,110%)");this.footerShowing=!1}),6E4)}}))}else mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||this.editor.chromeless&&
+!this.editor.editable||this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){var b=this.getCurrentFile(),b=null!=b?b.getMode():null;b!=App.MODE_DEVICE&&b!=App.MODE_BROWSER||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings.closeDesktopFooter||this.footerShowing||null!=urlParams.open||mxUtils.get("https://api.github.com/repos/jgraph/drawio-desktop/releases/latest",mxUtils.bind(this,function(b){var c=JSON.parse(b.getText());b="https://get.draw.io/";null!=c&&null!=c.tag_name&&
+null!=c.name&&null!=c.html_url&&(mxClient.IS_MAC?b="https://github.com/jgraph/drawio-desktop/releases/download/"+c.tag_name+"/draw.io-"+c.name+".dmg":mxClient.IS_WIN&&(b="https://github.com/jgraph/drawio-desktop/releases/download/"+c.tag_name+"/draw.io-"+c.name+"-windows-installer.exe"));var c=mxUtils.bind(this,function(){d.parentNode.removeChild(d);this.footerShowing=!1;this.hideFooter();isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings.closeDesktopFooter=Date.now(),mxSettings.save())}),
+d=a('<img border="0" align="absmiddle" style="margin-top:-6px;cursor:pointer;margin-left:8px;margin-right:12px;width:24px;height:24px;" src="'+IMAGE_PATH+'/logo.png"><font size="3" style="color:#ffffff;">'+mxUtils.htmlEntities(mxResources.get("downloadDesktop"))+"</font>",b,"geStatusMessage geBtn gePrimaryBtn",c,null,c);d.style.zIndex=mxPopupMenu.prototype.zIndex;d.style.padding="18px 50px 12px 30px";d.getElementsByTagName("img")[1].style.filter="invert(1)";document.body.appendChild(d);this.footerShowing=
+!0;window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,110%)");this.footerShowing=!1}),6E4)}))}));if(!(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"1"==urlParams.embed||"auto"!=DrawioFile.SYNC||"1"==urlParams.local||"1"==urlParams.stealth||"1"==urlParams.offline||this.editor.chromeless&&!this.editor.editable)){var k=window.setTimeout(mxUtils.bind(this,
+function(){DrawioFile.SYNC="manual";var a=this.getCurrentFile();null!=a&&null!=a.sync&&(a.sync.destroy(),a.sync=null,a=mxUtils.htmlEntities(mxResources.get("timeout")),this.editor.setStatus('<div title="'+a+'" class="geStatusAlert" style="overflow:hidden;">'+a+"</div>"));EditorUi.logEvent({category:"TIMEOUT-CACHE-CHECK",action:"timeout",label:408})}),Editor.cacheTimeout);(new Date).getTime();mxUtils.get(EditorUi.cacheUrl+"?alive",mxUtils.bind(this,function(a){window.clearTimeout(k)}))}}else null!=
+this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();null!=this.menubar&&(this.buttonContainer=document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display=
+"none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",IMAGE_PATH+"/logo-flat-small.png"),this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.padding="6px",this.icon.style.cursor="pointer",mxEvent.addListener(this.icon,"click",mxUtils.bind(this,function(a){this.appIconClicked(a)})),mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild));this.editor.graph.isViewer()&&this.initializeViewerMode()};
App.prototype.scheduleSanityCheck=function(){null==this.sanityCheckThread&&(this.sanityCheckThread=window.setTimeout(mxUtils.bind(this,function(){this.sanityCheckThread=null;this.sanityCheck()}),this.warnInterval))};App.prototype.stopSanityCheck=function(){null!=this.sanityCheckThread&&(window.clearTimeout(this.sanityCheckThread),this.sanityCheckThread=null)};
App.prototype.sanityCheck=function(){var a=this.getCurrentFile();if(null!=a&&a.isModified()&&a.isAutosave()&&a.isOverdue()){var c={category:"WARN-FILE-"+a.getHash(),action:(a.savingFile?"saving":"")+(a.savingFile&&null!=a.savingFileTime?"_"+Math.round((Date.now()-a.savingFileTime.getTime())/1E3):"")+(null!=a.saveLevel?"-sl_"+a.saveLevel:"")+"-age_"+(null!=a.ageStart?Math.round((Date.now()-a.ageStart.getTime())/1E3):"x")+(this.editor.autosave?"":"-nosave")+(a.isAutosave()?"":"-noauto")+"-open_"+(null!=
a.opened?Math.round((Date.now()-a.opened.getTime())/1E3):"x")+"-save_"+(null!=a.lastSaved?Math.round((Date.now()-a.lastSaved.getTime())/1E3):"x")+"-change_"+(null!=a.lastChanged?Math.round((Date.now()-a.lastChanged.getTime())/1E3):"x")+"-alive_"+Math.round((Date.now()-App.startTime.getTime())/1E3),label:null!=a.sync?"client_"+a.sync.clientId:"nosync"};a.constructor==DriveFile&&null!=a.desc&&null!=this.drive&&(c.label+=(null!=this.drive.user?"-user_"+this.drive.user.id:"-nouser")+"-rev_"+a.desc.headRevisionId+
@@ -9286,14 +9293,14 @@ App.prototype.updateDraft=function(){isLocalStorage&&null!=localStorage&&localSt
App.prototype.getRecent=function(){if(isLocalStorage&&null!=localStorage){try{var a=localStorage.getItem(".recent");if(null!=a)return JSON.parse(a)}catch(c){}return null}};App.prototype.resetRecent=function(a){if(isLocalStorage&&null!=localStorage)try{localStorage.removeItem(".recent")}catch(c){}};App.prototype.removeDraft=function(){if(isLocalStorage&&null!=localStorage&&"0"==urlParams.splash)try{localStorage.removeItem(".draft")}catch(a){}};
App.prototype.onBeforeUnload=function(){if("1"==urlParams.embed&&this.editor.modified)return mxResources.get("allChangesLost");var a=this.getCurrentFile();if(null!=a)if(a.constructor!=LocalFile||""!=a.getHash()||a.isModified()||"1"==urlParams.nowarn||this.isDiagramEmpty()||null!=urlParams.url||this.editor.isChromelessView()){if(a.isModified())return mxResources.get("allChangesLost");a.close(!0)}else return mxResources.get("ensureDataSaved")};
App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxView()){var a=this.editor.appName,c=this.getCurrentFile();this.isOfflineApp()&&(a+=" app");null!=c&&(a=(null!=c.getTitle()?c.getTitle():this.defaultFilename)+" - "+a);document.title=a}};App.prototype.createCrcTable=function(){for(var a=[],c,d=0;256>d;d++){c=d;for(var b=0;8>b;b++)c=c&1?3988292384^c>>>1:c>>>1;a[d]=c}return a};
-App.prototype.getThumbnail=function(a,c){var d=!1;try{var b=!0,e=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(null)}),this.timeout),g=mxUtils.bind(this,function(a){window.clearTimeout(e);b&&c(a)});null==this.thumbImageCache&&(this.thumbImageCache={});var k=this.editor.graph,l=null!=k.themes&&"darkTheme"==k.defaultThemeName;if(null!=this.pages&&(this.currentPage!=this.pages[0]||l)){var n=k.getGlobalVariable,k=this.createTemporaryGraph(l?k.getDefaultStylesheet():k.getStylesheet()),q=this.pages[0];
-l&&(k.defaultThemeName="default");k.getGlobalVariable=function(a){return"page"==a?q.getName():"pagenumber"==a?1:n.apply(this,arguments)};k.getGlobalVariable=n;document.body.appendChild(k.container);k.model.setRoot(q.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.exportToCanvas(mxUtils.bind(this,function(a){try{k!=this.editor.graph&&null!=k.container.parentNode&&k.container.parentNode.removeChild(k.container)}catch(B){a=null}g(a)}),a,this.thumbImageCache,"#ffffff",function(){g()},null,
-null,null,null,null,null,k),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var f=document.createElement("canvas"),m=k.getGraphBounds(),p=a/m.width,p=Math.min(1,Math.min(3*a/(4*m.height),p)),u=Math.floor(m.x),v=Math.floor(m.y);f.setAttribute("width",Math.ceil(p*(m.width+4)));f.setAttribute("height",Math.ceil(p*(m.height+4)));var t=f.getContext("2d");t.scale(p,p);t.translate(-u,-v);var z=k.background;if(null==z||""==z||z==mxConstants.NONE)z="#ffffff";t.save();t.fillStyle=z;t.fillRect(u,
-v,Math.ceil(m.width+4),Math.ceil(m.height+4));t.restore();var x=new mxJsCanvas(f),C=new mxAsyncCanvas(this.thumbImageCache);x.images=this.thumbImageCache.images;var H=new mxImageExport;H.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};H.drawText=function(a,b){};H.drawState(k.getView().getState(k.model.root),C);C.finish(mxUtils.bind(this,function(){try{H.drawState(k.getView().getState(k.model.root),
-x),k!=this.editor.graph&&null!=k.container.parentNode&&k.container.parentNode.removeChild(k.container)}catch(y){f=null}g(f)}));d=!0}}catch(y){d=!1,null!=k&&k!=this.editor.graph&&null!=k.container.parentNode&&k.container.parentNode.removeChild(k.container)}return d};
+App.prototype.getThumbnail=function(a,c){var d=!1;try{var b=!0,f=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(null)}),this.timeout),g=mxUtils.bind(this,function(a){window.clearTimeout(f);b&&c(a)});null==this.thumbImageCache&&(this.thumbImageCache={});var k=this.editor.graph,l=null!=k.themes&&"darkTheme"==k.defaultThemeName;if(null!=this.pages&&(this.currentPage!=this.pages[0]||l)){var n=k.getGlobalVariable,k=this.createTemporaryGraph(l?k.getDefaultStylesheet():k.getStylesheet()),q=this.pages[0];
+l&&(k.defaultThemeName="default");k.getGlobalVariable=function(a){return"page"==a?q.getName():"pagenumber"==a?1:n.apply(this,arguments)};k.getGlobalVariable=n;document.body.appendChild(k.container);k.model.setRoot(q.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.exportToCanvas(mxUtils.bind(this,function(a){try{k!=this.editor.graph&&null!=k.container.parentNode&&k.container.parentNode.removeChild(k.container)}catch(C){a=null}g(a)}),a,this.thumbImageCache,"#ffffff",function(){g()},null,
+null,null,null,null,null,k),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var e=document.createElement("canvas"),m=k.getGraphBounds(),p=a/m.width,p=Math.min(1,Math.min(3*a/(4*m.height),p)),u=Math.floor(m.x),v=Math.floor(m.y);e.setAttribute("width",Math.ceil(p*(m.width+4)));e.setAttribute("height",Math.ceil(p*(m.height+4)));var t=e.getContext("2d");t.scale(p,p);t.translate(-u,-v);var y=k.background;if(null==y||""==y||y==mxConstants.NONE)y="#ffffff";t.save();t.fillStyle=y;t.fillRect(u,
+v,Math.ceil(m.width+4),Math.ceil(m.height+4));t.restore();var z=new mxJsCanvas(e),B=new mxAsyncCanvas(this.thumbImageCache);z.images=this.thumbImageCache.images;var G=new mxImageExport;G.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};G.drawText=function(a,b){};G.drawState(k.getView().getState(k.model.root),B);B.finish(mxUtils.bind(this,function(){try{G.drawState(k.getView().getState(k.model.root),
+z),k!=this.editor.graph&&null!=k.container.parentNode&&k.container.parentNode.removeChild(k.container)}catch(x){e=null}g(e)}));d=!0}}catch(x){d=!1,null!=k&&k!=this.editor.graph&&null!=k.container.parentNode&&k.container.parentNode.removeChild(k.container)}return d};
App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a};
(function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(c,d){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(null!=this.appIcon){var b=this.getCurrentFile();c=null!=b?b.getMode():c;c==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):c==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),
-this.appIcon.style.cursor="pointer"):c==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor=c==App.MODE_DEVICE?"pointer":"default")}if(d)try{if(isLocalStorage)localStorage.setItem(".mode",c);else if("undefined"!=typeof Storage){var e=new Date;e.setYear(e.getFullYear()+1);document.cookie="MODE="+c+"; expires="+e.toUTCString()}}catch(g){}}})();
+this.appIcon.style.cursor="pointer"):c==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor=c==App.MODE_DEVICE?"pointer":"default")}if(d)try{if(isLocalStorage)localStorage.setItem(".mode",c);else if("undefined"!=typeof Storage){var f=new Date;f.setYear(f.getFullYear()+1);document.cookie="MODE="+c+"; expires="+f.toUTCString()}}catch(g){}}})();
App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var c=this.getCurrentFile(),d=null!=c?c.getMode():null;d==App.MODE_GOOGLE?null!=c&&null!=c.desc&&null!=c.desc.parents&&0<c.desc.parents.length&&!mxEvent.isShiftDown(a)?this.openLink("https://drive.google.com/drive/folders/"+c.desc.parents[0].id):null!=c&&null!=c.getId()?this.openLink("https://drive.google.com/open?id="+c.getId()):this.openLink("https://drive.google.com/?authuser=0"):d==App.MODE_ONEDRIVE?null!=
c&&null!=c.meta&&null!=c.meta.webUrl?(d=c.meta.webUrl,c=encodeURIComponent(c.meta.name),d.substring(d.length-c.length,d.length)==c&&(d=d.substring(0,d.length-c.length)),this.openLink(d)):this.openLink("https://onedrive.live.com/"):d==App.MODE_DROPBOX?null!=c&&null!=c.stat&&null!=c.stat.path_display?(d="https://www.dropbox.com/home/Apps/drawio"+c.stat.path_display,mxEvent.isShiftDown(a)||(d=d.substring(0,d.length-c.stat.name.length)),this.openLink(d)):this.openLink("https://www.dropbox.com/"):d==App.MODE_TRELLO?
this.openLink("https://trello.com/"):d==App.MODE_GITHUB?null!=c&&c.constructor==GitHubFile?this.openLink(c.meta.html_url):this.openLink("https://github.com/"):d==App.MODE_GITLAB?null!=c&&c.constructor==GitLabFile?this.openLink(c.meta.html_url):this.openLink(DRAWIO_GITLAB_URL):d==App.MODE_DEVICE&&this.openLink("https://get.draw.io/")}mxEvent.consume(a)};
@@ -9313,8 +9320,8 @@ function(c,d){d.source==b&&a(c)})))}}else if(null==this.dialog)if("1"==urlParams
d?d.data:this.getFileData(),c=Editor.useLocalStorage;this.createFile(this.defaultFilename,n,null,null,null,null,null,!0);Editor.useLocalStorage=c;null!=d&&(c=this.getCurrentFile(),null!=c&&c.addUnsavedStatus())}}}),c=decodeURIComponent(urlParams.create||"");if((null==window.location.hash||1>=window.location.hash.length)&&null!=c&&0<c.length&&this.spinner.spin(document.body,mxResources.get("loading"))){var d=mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("reconnecting"))&&
(window.location.search=this.getSearch(["create","title"]))}),b=mxUtils.bind(this,function(a){this.spinner.stop();if("0"!=urlParams.splash){this.fileLoaded(new LocalFile(this,a,null));this.editor.graph.setEnabled(!1);this.mode=urlParams.mode;var b=urlParams.title,b=null!=b?decodeURIComponent(b):this.defaultFilename;a=this.getServiceCount(!0);isLocalStorage&&a++;var c=4>=a?2:6<a?4:3,b=new CreateDialog(this,b,mxUtils.bind(this,function(a,b){if(null==b){this.hideDialog();var c=Editor.useLocalStorage;
this.createFile(0<a.length?a:this.defaultFilename,this.getFileData(),null,null,null,!0,null,!0);Editor.useLocalStorage=c}else this.pickFolder(b,mxUtils.bind(this,function(c){this.createFile(a,this.getFileData(!0),null,b,null,!0,c)}))}),null,null,null,null,"1"==urlParams.browser,null,null,!0,c,null,null,null,this.editor.fileExtensions);this.showDialog(b.container,400,a>c?390:270,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));b.init()}}),c=decodeURIComponent(c);
-if("http://"!=c.substring(0,7)&&"https://"!=c.substring(0,8))try{null!=window.opener&&null!=window.opener[c]?b(window.opener[c]):this.handleError(null,mxResources.get("errorLoadingFile"))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}else this.loadTemplate(c,function(a){b(a)},mxUtils.bind(this,function(){this.handleError(null,mxResources.get("errorLoadingFile"),d)}))}else(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.state&&null!=this.stateArg&&"open"==
-this.stateArg.action?null!=this.stateArg.ids&&(window.history&&window.history.replaceState&&window.history.replaceState(null,null,window.location.pathname+this.getSearch(["state"])),window.location.hash="G"+this.stateArg.ids[0]):(null==window.location.hash||1>=window.location.hash.length)&&null!=this.drive&&null!=this.stateArg&&"create"==this.stateArg.action?(this.setMode(App.MODE_GOOGLE),this.actions.get("new").funct()):a()}}catch(e){this.handleError(e)}};
+if("http://"!=c.substring(0,7)&&"https://"!=c.substring(0,8))try{null!=window.opener&&null!=window.opener[c]?b(window.opener[c]):this.handleError(null,mxResources.get("errorLoadingFile"))}catch(f){this.handleError(f,mxResources.get("errorLoadingFile"))}else this.loadTemplate(c,function(a){b(a)},mxUtils.bind(this,function(){this.handleError(null,mxResources.get("errorLoadingFile"),d)}))}else(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.state&&null!=this.stateArg&&"open"==
+this.stateArg.action?null!=this.stateArg.ids&&(window.history&&window.history.replaceState&&window.history.replaceState(null,null,window.location.pathname+this.getSearch(["state"])),window.location.hash="G"+this.stateArg.ids[0]):(null==window.location.hash||1>=window.location.hash.length)&&null!=this.drive&&null!=this.stateArg&&"create"==this.stateArg.action?(this.setMode(App.MODE_GOOGLE),this.actions.get("new").funct()):a()}}catch(f){this.handleError(f)}};
App.prototype.showSplash=function(a){var c=this.getServiceCount(!0,!0),d=mxUtils.bind(this,function(){var a=new SplashDialog(this);this.showDialog(a.container,340,mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?200:2>c?230:260,!0,!0,mxUtils.bind(this,function(a){a&&!mxClient.IS_CHROMEAPP&&(a=Editor.useLocalStorage,this.createFile(this.defaultFilename,null,null,null,null,null,null,"1"!=urlParams.local),Editor.useLocalStorage=a)}),!0)});if(this.editor.isChromelessView())this.handleError({message:mxResources.get("noFileSelected")},
mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){this.showSplash()}));else if(mxClient.IS_CHROMEAPP||null!=this.mode&&!a)null==urlParams.create&&d();else{a=4==c?2:3;var b=new StorageDialog(this,mxUtils.bind(this,function(){this.hideDialog();d()}),a);this.showDialog(b.container,3>a?240:300,4<=c?440:this.isOfflineApp()?300:320,!0,!1);b.init()}};
App.prototype.addLanguageMenu=function(a,c){var d=null;if((!this.isOfflineApp()||mxClient.IS_CHROMEAPP)&&null!=this.menus.get("language")){d=document.createElement("div");d.setAttribute("title",mxResources.get("language"));d.className="geIcon geSprite geSprite-globe";d.style.position="absolute";d.style.cursor="pointer";d.style.bottom="20px";d.style.right="20px";if(c){d.style.direction="rtl";d.style.textAlign="right";d.style.right="24px";var b=document.createElement("span");b.style.display="inline-block";
@@ -9322,70 +9329,70 @@ b.style.fontSize="12px";b.style.margin="5px 24px 0 0";b.style.color="gray";b.sty
b.destroy()});var c=mxUtils.getOffset(d);b.popup(c.x,c.y+d.offsetHeight,null,a);this.setCurrentMenu(b)}));a.appendChild(d)}return d};
App.prototype.pickFile=function(a){try{if(a=null!=a?a:this.mode,a==App.MODE_GOOGLE)null!=this.drive&&"undefined"!=typeof google&&"undefined"!=typeof google.picker?this.drive.pickFile():this.openLink("https://drive.google.com");else{var c=this.getPeerForMode(a);if(null!=c)c.pickFile();else if(a==App.MODE_DEVICE&&Graph.fileSupport){if(null==this.openFileInputElt){var d=document.createElement("input");d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){null!=d.files&&
(this.openFiles(d.files),d.type="",d.type="file",d.value="")}));d.style.display="none";document.body.appendChild(d);this.openFileInputElt=d}this.openFileInputElt.click()}else{this.hideDialog();window.openNew=null!=this.getCurrentFile()&&!this.isDiagramEmpty();window.baseUrl=this.getUrl();window.openKey="open";var b=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;this.openFile();window.openFile.setConsumer(mxUtils.bind(this,function(b,c){this.useCanvasForExport||".png"!=c.substring(c.length-
-4)||(c=c.substring(0,c.length-4)+".drawio");this.fileLoaded(a==App.MODE_BROWSER?new StorageFile(this,b,c):new LocalFile(this,b,c))}));var e=this.dialog,g=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=b;g.apply(e,arguments);null==this.getCurrentFile()&&this.showSplash()})}}}catch(k){this.handleError(k)}};
+4)||(c=c.substring(0,c.length-4)+".drawio");this.fileLoaded(a==App.MODE_BROWSER?new StorageFile(this,b,c):new LocalFile(this,b,c))}));var f=this.dialog,g=f.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=b;g.apply(f,arguments);null==this.getCurrentFile()&&this.showSplash()})}}}catch(k){this.handleError(k)}};
App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE||a==App.MODE_GITHUB||a==App.MODE_GITLAB||a==App.MODE_TRELLO){var c=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_GITLAB?this.gitLab:a==App.MODE_TRELLO?this.trello:this.dropbox;null!=c&&c.pickLibrary(mxUtils.bind(this,function(a,b){if(null!=b)try{this.loadLibrary(b)}catch(k){this.handleError(k,mxResources.get("errorLoadingFile"))}else this.spinner.spin(document.body,
mxResources.get("loading"))&&c.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(l){this.handleError(l,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a==App.MODE_DEVICE&&Graph.fileSupport){if(null==this.libFileInputElt){var d=document.createElement("input");d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){if(null!=
d.files){for(var a=0;a<d.files.length;a++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(n){this.handleError(n,mxResources.get("errorLoadingFile"))}});b.readAsText(a)})(d.files[a]);d.type="";d.type="file";d.value=""}}));d.style.display="none";document.body.appendChild(d);this.libFileInputElt=d}this.libFileInputElt.click()}else{window.openNew=!1;window.openKey="open";var b=Editor.useLocalStorage;
Editor.useLocalStorage=a==App.MODE_BROWSER;window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{this.loadLibrary(a==App.MODE_BROWSER?new StorageLibrary(this,b,c):new LocalLibrary(this,b,c))}catch(k){this.handleError(k,mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=
b;window.openFile=null})}};
-App.prototype.saveLibrary=function(a,c,d,b,e,g,k){try{b=null!=b?b:this.mode;e=null!=e?e:!1;g=null!=g?g:!1;var l=this.createLibraryDataFromImages(c),n=mxUtils.bind(this,function(a){this.spinner.stop();null!=k&&k();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==d&&b==App.MODE_DEVICE&&(d=new LocalLibrary(this,l,a));if(null==d)this.pickFolder(b,mxUtils.bind(this,function(d){b==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a,
+App.prototype.saveLibrary=function(a,c,d,b,f,g,k){try{b=null!=b?b:this.mode;f=null!=f?f:!1;g=null!=g?g:!1;var l=this.createLibraryDataFromImages(c),n=mxUtils.bind(this,function(a){this.spinner.stop();null!=k&&k();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==d&&b==App.MODE_DEVICE&&(d=new LocalLibrary(this,l,a));if(null==d)this.pickFolder(b,mxUtils.bind(this,function(d){b==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a,
l,d,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),n,this.drive.libraryMimeType):b==App.MODE_GITHUB&&null!=this.gitHub&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.gitHub.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),n,d):b==App.MODE_GITLAB&&null!=this.gitLab&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.gitLab.insertLibrary(a,l,mxUtils.bind(this,
function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),n,d):b==App.MODE_TRELLO&&null!=this.trello&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.trello.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),n,d):b==App.MODE_DROPBOX&&null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.dropbox.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);
this.libraryLoaded(a,c)}),n,d):b==App.MODE_ONEDRIVE&&null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.oneDrive.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),n,d):b==App.MODE_BROWSER?(d=mxUtils.bind(this,function(){var b=new StorageLibrary(this,l,a);b.saveFile(a,!1,mxUtils.bind(this,function(){this.hideDialog(!0);this.libraryLoaded(b,c)}),n)}),null==localStorage.getItem(a)?d():this.confirm(mxResources.get("replaceIt",
-[a]),d)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(e||this.spinner.spin(document.body,mxResources.get("saving"))){d.setData(l);var q=mxUtils.bind(this,function(){d.save(!0,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);g||this.libraryLoaded(d,c);null!=k&&k()}),n)});if(a!=d.getTitle()){var f=d.getHash();d.rename(a,mxUtils.bind(this,function(a){d.constructor!=LocalLibrary&&f!=d.getHash()&&(mxSettings.removeCustomLibrary(f),mxSettings.addCustomLibrary(d.getHash()));
-this.removeLibrarySidebar(f);q()}),n)}else q()}}catch(m){this.handleError(m)}};
-App.prototype.saveFile=function(a,c){var d=this.getCurrentFile();if(null!=d){var b=mxUtils.bind(this,function(){this.removeDraft();this.getCurrentFile()==d||d.isModified()||(d.getMode()!=App.MODE_DEVICE?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):this.editor.setStatus(""));null!=c&&c()});if(a||null==d.getTitle()||null==this.mode){var e=null!=d.getTitle()?d.getTitle():this.defaultFilename,g=!mxClient.IS_IOS||!navigator.standalone,k=this.mode,l=this.getServiceCount(!0);
-isLocalStorage&&l++;var n=4>=l?2:6<l?4:3,e=new CreateDialog(this,e,mxUtils.bind(this,function(a,c,d){null!=a&&0<a.length&&(/(\.pdf)$/i.test(a)?this.confirm(mxResources.get("didYouMeanToExportToPdf"),mxUtils.bind(this,function(){this.hideDialog();this.actions.get("exportPdf").funct()}),mxUtils.bind(this,function(){d.value=a.split(".").slice(0,-1).join(".");d.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?d.select():document.execCommand("selectAll",!1,null)}),mxResources.get("yes"),
+[a]),d)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(f||this.spinner.spin(document.body,mxResources.get("saving"))){d.setData(l);var q=mxUtils.bind(this,function(){d.save(!0,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);g||this.libraryLoaded(d,c);null!=k&&k()}),n)});if(a!=d.getTitle()){var e=d.getHash();d.rename(a,mxUtils.bind(this,function(a){d.constructor!=LocalLibrary&&e!=d.getHash()&&(mxSettings.removeCustomLibrary(e),mxSettings.addCustomLibrary(d.getHash()));
+this.removeLibrarySidebar(e);q()}),n)}else q()}}catch(m){this.handleError(m)}};
+App.prototype.saveFile=function(a,c){var d=this.getCurrentFile();if(null!=d){var b=mxUtils.bind(this,function(){this.removeDraft();this.getCurrentFile()==d||d.isModified()||(d.getMode()!=App.MODE_DEVICE?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):this.editor.setStatus(""));null!=c&&c()});if(a||null==d.getTitle()||null==this.mode){var f=null!=d.getTitle()?d.getTitle():this.defaultFilename,g=!mxClient.IS_IOS||!navigator.standalone,k=this.mode,l=this.getServiceCount(!0);
+isLocalStorage&&l++;var n=4>=l?2:6<l?4:3,f=new CreateDialog(this,f,mxUtils.bind(this,function(a,c,d){null!=a&&0<a.length&&(/(\.pdf)$/i.test(a)?this.confirm(mxResources.get("didYouMeanToExportToPdf"),mxUtils.bind(this,function(){this.hideDialog();this.actions.get("exportPdf").funct()}),mxUtils.bind(this,function(){d.value=a.split(".").slice(0,-1).join(".");d.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?d.select():document.execCommand("selectAll",!1,null)}),mxResources.get("yes"),
mxResources.get("no")):(this.hideDialog(),null==k&&c==App.MODE_DEVICE?(this.setMode(App.MODE_DEVICE),this.save(a,b)):"download"==c?(new LocalFile(this,null,a)).save():"_blank"==c?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(this.getFileData(!0)),this.openLink(this.getUrl(window.location.pathname),null,!0)):k!=c?this.pickFolder(c,mxUtils.bind(this,function(d){this.createFile(a,this.getFileData(/(\.xml)$/i.test(a)||0>a.indexOf(".")||/(\.drawio)$/i.test(a),
-/(\.svg)$/i.test(a),/(\.html)$/i.test(a)),null,c,b,null==this.mode,d)})):null!=c&&this.save(a,b)))}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),null,null,g,null,!0,n,null,null,null,this.editor.fileExtensions,!1);this.showDialog(e.container,400,l>n?390:270,!0,!0);e.init()}else this.save(d.getTitle(),b)}};
-App.prototype.loadTemplate=function(a,c,d,b){var e=!1,g=a;this.editor.isCorsEnabledForUrl(g)||(g="t="+(new Date).getTime(),g=PROXY_URL+"?url="+encodeURIComponent(a)+"&base64=1&"+g,e=!0);var k=null!=b?b:a;this.loadUrl(g,mxUtils.bind(this,function(b){try{var g=e?!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(b):atob(b):b;if(/(\.v(dx|sdx?))($|\?)/i.test(k)||this.isVisioData(g))this.importVisio(this.base64ToBlob(b.substring(b.indexOf(",")+1)),function(a){c(a)},d,k);else if(!this.isOffline()&&
+/(\.svg)$/i.test(a),/(\.html)$/i.test(a)),null,c,b,null==this.mode,d)})):null!=c&&this.save(a,b)))}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),null,null,g,null,!0,n,null,null,null,this.editor.fileExtensions,!1);this.showDialog(f.container,400,l>n?390:270,!0,!0);f.init()}else this.save(d.getTitle(),b)}};
+App.prototype.loadTemplate=function(a,c,d,b){var f=!1,g=a;this.editor.isCorsEnabledForUrl(g)||(g="t="+(new Date).getTime(),g=PROXY_URL+"?url="+encodeURIComponent(a)+"&base64=1&"+g,f=!0);var k=null!=b?b:a;this.loadUrl(g,mxUtils.bind(this,function(b){try{var g=f?!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(b):atob(b):b;if(/(\.v(dx|sdx?))($|\?)/i.test(k)||this.isVisioData(g))this.importVisio(this.base64ToBlob(b.substring(b.indexOf(",")+1)),function(a){c(a)},d,k);else if(!this.isOffline()&&
(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,k))this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&c(a.responseText)}),a);else if(this.isLucidChartData(g))this.convertLucidChart(g,mxUtils.bind(this,function(a){c(a)}),mxUtils.bind(this,function(a){d(a)}));else{if(/(\.png)($|\?)/i.test(k)||this.isPngData(g))g=this.extractGraphModelFromPng(b);c(g)}}catch(q){d(q)}}),
-d,/(\.png)($|\?)/i.test(k)||/(\.v(dx|sdx?))($|\?)/i.test(k),null,null,e)};App.prototype.getPeerForMode=function(a){return a==App.MODE_GOOGLE?this.drive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_GITLAB?this.gitLab:a==App.MODE_DROPBOX?this.dropbox:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_TRELLO?this.trello:null};
-App.prototype.createFile=function(a,c,d,b,e,g,k,l,n){b=l?null:null!=b?b:this.mode;if(null!=a&&this.spinner.spin(document.body,mxResources.get("inserting"))){c=null!=c?c:this.emptyDiagramXml;var q=mxUtils.bind(this,function(){this.spinner.stop()}),f=mxUtils.bind(this,function(a){q();null==a&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=a&&this.handleError(a)});try{if(b==App.MODE_GOOGLE&&null!=this.drive)null==k&&null!=this.stateArg&&null!=this.stateArg.folderId&&(k=this.stateArg.folderId),
-this.drive.insertFile(a,c,k,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,e,n)}),f);else if(b==App.MODE_GITHUB&&null!=this.gitHub)this.gitHub.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,e,n)}),f,!1,k);else if(b==App.MODE_GITLAB&&null!=this.gitLab)this.gitLab.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,e,n)}),f,!1,k);else if(b==App.MODE_TRELLO&&null!=this.trello)this.trello.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,
-d,g,e,n)}),f,!1,k);else if(b==App.MODE_DROPBOX&&null!=this.dropbox)this.dropbox.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,e,n)}),f);else if(b==App.MODE_ONEDRIVE&&null!=this.oneDrive)this.oneDrive.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,e,n)}),f,!1,k);else if(b==App.MODE_BROWSER){q();var m=mxUtils.bind(this,function(){var b=new StorageFile(this,c,a);b.saveFile(a,!1,mxUtils.bind(this,function(){this.fileCreated(b,d,g,e,n)}),f)});null==localStorage.getItem(a)?
-m():this.confirm(mxResources.get("replaceIt",[a]),m,mxUtils.bind(this,function(){null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}else q(),this.fileCreated(new LocalFile(this,c,a,null==b),d,g,e,n)}catch(p){q(),this.handleError(p)}}};
-App.prototype.fileCreated=function(a,c,d,b,e){var g=window.location.pathname;null!=c&&0<c.length&&(g+="?libs="+c);null!=e&&0<e.length&&(g+="?clibs="+e);g=this.getUrl(g);a.getMode()!=App.MODE_DEVICE&&(g+="#"+a.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var k=a.getData(),k=0<k.length?this.editor.extractGraphModel(mxUtils.parseXml(k).documentElement,!0):null,l=window.location.protocol+"//"+window.location.hostname+g,n=k,q=null;null!=k&&/\.svg$/i.test(a.getTitle())&&
-(q=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(q.container),n=this.decodeNodeIntoGraph(n,q));a.setData(this.createFileData(k,q,a,l));null!=q&&q.container.parentNode.removeChild(q.container);var f=mxUtils.bind(this,function(){this.spinner.stop()}),m=mxUtils.bind(this,function(){f();var k=this.getCurrentFile();null==d&&null!=k&&(d=!k.isModified()&&null==k.getMode());var l=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(a);d&&a.addAllSavedStatus();
-null!=c&&this.sidebar.showEntries(c);if(null!=e){for(var b=[],f=e.split(";"),k=0;k<f.length;k++)b.push(decodeURIComponent(f[k]));this.loadLibraries(b)}}),m=mxUtils.bind(this,function(){d||null==k||!k.isModified()?l():this.confirm(mxResources.get("allChangesLost"),null,l,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=b&&b();null==d||d?m():(a.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a.getData(),a.getTitle(),
-null==a.getMode())),null!=b&&b(),window.openWindow(g,null,m))});a.constructor==LocalFile?m():a.saveFile(a.getTitle(),!1,mxUtils.bind(this,function(){m()}),mxUtils.bind(this,function(a){f();this.handleError(a)}))}};
-App.prototype.loadFile=function(a,c,d,b,e){this.hideDialog();var g=mxUtils.bind(this,function(){if(null==a||0==a.length)this.editor.setStatus(""),this.fileLoaded(null);else if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==a.charAt(0))if(this.spinner.stop(),isLocalStorage)try{a=decodeURIComponent(a.substring(1));var e=localStorage.getItem(a);if(null!=e)this.fileLoaded(new StorageFile(this,e,a)),null!=b&&b();else throw{message:mxResources.get("fileNotFound")};}catch(p){this.handleError(p,
+d,/(\.png)($|\?)/i.test(k)||/(\.v(dx|sdx?))($|\?)/i.test(k),null,null,f)};App.prototype.getPeerForMode=function(a){return a==App.MODE_GOOGLE?this.drive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_GITLAB?this.gitLab:a==App.MODE_DROPBOX?this.dropbox:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_TRELLO?this.trello:null};
+App.prototype.createFile=function(a,c,d,b,f,g,k,l,n){b=l?null:null!=b?b:this.mode;if(null!=a&&this.spinner.spin(document.body,mxResources.get("inserting"))){c=null!=c?c:this.emptyDiagramXml;var q=mxUtils.bind(this,function(){this.spinner.stop()}),e=mxUtils.bind(this,function(a){q();null==a&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=a&&this.handleError(a)});try{if(b==App.MODE_GOOGLE&&null!=this.drive)null==k&&null!=this.stateArg&&null!=this.stateArg.folderId&&(k=this.stateArg.folderId),
+this.drive.insertFile(a,c,k,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,f,n)}),e);else if(b==App.MODE_GITHUB&&null!=this.gitHub)this.gitHub.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,f,n)}),e,!1,k);else if(b==App.MODE_GITLAB&&null!=this.gitLab)this.gitLab.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,f,n)}),e,!1,k);else if(b==App.MODE_TRELLO&&null!=this.trello)this.trello.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,
+d,g,f,n)}),e,!1,k);else if(b==App.MODE_DROPBOX&&null!=this.dropbox)this.dropbox.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,f,n)}),e);else if(b==App.MODE_ONEDRIVE&&null!=this.oneDrive)this.oneDrive.insertFile(a,c,mxUtils.bind(this,function(a){q();this.fileCreated(a,d,g,f,n)}),e,!1,k);else if(b==App.MODE_BROWSER){q();var m=mxUtils.bind(this,function(){var b=new StorageFile(this,c,a);b.saveFile(a,!1,mxUtils.bind(this,function(){this.fileCreated(b,d,g,f,n)}),e)});null==localStorage.getItem(a)?
+m():this.confirm(mxResources.get("replaceIt",[a]),m,mxUtils.bind(this,function(){null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}else q(),this.fileCreated(new LocalFile(this,c,a,null==b),d,g,f,n)}catch(p){q(),this.handleError(p)}}};
+App.prototype.fileCreated=function(a,c,d,b,f){var g=window.location.pathname;null!=c&&0<c.length&&(g+="?libs="+c);null!=f&&0<f.length&&(g+="?clibs="+f);g=this.getUrl(g);a.getMode()!=App.MODE_DEVICE&&(g+="#"+a.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var k=a.getData(),k=0<k.length?this.editor.extractGraphModel(mxUtils.parseXml(k).documentElement,!0):null,l=window.location.protocol+"//"+window.location.hostname+g,n=k,q=null;null!=k&&/\.svg$/i.test(a.getTitle())&&
+(q=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(q.container),n=this.decodeNodeIntoGraph(n,q));a.setData(this.createFileData(k,q,a,l));null!=q&&q.container.parentNode.removeChild(q.container);var e=mxUtils.bind(this,function(){this.spinner.stop()}),m=mxUtils.bind(this,function(){e();var k=this.getCurrentFile();null==d&&null!=k&&(d=!k.isModified()&&null==k.getMode());var l=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(a);d&&a.addAllSavedStatus();
+null!=c&&this.sidebar.showEntries(c);if(null!=f){for(var b=[],e=f.split(";"),g=0;g<e.length;g++)b.push(decodeURIComponent(e[g]));this.loadLibraries(b)}}),m=mxUtils.bind(this,function(){d||null==k||!k.isModified()?l():this.confirm(mxResources.get("allChangesLost"),null,l,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=b&&b();null==d||d?m():(a.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a.getData(),a.getTitle(),
+null==a.getMode())),null!=b&&b(),window.openWindow(g,null,m))});a.constructor==LocalFile?m():a.saveFile(a.getTitle(),!1,mxUtils.bind(this,function(){m()}),mxUtils.bind(this,function(a){e();this.handleError(a)}))}};
+App.prototype.loadFile=function(a,c,d,b,f){this.hideDialog();var g=mxUtils.bind(this,function(){if(null==a||0==a.length)this.editor.setStatus(""),this.fileLoaded(null);else if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==a.charAt(0))if(this.spinner.stop(),isLocalStorage)try{a=decodeURIComponent(a.substring(1));var f=localStorage.getItem(a);if(null!=f)this.fileLoaded(new StorageFile(this,f,a)),null!=b&&b();else throw{message:mxResources.get("fileNotFound")};}catch(p){this.handleError(p,
mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}))}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}));else if(null!=d)this.spinner.stop(),this.fileLoaded(d),null!=b&&b();else if("S"==a.charAt(0)){this.spinner.stop();try{this.loadDescriptor(JSON.parse(Graph.decompress(a.substring(1))),
-b,mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}catch(p){this.handleError(p,mxResources.get("errorLoadingFile"))}}else if("R"==a.charAt(0))this.spinner.stop(),e=decodeURIComponent(a.substring(1)),"<"!=e.charAt(0)&&(e=Graph.decompress(e)),e=new LocalFile(this,e,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0),e.getHash=function(){return a},this.fileLoaded(e),null!=b&&b();else if("U"==a.charAt(0)){var k=decodeURIComponent(a.substring(1)),
-f=mxUtils.bind(this,function(){if("https://drive.google.com/uc?id="!=k.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient)return!1;this.hideDialog();var a=mxUtils.bind(this,function(){this.spinner.stop();if(null!=this.drive){var a=k.substring(31,k.lastIndexOf("&ex"));this.loadFile("G"+a,c,null,mxUtils.bind(this,function(){var c=this.getCurrentFile();null!=c&&this.editor.chromeless&&!this.editor.editable&&(c.getHash=function(){return"G"+a},window.location.hash="#"+c.getHash());
-null!=b&&b()}));return!0}return!1});!a()&&this.spinner.spin(document.body,mxResources.get("loading"))&&this.addListener("clientLoaded",a);return!0});this.loadTemplate(k,mxUtils.bind(this,function(b){this.spinner.stop();if(null!=b&&0<b.length){var c=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var d=k,e=k.lastIndexOf("."),g=d.lastIndexOf("/");e>g&&0<g&&(d=d.substring(g+1,e),e=k.substring(e),this.useCanvasForExport||".png"!=e||(e=".drawio"),".svg"===e||".xml"===e||".html"===
-e||".png"===e||".drawio"===e)&&(c=d+e)}b=new LocalFile(this,b,null!=urlParams.title?decodeURIComponent(urlParams.title):c,!0);b.getHash=function(){return a};this.fileLoaded(b,!0)||f()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}else f()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}),mxUtils.bind(this,function(){f()||(this.spinner.stop(),this.handleError({message:mxResources.get("fileNotFound")},
-mxResources.get("errorLoadingFile")))}),null!=urlParams["template-filename"]?decodeURIComponent(urlParams["template-filename"]):null)}else if(e=null,"G"==a.charAt(0)?e=this.drive:"D"==a.charAt(0)?e=this.dropbox:"W"==a.charAt(0)?e=this.oneDrive:"H"==a.charAt(0)?e=this.gitHub:"A"==a.charAt(0)?e=this.gitLab:"T"==a.charAt(0)&&(e=this.trello),null==e)this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();
-window.location.hash=null!=a?a.getHash():""}));else{var g=a.charAt(0);a=decodeURIComponent(a.substring(1));e.getFile(a,mxUtils.bind(this,function(c){this.spinner.stop();this.fileLoaded(c);var d=this.getCurrentFile();null==d?(window.location.hash="",this.showSplash()):this.editor.chromeless&&!this.editor.editable?(d.getHash=function(){return g+a},window.location.hash="#"+d.getHash()):c==d&&null==c.getMode()&&(c=mxResources.get("copyCreated"),this.editor.setStatus('<div title="'+c+'" class="geStatusAlert" style="overflow:hidden;">'+
-c+"</div>"));null!=b&&b()}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash="#"+a.getHash()}),null,null,"#"+g+a)}))}}),k=this.getCurrentFile(),l=mxUtils.bind(this,function(){e||null==k||!k.isModified()?g():this.confirm(mxResources.get("allChangesLost"),
+b,mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}catch(p){this.handleError(p,mxResources.get("errorLoadingFile"))}}else if("R"==a.charAt(0))this.spinner.stop(),f=decodeURIComponent(a.substring(1)),"<"!=f.charAt(0)&&(f=Graph.decompress(f)),f=new LocalFile(this,f,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0),f.getHash=function(){return a},this.fileLoaded(f),null!=b&&b();else if("U"==a.charAt(0)){var g=decodeURIComponent(a.substring(1)),
+e=mxUtils.bind(this,function(){if("https://drive.google.com/uc?id="!=g.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient)return!1;this.hideDialog();var a=mxUtils.bind(this,function(){this.spinner.stop();if(null!=this.drive){var a=g.substring(31,g.lastIndexOf("&ex"));this.loadFile("G"+a,c,null,mxUtils.bind(this,function(){var c=this.getCurrentFile();null!=c&&this.editor.chromeless&&!this.editor.editable&&(c.getHash=function(){return"G"+a},window.location.hash="#"+c.getHash());
+null!=b&&b()}));return!0}return!1});!a()&&this.spinner.spin(document.body,mxResources.get("loading"))&&this.addListener("clientLoaded",a);return!0});this.loadTemplate(g,mxUtils.bind(this,function(b){this.spinner.stop();if(null!=b&&0<b.length){var c=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var d=g,f=g.lastIndexOf("."),k=d.lastIndexOf("/");f>k&&0<k&&(d=d.substring(k+1,f),f=g.substring(f),this.useCanvasForExport||".png"!=f||(f=".drawio"),".svg"===f||".xml"===f||".html"===
+f||".png"===f||".drawio"===f)&&(c=d+f)}b=new LocalFile(this,b,null!=urlParams.title?decodeURIComponent(urlParams.title):c,!0);b.getHash=function(){return a};this.fileLoaded(b,!0)||e()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}else e()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}),mxUtils.bind(this,function(){e()||(this.spinner.stop(),this.handleError({message:mxResources.get("fileNotFound")},
+mxResources.get("errorLoadingFile")))}),null!=urlParams["template-filename"]?decodeURIComponent(urlParams["template-filename"]):null)}else if(f=null,"G"==a.charAt(0)?f=this.drive:"D"==a.charAt(0)?f=this.dropbox:"W"==a.charAt(0)?f=this.oneDrive:"H"==a.charAt(0)?f=this.gitHub:"A"==a.charAt(0)?f=this.gitLab:"T"==a.charAt(0)&&(f=this.trello),null==f)this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();
+window.location.hash=null!=a?a.getHash():""}));else{var k=a.charAt(0);a=decodeURIComponent(a.substring(1));f.getFile(a,mxUtils.bind(this,function(c){this.spinner.stop();this.fileLoaded(c);var d=this.getCurrentFile();null==d?(window.location.hash="",this.showSplash()):this.editor.chromeless&&!this.editor.editable?(d.getHash=function(){return k+a},window.location.hash="#"+d.getHash()):c==d&&null==c.getMode()&&(c=mxResources.get("copyCreated"),this.editor.setStatus('<div title="'+c+'" class="geStatusAlert" style="overflow:hidden;">'+
+c+"</div>"));null!=b&&b()}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash="#"+a.getHash()}),null,null,"#"+k+a)}))}}),k=this.getCurrentFile(),l=mxUtils.bind(this,function(){f||null==k||!k.isModified()?g():this.confirm(mxResources.get("allChangesLost"),
mxUtils.bind(this,function(){null!=k&&(window.location.hash=k.getHash())}),g,mxResources.get("cancel"),mxResources.get("discardChanges"))});null==a||0==a.length?l():null==k||c?l():this.showDialog((new PopupDialog(this,this.getUrl()+"#"+a,null,l)).container,320,140,!0,!0)};
App.prototype.getLibraryStorageHint=function(a){var c=a.getTitle();a.constructor!=LocalLibrary&&(c+="\n"+a.getHash());a.constructor==DriveLibrary?c+=" ("+mxResources.get("googleDrive")+")":a.constructor==GitHubLibrary?c+=" ("+mxResources.get("github")+")":a.constructor==TrelloLibrary?c+=" ("+mxResources.get("trello")+")":a.constructor==DropboxLibrary?c+=" ("+mxResources.get("dropbox")+")":a.constructor==OneDriveLibrary?c+=" ("+mxResources.get("oneDrive")+")":a.constructor==StorageLibrary?c+=" ("+
mxResources.get("browser")+")":a.constructor==LocalLibrary&&(c+=" ("+mxResources.get("device")+")");return c};App.prototype.restoreLibraries=function(){this.loadLibraries(mxSettings.getCustomLibraries(),mxUtils.bind(this,function(){this.loadLibraries((urlParams.clibs||"").split(";"))}))};
-App.prototype.loadLibraries=function(a,c){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var d=mxUtils.bind(this,function(a,b){b||mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),b=0,e=[],g=mxUtils.bind(this,function(){if(0==b){if(null!=a)for(var d=a.length-1;0<=d;d--)null!=e[d]&&this.loadLibrary(e[d]);null!=c&&c()}});if(null!=a)for(var k=0;k<a.length;k++){var l=encodeURIComponent(decodeURIComponent(a[k]));mxUtils.bind(this,function(a,c){if(null!=
-a&&0<a.length&&null==this.pendingLibraries[a]&&null==this.sidebar.palettes[a]){b++;var f=mxUtils.bind(this,function(d){delete this.pendingLibraries[a];e[c]=d;b--;g()}),k=mxUtils.bind(this,function(c){d(a,c);b--;g()});this.pendingLibraries[a]=!0;var l=a.substring(0,1);if("L"==l)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var b=decodeURIComponent(a.substring(1));this.getLocalData(b,mxUtils.bind(this,function(a){".scratchpad"==b&&null==a&&(a=this.emptyLibraryXml);
-null!=a?f(new StorageLibrary(this,a,b)):k()}))}catch(x){k()}}),0);else if("U"==l){var n=decodeURIComponent(a.substring(1));if(!this.isOffline()){l=n;this.editor.isCorsEnabledForUrl(l)||(l="t="+(new Date).getTime(),l=PROXY_URL+"?url="+encodeURIComponent(n)+"&"+l);try{mxUtils.get(l,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{f(new UrlLibrary(this,a.getText(),n))}catch(x){k()}else k()}),function(){k()})}catch(z){k()}}}else if("R"==l){if(l=decodeURIComponent(a.substring(1)),
-!this.isOffline())try{var l=JSON.parse(l),q={id:l[0],title:l[1],downloadUrl:l[2]};this.remoteInvoke("getFileContent",[q.downloadUrl],null,mxUtils.bind(this,function(a){try{f(new RemoteLibrary(this,a,q))}catch(x){k()}}),function(){k()})}catch(z){k()}}else if("S"==l&&null!=this.loadDesktopLib)try{this.loadDesktopLib(decodeURIComponent(a.substring(1)),function(a){f(a)},k)}catch(z){k()}else{var t=null;"G"==l?null!=this.drive&&null!=this.drive.user&&(t=this.drive):"H"==l?null!=this.gitHub&&null!=this.gitHub.getUser()&&
-(t=this.gitHub):"T"==l?null!=this.trello&&this.trello.isAuthorized()&&(t=this.trello):"D"==l?null!=this.dropbox&&null!=this.dropbox.getUser()&&(t=this.dropbox):"W"==l&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(t=this.oneDrive);null!=t?t.getLibrary(decodeURIComponent(a.substring(1)),mxUtils.bind(this,function(a){try{f(a)}catch(x){k()}}),function(a){k()}):k(!0)}}})(l,k)}g()}};
+App.prototype.loadLibraries=function(a,c){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var d=mxUtils.bind(this,function(a,b){b||mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),b=0,f=[],g=mxUtils.bind(this,function(){if(0==b){if(null!=a)for(var d=a.length-1;0<=d;d--)null!=f[d]&&this.loadLibrary(f[d]);null!=c&&c()}});if(null!=a)for(var k=0;k<a.length;k++){var l=encodeURIComponent(decodeURIComponent(a[k]));mxUtils.bind(this,function(a,c){if(null!=
+a&&0<a.length&&null==this.pendingLibraries[a]&&null==this.sidebar.palettes[a]){b++;var e=mxUtils.bind(this,function(d){delete this.pendingLibraries[a];f[c]=d;b--;g()}),k=mxUtils.bind(this,function(c){d(a,c);b--;g()});this.pendingLibraries[a]=!0;var l=a.substring(0,1);if("L"==l)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var b=decodeURIComponent(a.substring(1));this.getLocalData(b,mxUtils.bind(this,function(a){".scratchpad"==b&&null==a&&(a=this.emptyLibraryXml);
+null!=a?e(new StorageLibrary(this,a,b)):k()}))}catch(z){k()}}),0);else if("U"==l){var n=decodeURIComponent(a.substring(1));if(!this.isOffline()){l=n;this.editor.isCorsEnabledForUrl(l)||(l="t="+(new Date).getTime(),l=PROXY_URL+"?url="+encodeURIComponent(n)+"&"+l);try{mxUtils.get(l,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{e(new UrlLibrary(this,a.getText(),n))}catch(z){k()}else k()}),function(){k()})}catch(y){k()}}}else if("R"==l){if(l=decodeURIComponent(a.substring(1)),
+!this.isOffline())try{var l=JSON.parse(l),q={id:l[0],title:l[1],downloadUrl:l[2]};this.remoteInvoke("getFileContent",[q.downloadUrl],null,mxUtils.bind(this,function(a){try{e(new RemoteLibrary(this,a,q))}catch(z){k()}}),function(){k()})}catch(y){k()}}else if("S"==l&&null!=this.loadDesktopLib)try{this.loadDesktopLib(decodeURIComponent(a.substring(1)),function(a){e(a)},k)}catch(y){k()}else{var t=null;"G"==l?null!=this.drive&&null!=this.drive.user&&(t=this.drive):"H"==l?null!=this.gitHub&&null!=this.gitHub.getUser()&&
+(t=this.gitHub):"T"==l?null!=this.trello&&this.trello.isAuthorized()&&(t=this.trello):"D"==l?null!=this.dropbox&&null!=this.dropbox.getUser()&&(t=this.dropbox):"W"==l&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(t=this.oneDrive);null!=t?t.getLibrary(decodeURIComponent(a.substring(1)),mxUtils.bind(this,function(a){try{e(a)}catch(z){k()}}),function(a){k()}):k(!0)}}})(l,k)}g()}};
App.prototype.updateButtonContainer=function(){if(null!=this.buttonContainer){var a=this.getCurrentFile();this.commentsSupported()?null==this.commentButton&&(this.commentButton=document.createElement("a"),this.commentButton.setAttribute("title",mxResources.get("comments")),this.commentButton.className="geToolbarButton",this.commentButton.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;float:left;cursor:pointer;width:24px;height:24px;background-size:24px 24px;background-position:center center;background-repeat:no-repeat;background-image:url("+
Editor.commentImage+");","atlas"==uiTheme?(this.commentButton.style.marginRight="10px",this.commentButton.style.marginTop="-3px"):this.commentButton.style.marginTop="min"==uiTheme?"1px":"-5px",mxEvent.addListener(this.commentButton,"click",mxUtils.bind(this,function(){this.actions.get("comments").funct()})),this.buttonContainer.appendChild(this.commentButton),"dark"==uiTheme||"atlas"==uiTheme)&&(this.commentButton.style.filter="invert(100%)"):null!=this.commentButton&&(this.commentButton.parentNode.removeChild(this.commentButton),
this.commentButton=null);null!=a&&a.constructor==DriveFile?null==this.shareButton&&(this.shareButton=document.createElement("div"),this.shareButton.className="geBtn gePrimaryBtn",this.shareButton.style.display="inline-block",this.shareButton.style.backgroundColor="#F2931E",this.shareButton.style.borderColor="#F08705",this.shareButton.style.backgroundImage="none",this.shareButton.style.padding="2px 10px 0 10px",this.shareButton.style.marginTop="-10px",this.shareButton.style.height="28px",this.shareButton.style.lineHeight=
"28px",this.shareButton.style.minWidth="0px",this.shareButton.style.cssFloat="right",this.shareButton.setAttribute("title",mxResources.get("share")),a=document.createElement("img"),a.setAttribute("src",this.shareImage),a.setAttribute("align","absmiddle"),a.style.marginRight="4px",a.style.marginTop="-3px",this.shareButton.appendChild(a),"dark"!=uiTheme&&"atlas"!=uiTheme&&(this.shareButton.style.color="black",a.style.filter="invert(100%)"),mxUtils.write(this.shareButton,mxResources.get("share")),mxEvent.addListener(this.shareButton,
"click",mxUtils.bind(this,function(){this.actions.get("share").funct()})),this.buttonContainer.appendChild(this.shareButton)):null!=this.shareButton&&(this.shareButton.parentNode.removeChild(this.shareButton),this.shareButton=null)}};
-App.prototype.save=function(a,c){var d=this.getCurrentFile(),b=mxResources.get("saving");if(null!=d&&this.spinner.spin(document.body,b)){this.editor.setStatus("");this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.bind(this,function(){d.handleFileSuccess(!0);null!=c&&c()}),e=mxUtils.bind(this,function(a){d.handleFileError(a,!0)});try{a==d.getTitle()?d.save(!0,b,e):d.saveAs(a,b,e)}catch(g){e(g)}}};
-App.prototype.pickFolder=function(a,c,d,b,e){d=null!=d?d:!0;var g=this.spinner.pause();d&&a==App.MODE_GOOGLE&&null!=this.drive?this.drive.pickFolder(mxUtils.bind(this,function(a){g();if(a.action==google.picker.Action.PICKED){var b=null;null!=a.docs&&0<a.docs.length&&"folder"==a.docs[0].type&&(b=a.docs[0].id);c(b)}}),e):d&&a==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.pickFolder(mxUtils.bind(this,function(a){g();null!=a&&null!=a.value&&0<a.value.length&&(a=OneDriveFile.prototype.getIdOf(a.value[0]),
+App.prototype.save=function(a,c){var d=this.getCurrentFile(),b=mxResources.get("saving");if(null!=d&&this.spinner.spin(document.body,b)){this.editor.setStatus("");this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.bind(this,function(){d.handleFileSuccess(!0);null!=c&&c()}),f=mxUtils.bind(this,function(a){d.handleFileError(a,!0)});try{a==d.getTitle()?d.save(!0,b,f):d.saveAs(a,b,f)}catch(g){f(g)}}};
+App.prototype.pickFolder=function(a,c,d,b,f){d=null!=d?d:!0;var g=this.spinner.pause();d&&a==App.MODE_GOOGLE&&null!=this.drive?this.drive.pickFolder(mxUtils.bind(this,function(a){g();if(a.action==google.picker.Action.PICKED){var b=null;null!=a.docs&&0<a.docs.length&&"folder"==a.docs[0].type&&(b=a.docs[0].id);c(b)}}),f):d&&a==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.pickFolder(mxUtils.bind(this,function(a){g();null!=a&&null!=a.value&&0<a.value.length&&(a=OneDriveFile.prototype.getIdOf(a.value[0]),
c(a))}),b):d&&a==App.MODE_GITHUB&&null!=this.gitHub?this.gitHub.pickFolder(mxUtils.bind(this,function(a){g();c(a)})):d&&a==App.MODE_GITLAB&&null!=this.gitLab?this.gitLab.pickFolder(mxUtils.bind(this,function(a){g();c(a)})):d&&a==App.MODE_TRELLO&&null!=this.trello?this.trello.pickFolder(mxUtils.bind(this,function(a){g();c(a)})):EditorUi.prototype.pickFolder.apply(this,arguments)};
-App.prototype.exportFile=function(a,c,d,b,e,g){e==App.MODE_DROPBOX?null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.dropbox.insertFile(c,b?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)})):e==App.MODE_GOOGLE?null!=this.drive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.drive.insertFile(c,a,g,mxUtils.bind(this,function(a){this.spinner.stop()}),
-mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),d,b):e==App.MODE_ONEDRIVE?null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.oneDrive.insertFile(c,b?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),!1,g):e==App.MODE_GITHUB?null!=this.gitHub&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.gitHub.insertFile(c,a,mxUtils.bind(this,
-function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),!0,g,b):e==App.MODE_TRELLO?null!=this.trello&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.trello.insertFile(c,b?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),!1,g):e==App.MODE_BROWSER&&(d=mxUtils.bind(this,function(){localStorage.setItem(c,a)}),null==localStorage.getItem(c)?
+App.prototype.exportFile=function(a,c,d,b,f,g){f==App.MODE_DROPBOX?null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.dropbox.insertFile(c,b?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)})):f==App.MODE_GOOGLE?null!=this.drive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.drive.insertFile(c,a,g,mxUtils.bind(this,function(a){this.spinner.stop()}),
+mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),d,b):f==App.MODE_ONEDRIVE?null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.oneDrive.insertFile(c,b?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),!1,g):f==App.MODE_GITHUB?null!=this.gitHub&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.gitHub.insertFile(c,a,mxUtils.bind(this,
+function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),!0,g,b):f==App.MODE_TRELLO?null!=this.trello&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.trello.insertFile(c,b?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),!1,g):f==App.MODE_BROWSER&&(d=mxUtils.bind(this,function(){localStorage.setItem(c,a)}),null==localStorage.getItem(c)?
d():this.confirm(mxResources.get("replaceIt",[c]),d))};
App.prototype.descriptorChanged=function(){var a=this.getCurrentFile();if(null!=a){if(null!=this.fname){this.fnameWrapper.style.display="block";this.fname.innerHTML="";var c=null!=a.getTitle()?a.getTitle():this.defaultFilename;mxUtils.write(this.fname,c);this.fname.setAttribute("title",c+" - "+mxResources.get("rename"))}var c=this.editor.graph,d=a.isEditable()&&!a.invalidChecksum;c.isEnabled()&&!d&&c.reset();c.setEnabled(d);null==urlParams.rev&&(this.updateDocumentTitle(),a=a.getHash(),0<a.length?
window.location.hash=a:0<window.location.hash.length&&(window.location.hash=""))}this.updateUi();null!=this.format&&this.editor.graph.isSelectionEmpty()&&this.format.refresh()};
-App.prototype.showAuthDialog=function(a,c,d,b){var e=this.spinner.pause();this.showDialog((new AuthDialog(this,a,c,mxUtils.bind(this,function(a){try{null!=d&&d(a,mxUtils.bind(this,function(){this.hideDialog();e()}))}catch(k){this.editor.setStatus(mxUtils.htmlEntities(k.message))}}))).container,300,c?180:140,!0,!0,mxUtils.bind(this,function(a){null!=b&&b();a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))};
-App.prototype.convertFile=function(a,c,d,b,e,g,k){var l=c;/\.svg$/i.test(l)||(l=l.substring(0,c.lastIndexOf("."))+b);var n=!1;null!=this.gitHub&&a.substring(0,this.gitHub.baseUrl.length)==this.gitHub.baseUrl&&(n=!0);if(/\.v(dx|sdx?)$/i.test(c)&&Graph.fileSupport&&(new XMLHttpRequest).upload&&"string"===typeof(new XMLHttpRequest).responseType){var q=new XMLHttpRequest;q.open("GET",a,!0);n||(q.responseType="blob");q.onload=mxUtils.bind(this,function(){if(200<=q.status&&299>=q.status){var a=null;n?(a=
-JSON.parse(q.responseText),a=this.base64ToBlob(a.content,"application/octet-stream")):a=new Blob([q.response],{type:"application/octet-stream"});this.importVisio(a,mxUtils.bind(this,function(a){e(new LocalFile(this,a,l,!0))}),g,c)}else null!=g&&g({message:mxResources.get("errorLoadingFile")})});q.onerror=g;q.send()}else{var f=mxUtils.bind(this,function(b){try{if(/\.pdf$/i.test(c)){var d=Editor.extractGraphModelFromPdf(b);null!=d&&0<d.length&&e(new LocalFile(this,d,l,!0))}else/\.png$/i.test(c)?(d=
-this.extractGraphModelFromPng(b),null!=d?e(new LocalFile(this,d,l,!0)):e(new LocalFile(this,b,c,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,a)?this.parseFile(new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?e(new LocalFile(this,a.responseText,l,!0)):null!=g&&g({message:mxResources.get("errorLoadingFile")}))}),c):e(new LocalFile(this,b,l,!0))}catch(u){null!=g&&g(u)}});d=/\.png$/i.test(c)||
-/\.jpe?g$/i.test(c)||/\.pdf$/i.test(c)||null!=d&&"image/"==d.substring(0,6);n?mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=e){a=JSON.parse(a.getText());var b=a.content;"base64"===a.encoding&&(b=/\.png$/i.test(c)?"data:image/png;base64,"+b:/\.pdf$/i.test(c)?"data:application/pdf;base64,"+b:!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(b):atob(b));f(b)}}else null!=g&&g({code:App.ERROR_UNKNOWN})}),function(){null!=g&&g({code:App.ERROR_UNKNOWN})},
-!1,this.timeout,function(){null!=g&&g({code:App.ERROR_TIMEOUT,retry:fn})}):null!=k?k(a,f,g,d):this.loadUrl(a,f,g,d)}};
+App.prototype.showAuthDialog=function(a,c,d,b){var f=this.spinner.pause();this.showDialog((new AuthDialog(this,a,c,mxUtils.bind(this,function(a){try{null!=d&&d(a,mxUtils.bind(this,function(){this.hideDialog();f()}))}catch(k){this.editor.setStatus(mxUtils.htmlEntities(k.message))}}))).container,300,c?180:140,!0,!0,mxUtils.bind(this,function(a){null!=b&&b();a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))};
+App.prototype.convertFile=function(a,c,d,b,f,g,k){var l=c;/\.svg$/i.test(l)||(l=l.substring(0,c.lastIndexOf("."))+b);var n=!1;null!=this.gitHub&&a.substring(0,this.gitHub.baseUrl.length)==this.gitHub.baseUrl&&(n=!0);if(/\.v(dx|sdx?)$/i.test(c)&&Graph.fileSupport&&(new XMLHttpRequest).upload&&"string"===typeof(new XMLHttpRequest).responseType){var q=new XMLHttpRequest;q.open("GET",a,!0);n||(q.responseType="blob");q.onload=mxUtils.bind(this,function(){if(200<=q.status&&299>=q.status){var a=null;n?(a=
+JSON.parse(q.responseText),a=this.base64ToBlob(a.content,"application/octet-stream")):a=new Blob([q.response],{type:"application/octet-stream"});this.importVisio(a,mxUtils.bind(this,function(a){f(new LocalFile(this,a,l,!0))}),g,c)}else null!=g&&g({message:mxResources.get("errorLoadingFile")})});q.onerror=g;q.send()}else{var e=mxUtils.bind(this,function(b){try{if(/\.pdf$/i.test(c)){var d=Editor.extractGraphModelFromPdf(b);null!=d&&0<d.length&&f(new LocalFile(this,d,l,!0))}else/\.png$/i.test(c)?(d=
+this.extractGraphModelFromPng(b),null!=d?f(new LocalFile(this,d,l,!0)):f(new LocalFile(this,b,c,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,a)?this.parseFile(new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?f(new LocalFile(this,a.responseText,l,!0)):null!=g&&g({message:mxResources.get("errorLoadingFile")}))}),c):f(new LocalFile(this,b,l,!0))}catch(u){null!=g&&g(u)}});d=/\.png$/i.test(c)||
+/\.jpe?g$/i.test(c)||/\.pdf$/i.test(c)||null!=d&&"image/"==d.substring(0,6);n?mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=f){a=JSON.parse(a.getText());var b=a.content;"base64"===a.encoding&&(b=/\.png$/i.test(c)?"data:image/png;base64,"+b:/\.pdf$/i.test(c)?"data:application/pdf;base64,"+b:!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(b):atob(b));e(b)}}else null!=g&&g({code:App.ERROR_UNKNOWN})}),function(){null!=g&&g({code:App.ERROR_UNKNOWN})},
+!1,this.timeout,function(){null!=g&&g({code:App.ERROR_TIMEOUT,retry:fn})}):null!=k?k(a,e,g,d):this.loadUrl(a,e,g,d)}};
App.prototype.updateHeader=function(){if(null!=this.menubar){this.appIcon=document.createElement("a");this.appIcon.style.display="block";this.appIcon.style.position="absolute";this.appIcon.style.width="28px";this.appIcon.style.height=this.menubarHeight-28+"px";this.appIcon.style.margin="14px 0px 8px 20px";this.appIcon.style.opacity="0.85";this.appIcon.style.borderRadius="3px";"dark"!=uiTheme&&(this.appIcon.style.backgroundColor="#f08705");mxEvent.disableContextMenu(this.appIcon);mxEvent.addListener(this.appIcon,
"click",mxUtils.bind(this,function(a){this.appIconClicked(a)}));var a=mxClient.IS_SVG?"dark"==uiTheme?"url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzA2LjE4NSAxMjAuMjk2IgogICB2aWV3Qm94PSIyNCAyNiA2OCA2OCIKICAgeT0iMHB4IgogICB4PSIwcHgiCiAgIHZlcnNpb249IjEuMSI+CiAgIAkgPGc+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNDEuMDYxIgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjkiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTUyOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNzUuMDc2IgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjgiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTAwOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGc+PHBhdGgKICAgICAgICAgZD0iTTUyLjc3Myw3Ny4wODRjMCwxLjk1NC0xLjU5OSwzLjU1My0zLjU1MywzLjU1M0gzNi45OTljLTEuOTU0LDAtMy41NTMtMS41OTktMy41NTMtMy41NTN2LTkuMzc5ICAgIGMwLTEuOTU0LDEuNTk5LTMuNTUzLDMuNTUzLTMuNTUzaDEyLjIyMmMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjc3LjA4NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnCiAgICAgICBpZD0iZzM0MTkiPjxwYXRoCiAgICAgICAgIGQ9Ik02Ny43NjIsNDguMDc0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINTEuOTg4Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M0g2NC4yMWMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjQ4LjA3NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnPjxwYXRoCiAgICAgICAgIGQ9Ik04Mi43NTIsNzcuMDg0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINjYuOTc3Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M2gxMi4yMjJjMS45NTQsMCwzLjU1MywxLjU5OSwzLjU1MywzLjU1M1Y3Ny4wODR6IgogICAgICAgICBmaWxsPSIjRkZGRkZGIiAvPjwvZz48L2c+PC9zdmc+)":
"url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJFYmVuZV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjI1IDIyNSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjI1IDIyNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MXtmaWxsOiNERjZDMEM7fQoJLnN0MntmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjI1LDIxNS40YzAsNS4zLTQuMyw5LjYtOS41LDkuNmwwLDBINzcuMWwtNDQuOC00NS41TDYwLjIsMTM0bDgyLjctMTAyLjdsODIuMSw4NC41VjIxNS40eiIvPgo8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTg0LjYsMTI1LjhoLTIzLjdsLTI1LTQyLjdjNS43LTEuMiw5LjgtNi4yLDkuNy0xMlYzOWMwLTYuOC01LjQtMTIuMy0xMi4yLTEyLjNoLTAuMUg5MS42CgljLTYuOCwwLTEyLjMsNS40LTEyLjMsMTIuMlYzOXYzMi4xYzAsNS44LDQsMTAuOCw5LjcsMTJsLTI1LDQyLjdINDAuNGMtNi44LDAtMTIuMyw1LjQtMTIuMywxMi4ydjAuMXYzMi4xCgljMCw2LjgsNS40LDEyLjMsMTIuMiwxMi4zaDAuMWg0MS43YzYuOCwwLDEyLjMtNS40LDEyLjMtMTIuMnYtMC4xdi0zMi4xYzAtNi44LTUuNC0xMi4zLTEyLjItMTIuM2gtMC4xaC00bDI0LjgtNDIuNGgxOS4zCglsMjQuOSw0Mi40SDE0M2MtNi44LDAtMTIuMyw1LjQtMTIuMywxMi4ydjAuMXYzMi4xYzAsNi44LDUuNCwxMi4zLDEyLjIsMTIuM2gwLjFoNDEuN2M2LjgsMCwxMi4zLTUuNCwxMi4zLTEyLjJ2LTAuMXYtMzIuMQoJYzAtNi44LTUuNC0xMi4zLTEyLjItMTIuM0MxODQuNywxMjUuOCwxODQuNywxMjUuOCwxODQuNiwxMjUuOHoiLz4KPC9zdmc+Cg==)":
@@ -9409,14 +9416,14 @@ App.prototype.toggleCompactMode=function(a){a||"none"!=this.appIcon.style.displa
App.prototype.updateUserElement=function(){if(null!=this.drive&&null!=this.drive.getUser()||null!=this.oneDrive&&null!=this.oneDrive.getUser()||null!=this.dropbox&&null!=this.dropbox.getUser()||null!=this.gitHub&&null!=this.gitHub.getUser()||null!=this.gitLab&&null!=this.gitLab.getUser()||null!=this.trello&&this.trello.isAuthorized()){null==this.userElement&&(this.userElement=document.createElement("a"),this.userElement.className="geItem",this.userElement.style.position="absolute",this.userElement.style.fontSize=
"8pt",this.userElement.style.top="atlas"==uiTheme?"8px":"2px",this.userElement.style.right="30px",this.userElement.style.margin="4px",this.userElement.style.padding="2px",this.userElement.style.paddingRight="16px",this.userElement.style.verticalAlign="middle",this.userElement.style.backgroundImage="url("+IMAGE_PATH+"/expanded.gif)",this.userElement.style.backgroundPosition="100% 60%",this.userElement.style.backgroundRepeat="no-repeat",this.menubarContainer.appendChild(this.userElement),mxEvent.addListener(this.userElement,
mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()})),mxEvent.addListener(this.userElement,"click",mxUtils.bind(this,function(a){if(null==this.userPanel){var c=document.createElement("div");c.className="geDialog";c.style.position="absolute";c.style.top=this.userElement.clientTop+this.userElement.clientHeight+6+"px";c.style.right="36px";c.style.padding="0px";c.style.cursor="default";this.userPanel=c}if(null!=this.userPanel.parentNode)this.userPanel.parentNode.removeChild(this.userPanel);
-else{var b=!1;this.userPanel.innerHTML="";c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",mxResources.get("close"));c.className="geDialogClose";c.style.top="8px";c.style.right="8px";mxEvent.addListener(c,"click",mxUtils.bind(this,function(){null!=this.userPanel.parentNode&&this.userPanel.parentNode.removeChild(this.userPanel)}));this.userPanel.appendChild(c);if(null!=this.drive&&(c=this.drive.getUsersList(),0<c.length)){var e=mxUtils.bind(this,
+else{var b=!1;this.userPanel.innerHTML="";c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",mxResources.get("close"));c.className="geDialogClose";c.style.top="8px";c.style.right="8px";mxEvent.addListener(c,"click",mxUtils.bind(this,function(){null!=this.userPanel.parentNode&&this.userPanel.parentNode.removeChild(this.userPanel)}));this.userPanel.appendChild(c);if(null!=this.drive&&(c=this.drive.getUsersList(),0<c.length)){var f=mxUtils.bind(this,
function(a,b){var c=this.getCurrentFile();null!=c&&c.constructor==DriveFile?(this.spinner.spin(document.body,b),this.fileLoaded(null),window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();a()}),2E3)):a()}),g=mxUtils.bind(this,function(a){var b=document.createElement("tr");b.style.cssText=a.isCurrent?"":"background-color: whitesmoke; cursor: pointer";b.setAttribute("title","User ID: "+a.id);b.innerHTML='<td valign="middle" style="height: 59px;width: 66px;'+(a.isCurrent?"":"border-top: 1px solid rgb(224, 224, 224);")+
'"><img width="50" height="50" style="margin: 4px 8px 0 8px;border-radius:50%;" src="'+(null!=a.pictureUrl?a.pictureUrl:this.defaultUserPicture)+'"/></td><td valign="middle" style="white-space:nowrap;'+(null!=a.pictureUrl?"padding-top:4px;":"")+(a.isCurrent?"":"border-top: 1px solid rgb(224, 224, 224);")+'">'+mxUtils.htmlEntities(a.displayName)+'<br><small style="color:gray;">'+mxUtils.htmlEntities(a.email)+'</small><div style="margin-top:4px;"><i>'+mxResources.get("googleDrive")+"</i></div>";a.isCurrent||
-mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){e(mxUtils.bind(this,function(){this.stateArg=null;this.drive.setUser(a);this.drive.authorize(!0,mxUtils.bind(this,function(){this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}),mxResources.get("closingFile")+"...");mxEvent.consume(b)}));return b}),b=!0,k=document.createElement("table");k.style.cssText="font-size:10pt;padding: 20px 0 0 0;min-width: 300px;border-spacing: 0;";
-for(var l=0;l<c.length;l++)k.appendChild(g(c[l]));this.userPanel.appendChild(k);c=document.createElement("div");c.style.textAlign="left";c.style.padding="8px";c.style.whiteSpace="nowrap";c.style.borderTop="1px solid rgb(224, 224, 224)";g=mxUtils.button(mxResources.get("signOut"),mxUtils.bind(this,function(){this.confirm(mxResources.get("areYouSure"),mxUtils.bind(this,function(){e(mxUtils.bind(this,function(){this.stateArg=null;this.drive.logout();this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),
-mxResources.get("signOut"))}))}));g.className="geBtn";g.style["float"]="right";c.appendChild(g);g=mxUtils.button(mxResources.get("addAccount"),mxUtils.bind(this,function(){var a=this.drive.createAuthWin();a.blur();window.focus();e(mxUtils.bind(this,function(){this.stateArg=null;this.drive.authorize(!1,mxUtils.bind(this,function(){this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxUtils.bind(this,function(a){this.handleError(a)}),!0,a)}),mxResources.get("closingFile")+"...")}));
-g.className="geBtn";g.style.margin="0px";c.appendChild(g);this.userPanel.appendChild(c)}c=mxUtils.bind(this,function(a,c,d,e){if(null!=a){b&&this.userPanel.appendChild(document.createElement("hr"));b=!0;var f=document.createElement("table");f.style.cssText="font-size:10pt;padding:"+(b?"10":"20")+"px 20px 10px 10px;";f.innerHTML+='<tr><td valign="top">'+(null!=c?'<img style="margin-right:6px;" src="'+c+'" width="40" height="40"/></td>':"")+'<td valign="middle" style="white-space:nowrap;">'+mxUtils.htmlEntities(a.displayName)+
-(null!=a.email?'<br><small style="color:gray;">'+mxUtils.htmlEntities(a.email)+"</small>":"")+(null!=e?'<div style="margin-top:4px;"><i>'+mxUtils.htmlEntities(e)+"</i></div>":"")+"</td></tr>";this.userPanel.appendChild(f);a=document.createElement("div");a.style.textAlign="center";a.style.paddingBottom="12px";a.style.whiteSpace="nowrap";null!=d&&(d=mxUtils.button(mxResources.get("signOut"),d),d.className="geBtn",a.appendChild(d));this.userPanel.appendChild(a)}});null!=this.dropbox&&c(this.dropbox.getUser(),
+mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){f(mxUtils.bind(this,function(){this.stateArg=null;this.drive.setUser(a);this.drive.authorize(!0,mxUtils.bind(this,function(){this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}),mxResources.get("closingFile")+"...");mxEvent.consume(b)}));return b}),b=!0,k=document.createElement("table");k.style.cssText="font-size:10pt;padding: 20px 0 0 0;min-width: 300px;border-spacing: 0;";
+for(var l=0;l<c.length;l++)k.appendChild(g(c[l]));this.userPanel.appendChild(k);c=document.createElement("div");c.style.textAlign="left";c.style.padding="8px";c.style.whiteSpace="nowrap";c.style.borderTop="1px solid rgb(224, 224, 224)";g=mxUtils.button(mxResources.get("signOut"),mxUtils.bind(this,function(){this.confirm(mxResources.get("areYouSure"),mxUtils.bind(this,function(){f(mxUtils.bind(this,function(){this.stateArg=null;this.drive.logout();this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),
+mxResources.get("signOut"))}))}));g.className="geBtn";g.style["float"]="right";c.appendChild(g);g=mxUtils.button(mxResources.get("addAccount"),mxUtils.bind(this,function(){var a=this.drive.createAuthWin();a.blur();window.focus();f(mxUtils.bind(this,function(){this.stateArg=null;this.drive.authorize(!1,mxUtils.bind(this,function(){this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxUtils.bind(this,function(a){this.handleError(a)}),!0,a)}),mxResources.get("closingFile")+"...")}));
+g.className="geBtn";g.style.margin="0px";c.appendChild(g);this.userPanel.appendChild(c)}c=mxUtils.bind(this,function(a,c,d,f){if(null!=a){b&&this.userPanel.appendChild(document.createElement("hr"));b=!0;var e=document.createElement("table");e.style.cssText="font-size:10pt;padding:"+(b?"10":"20")+"px 20px 10px 10px;";e.innerHTML+='<tr><td valign="top">'+(null!=c?'<img style="margin-right:6px;" src="'+c+'" width="40" height="40"/></td>':"")+'<td valign="middle" style="white-space:nowrap;">'+mxUtils.htmlEntities(a.displayName)+
+(null!=a.email?'<br><small style="color:gray;">'+mxUtils.htmlEntities(a.email)+"</small>":"")+(null!=f?'<div style="margin-top:4px;"><i>'+mxUtils.htmlEntities(f)+"</i></div>":"")+"</td></tr>";this.userPanel.appendChild(e);a=document.createElement("div");a.style.textAlign="center";a.style.paddingBottom="12px";a.style.whiteSpace="nowrap";null!=d&&(d=mxUtils.button(mxResources.get("signOut"),d),d.className="geBtn",a.appendChild(d));this.userPanel.appendChild(a)}});null!=this.dropbox&&c(this.dropbox.getUser(),
IMAGE_PATH+"/dropbox-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==DropboxFile){var b=mxUtils.bind(this,function(){this.dropbox.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.dropbox.logout()}),mxResources.get("dropbox"));null!=this.oneDrive&&c(this.oneDrive.getUser(),IMAGE_PATH+"/onedrive-logo.svg",mxUtils.bind(this,function(){var a=
this.getCurrentFile();if(null!=a&&a.constructor==OneDriveFile){var b=mxUtils.bind(this,function(){this.oneDrive.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.oneDrive.logout()}),mxResources.get("oneDrive"));null!=this.gitHub&&c(this.gitHub.getUser(),IMAGE_PATH+"/github-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==GitHubFile){var b=
mxUtils.bind(this,function(){this.gitHub.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.gitHub.logout()}),mxResources.get("github"));null!=this.gitLab&&c(this.gitLab.getUser(),IMAGE_PATH+"/gitlab-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==GitLabFile){var b=mxUtils.bind(this,function(){this.gitLab.logout();window.location.hash=
@@ -9428,93 +9435,93 @@ var a=null;null!=this.drive&&null!=this.drive.getUser()?a=this.drive.getUser():n
App.prototype.getCurrentUser=function(){var a=null;null!=this.drive&&null!=this.drive.getUser()?a=this.drive.getUser():null!=this.oneDrive&&null!=this.oneDrive.getUser()?a=this.oneDrive.getUser():null!=this.dropbox&&null!=this.dropbox.getUser()?a=this.dropbox.getUser():null!=this.gitHub&&null!=this.gitHub.getUser()&&(a=this.gitHub.getUser());return a};var editorResetGraph=Editor.prototype.resetGraph;
Editor.prototype.resetGraph=function(){editorResetGraph.apply(this,arguments);this.graph.pageFormat=mxSettings.getPageFormat()};(function(){var a=mxPopupMenu.prototype.showMenu;mxPopupMenu.prototype.showMenu=function(){a.apply(this,arguments);this.div.style.overflowY="auto";this.div.style.overflowX="hidden";this.div.style.maxHeight=Math.max(document.body.clientHeight,document.documentElement.clientHeight)-10+"px"};Menus.prototype.createHelpLink=function(a){var b=document.createElement("span");b.setAttribute("title",mxResources.get("help"));b.style.cssText="color:blue;text-decoration:underline;margin-left:8px;cursor:help;";
var c=document.createElement("img");mxUtils.setOpacity(c,50);c.style.height="16px";c.style.width="16px";c.setAttribute("border","0");c.setAttribute("valign","bottom");c.setAttribute("src",Editor.helpImage);b.appendChild(c);mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){null!=this.editorUi.menubar&&this.editorUi.menubar.hideMenu();this.editorUi.openLink(a);mxEvent.consume(b)}));return b};Menus.prototype.addLinkToItem=function(a,b){null!=a&&a.firstChild.nextSibling.appendChild(this.createHelpLink(b))};
-var c=Menus.prototype.init;Menus.prototype.init=function(){function a(a,b){this.ui=a;this.previousExtFonts=this.extFonts=b}c.apply(this,arguments);var b=this.editorUi,e=b.editor.graph,g=mxUtils.bind(e,e.isEnabled),k=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),l=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==
+var c=Menus.prototype.init;Menus.prototype.init=function(){function a(a,b){this.ui=a;this.previousExtFonts=this.extFonts=b}c.apply(this,arguments);var b=this.editorUi,f=b.editor.graph,g=mxUtils.bind(f,f.isEnabled),k=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),l=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==
document.documentMode||9<document.documentMode),n=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname||"drive.draw.io"==window.location.hostname)&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode),q=("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==urlParams.tr)&&mxClient.IS_SVG&&(null==document.documentMode||
9<document.documentMode);mxClient.IS_SVG||b.isOffline()||((new Image).src=IMAGE_PATH+"/help.png");b.actions.addAction("new...",function(){var a=b.isOffline(),c=new NewDialog(b,a);b.showDialog(c.container,a?350:620,a?70:440,!0,!0,function(a){a&&null==b.getCurrentFile()&&b.showSplash()});c.init()});b.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",
-mxUtils.bind(this,function(a,c,d,e,f,k,g,l,m,n){a=parseInt(a);!isNaN(a)&&0<a&&b.exportSvg(a/100,c,d,e,f,k,g,!l,m,n)}),!0,null,"svg")}));b.actions.put("insertTemplate",new Action(mxResources.get("template")+"...",function(){var a=new NewDialog(b,null,!1,function(a){b.hideDialog();if(null!=a){var c=b.editor.graph.getFreeInsertPoint();e.setSelectionCells(b.importXml(a,Math.max(c.x,20),Math.max(c.y,20),!0));e.scrollCellToVisible(e.getSelectionCell())}},null,null,null,null,null,null,null,null,null,null,
-!1,mxResources.get("insert"));b.showDialog(a.container,620,440,!0,!0)})).isEnabled=g;var f=b.actions.addAction("points",function(){b.editor.graph.view.setUnit(mxConstants.POINTS)});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.POINTS});f=b.actions.addAction("inches",function(){b.editor.graph.view.setUnit(mxConstants.INCHES)});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.INCHES});f=b.actions.addAction("millimeters",
-function(){b.editor.graph.view.setUnit(mxConstants.MILLIMETERS)});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.MILLIMETERS});this.put("units",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["points","millimeters"],b)})));f=b.actions.addAction("ruler",function(){mxSettings.setRulerOn(!mxSettings.isRulerOn());mxSettings.save();null!=b.ruler?(b.ruler.destroy(),b.ruler=null):b.ruler=new mxDualRuler(b,b.editor.graph.view.unit);b.refresh()});
-f.setEnabled(b.canvasSupported&&9!=document.documentMode);f.setToggleAction(!0);f.setSelectedCallback(function(){return null!=b.ruler});window.mxFreehand&&(b.actions.put("insertFreehand",new Action(mxResources.get("freehand")+"...",function(a){e.isEnabled()&&(null==this.freehandWindow&&(this.freehandWindow=new FreehandWindow(b,document.body.offsetWidth-420,102,176,104)),e.freehand.isDrawing()?e.freehand.stopDrawing():e.freehand.startDrawing(),this.freehandWindow.window.setVisible(e.freehand.isDrawing()))})).isEnabled=
-function(){return g()&&mxClient.IS_SVG});b.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var a=document.createElement("div");a.style.whiteSpace="nowrap";var c=null==b.pages||1>=b.pages.length,d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatXml"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";a.appendChild(d);var f=b.addCheckbox(a,mxResources.get("selectionOnly"),!1,e.isSelectionEmpty()),k=b.addCheckbox(a,mxResources.get("compressed"),
-!0),g=b.addCheckbox(a,mxResources.get("allPages"),!c,c);g.style.marginBottom="16px";mxEvent.addListener(f,"change",function(){f.checked?g.setAttribute("disabled","disabled"):g.removeAttribute("disabled")});a=new CustomDialog(b,a,mxUtils.bind(this,function(){b.downloadFile("xml",!k.checked,null,!f.checked,c||!g.checked)}),null,mxResources.get("export"));b.showDialog(a.container,300,180,!0,!0)}));b.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){b.showPublishLinkDialog(mxResources.get("url"),
-!0,null,null,function(a,c,d,e,f,k){a=new EmbedDialog(b,b.createLink(a,c,d,e,f,k,null,!0));b.showDialog(a.container,440,240,!0,!0);a.init()})}));b.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("export"),null,a,function(a,c,d,e,f,k,g,l,m,n){b.createHtml(a,c,d,e,f,k,g,l,m,n,mxUtils.bind(this,function(a,c){var d=
-b.getBaseFilename(g),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+a+"\n"+c+"\n</body>\n</html>";b.saveData(d+".html","html",e,"text/html")}))})})}));b.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if("undefined"!==typeof mxIsElectron5&&mxIsElectron5||!b.isOffline()&&!b.printPdfExport){var a=null==b.pages||
-1>=b.pages.length,c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatPdf"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(d);var f=function(){k!=this&&this.checked?l.removeAttribute("disabled"):(l.setAttribute("disabled","disabled"),l.checked=!1)},d=180;if(b.pdfPageExport&&!a){var k=b.addRadiobox(c,"pages",mxResources.get("allPages"),!0),d=b.addRadiobox(c,"pages",mxResources.get("currentPage"),
-!1),g=b.addRadiobox(c,"pages",mxResources.get("selectionOnly"),!1,e.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!1,!0),m=b.addCheckbox(c,mxResources.get("grid"),!1,!1);mxEvent.addListener(k,"change",f);mxEvent.addListener(d,"change",f);mxEvent.addListener(g,"change",f);d=240}else g=b.addCheckbox(c,mxResources.get("selectionOnly"),!1,e.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!e.pageVisible||!b.pdfPageExport,!b.pdfPageExport),m=b.addCheckbox(c,mxResources.get("grid"),
-!1,!1),b.pdfPageExport||mxEvent.addListener(g,"change",f);var n=(f=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"draw.io"==b.getServiceName())?b.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0):null;f&&(d+=30);c=new CustomDialog(b,c,mxUtils.bind(this,function(){b.downloadFile("pdf",null,null,!g.checked,a?!0:!k.checked,!l.checked,null,null,null,m.checked,null!=n&&n.checked)}),null,mxResources.get("export"));b.showDialog(c.container,300,d,!0,!0)}else b.showDialog((new PrintDialog(b,mxResources.get("formatPdf"))).container,
-360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)}));b.actions.addAction("open...",function(){b.pickFile()});b.actions.addAction("close",function(){function a(){b.fileLoaded(null)}var c=b.getCurrentFile();null!=c&&c.isModified()?b.confirm(mxResources.get("allChangesLost"),null,a,mxResources.get("cancel"),mxResources.get("discardChanges")):a()});b.actions.addAction("editShape...",mxUtils.bind(this,function(){e.getSelectionCells();if(1==e.getSelectionCount()){var a=e.getSelectionCell(),c=e.view.getState(a);
+mxUtils.bind(this,function(a,c,d,e,f,g,k,l,m,n){a=parseInt(a);!isNaN(a)&&0<a&&b.exportSvg(a/100,c,d,e,f,g,k,!l,m,n)}),!0,null,"svg")}));b.actions.put("insertTemplate",new Action(mxResources.get("template")+"...",function(){var a=new NewDialog(b,null,!1,function(a){b.hideDialog();if(null!=a){var c=b.editor.graph.getFreeInsertPoint();f.setSelectionCells(b.importXml(a,Math.max(c.x,20),Math.max(c.y,20),!0));f.scrollCellToVisible(f.getSelectionCell())}},null,null,null,null,null,null,null,null,null,null,
+!1,mxResources.get("insert"));b.showDialog(a.container,620,440,!0,!0)})).isEnabled=g;var e=b.actions.addAction("points",function(){b.editor.graph.view.setUnit(mxConstants.POINTS)});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.POINTS});e=b.actions.addAction("inches",function(){b.editor.graph.view.setUnit(mxConstants.INCHES)});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.INCHES});e=b.actions.addAction("millimeters",
+function(){b.editor.graph.view.setUnit(mxConstants.MILLIMETERS)});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.MILLIMETERS});this.put("units",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["points","millimeters"],b)})));e=b.actions.addAction("ruler",function(){mxSettings.setRulerOn(!mxSettings.isRulerOn());mxSettings.save();null!=b.ruler?(b.ruler.destroy(),b.ruler=null):b.ruler=new mxDualRuler(b,b.editor.graph.view.unit);b.refresh()});
+e.setEnabled(b.canvasSupported&&9!=document.documentMode);e.setToggleAction(!0);e.setSelectedCallback(function(){return null!=b.ruler});window.mxFreehand&&(b.actions.put("insertFreehand",new Action(mxResources.get("freehand")+"...",function(a){f.isEnabled()&&(null==this.freehandWindow&&(this.freehandWindow=new FreehandWindow(b,document.body.offsetWidth-420,102,176,104)),f.freehand.isDrawing()?f.freehand.stopDrawing():f.freehand.startDrawing(),this.freehandWindow.window.setVisible(f.freehand.isDrawing()))})).isEnabled=
+function(){return g()&&mxClient.IS_SVG});b.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var a=document.createElement("div");a.style.whiteSpace="nowrap";var c=null==b.pages||1>=b.pages.length,d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatXml"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";a.appendChild(d);var e=b.addCheckbox(a,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),g=b.addCheckbox(a,mxResources.get("compressed"),
+!0),k=b.addCheckbox(a,mxResources.get("allPages"),!c,c);k.style.marginBottom="16px";mxEvent.addListener(e,"change",function(){e.checked?k.setAttribute("disabled","disabled"):k.removeAttribute("disabled")});a=new CustomDialog(b,a,mxUtils.bind(this,function(){b.downloadFile("xml",!g.checked,null,!e.checked,c||!k.checked)}),null,mxResources.get("export"));b.showDialog(a.container,300,180,!0,!0)}));b.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){b.showPublishLinkDialog(mxResources.get("url"),
+!0,null,null,function(a,c,d,e,f,g){a=new EmbedDialog(b,b.createLink(a,c,d,e,f,g,null,!0));b.showDialog(a.container,440,240,!0,!0);a.init()})}));b.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("export"),null,a,function(a,c,d,e,f,g,k,l,m,n){b.createHtml(a,c,d,e,f,g,k,l,m,n,mxUtils.bind(this,function(a,c){var d=
+b.getBaseFilename(k),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+a+"\n"+c+"\n</body>\n</html>";b.saveData(d+".html","html",e,"text/html")}))})})}));b.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if("undefined"!==typeof mxIsElectron5&&mxIsElectron5||!b.isOffline()&&!b.printPdfExport){var a=null==b.pages||
+1>=b.pages.length,c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatPdf"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(d);var e=function(){g!=this&&this.checked?l.removeAttribute("disabled"):(l.setAttribute("disabled","disabled"),l.checked=!1)},d=180;if(b.pdfPageExport&&!a){var g=b.addRadiobox(c,"pages",mxResources.get("allPages"),!0),d=b.addRadiobox(c,"pages",mxResources.get("currentPage"),
+!1),k=b.addRadiobox(c,"pages",mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!1,!0),m=b.addCheckbox(c,mxResources.get("grid"),!1,!1);mxEvent.addListener(g,"change",e);mxEvent.addListener(d,"change",e);mxEvent.addListener(k,"change",e);d=240}else k=b.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!f.pageVisible||!b.pdfPageExport,!b.pdfPageExport),m=b.addCheckbox(c,mxResources.get("grid"),
+!1,!1),b.pdfPageExport||mxEvent.addListener(k,"change",e);var n=(e=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"draw.io"==b.getServiceName())?b.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0):null;e&&(d+=30);c=new CustomDialog(b,c,mxUtils.bind(this,function(){b.downloadFile("pdf",null,null,!k.checked,a?!0:!g.checked,!l.checked,null,null,null,m.checked,null!=n&&n.checked)}),null,mxResources.get("export"));b.showDialog(c.container,300,d,!0,!0)}else b.showDialog((new PrintDialog(b,mxResources.get("formatPdf"))).container,
+360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)}));b.actions.addAction("open...",function(){b.pickFile()});b.actions.addAction("close",function(){function a(){b.fileLoaded(null)}var c=b.getCurrentFile();null!=c&&c.isModified()?b.confirm(mxResources.get("allChangesLost"),null,a,mxResources.get("cancel"),mxResources.get("discardChanges")):a()});b.actions.addAction("editShape...",mxUtils.bind(this,function(){f.getSelectionCells();if(1==f.getSelectionCount()){var a=f.getSelectionCell(),c=f.view.getState(a);
null!=c&&null!=c.shape&&null!=c.shape.stencil&&(a=new EditShapeDialog(b,a,mxResources.get("editShape")+":",630,400),b.showDialog(a.container,640,480,!0,!1),a.init())}}));b.actions.addAction("revisionHistory...",function(){b.isRevisionHistorySupported()?b.spinner.spin(document.body,mxResources.get("loading"))&&b.getRevisions(mxUtils.bind(this,function(a,c){b.spinner.stop();var d=new RevisionDialog(b,a,c);b.showDialog(d.container,640,480,!0,!0);d.init()}),mxUtils.bind(this,function(a){b.handleError(a)})):
-b.showError(mxResources.get("error"),mxResources.get("notAvailable"),mxResources.get("ok"))});b.actions.addAction("createRevision",function(){b.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");f=b.actions.addAction("synchronize",function(){b.synchronizeCurrentFile("none"==DrawioFile.SYNC)},null,null,"Alt+Shift+S");"none"==DrawioFile.SYNC&&(f.label=mxResources.get("refresh"));b.actions.addAction("upload...",function(){var a=b.getCurrentFile();null!=a&&(window.drawdata=b.getFileData(),a=
-null!=a.getTitle()?a.getTitle():b.defaultFilename,b.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(b.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(a),null,!0))});"undefined"!==typeof MathJax&&(f=b.actions.addAction("mathematicalTypesetting",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.mathEnabled=!b.isMathEnabled();e.model.execute(a)}),f.setToggleAction(!0),f.setSelectedCallback(function(){return b.isMathEnabled()}),
-f.isEnabled=g);if(isLocalStorage||mxClient.IS_CHROMEAPP)f=b.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return mxSettings.getShowStartScreen()});var m=b.actions.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return m.isEnabled()&&b.editor.autosave});b.actions.addAction("editGeometry...",
-function(){for(var a=e.getSelectionCells(),c=[],d=0;d<a.length;d++)e.getModel().isVertex(a[d])&&c.push(a[d]);0<c.length&&(a=new EditGeometryDialog(b,c),b.showDialog(a.container,200,250,!0,!0),a.init())},null,null,Editor.ctrlKey+"+Shift+M");var p="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize".split(" ");
-b.actions.addAction("copyStyle",function(){var a=e.view.getState(e.getSelectionCell());if(e.isEnabled()&&null!=a){b.copiedStyle=mxUtils.clone(a.style);for(var a=e.getModel().getStyle(a.cell),a=null!=a?a.split(";"):[],c=0;c<a.length;c++){var d=a[c],f=d.indexOf("=");if(0<=f){var k=d.substring(0,f),d=d.substring(f+1);null==b.copiedStyle[k]&&"none"==d&&(b.copiedStyle[k]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");b.actions.addAction("pasteStyle",function(){if(e.isEnabled()&&!e.isSelectionEmpty()&&
-null!=b.copiedStyle){e.getModel().beginUpdate();try{for(var a=e.getSelectionCells(),c=0;c<a.length;c++)for(var d=e.view.getState(a[c]),f=0;f<p.length;f++){var k=p[f],g=b.copiedStyle[k];d.style[k]!=g&&e.setCellStyles(k,g,[a[c]])}}finally{e.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");b.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!b.isOffline()){var a=new BackgroundImageDialog(b,function(a){b.setBackgroundImage(a)});b.showDialog(a.container,
-320,170,!0,!0);a.init()}}));b.actions.put("exportPng",new Action(mxResources.get("formatPng")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(a,c,d,e,f,k,g,l,m,n,p){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,c,d,e,f,g,!l,m,null,p)}),!0,!0,"png"):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||b.showRemoteExportDialog(mxResources.get("export"),
-null,mxUtils.bind(this,function(a,c,d,e,f){b.downloadFile(c?"xmlpng":"png",null,null,a,null,null,d,e,f)}),!1,!0)}));b.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(a,c,d,e,f,k,g,l,m,n,p){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,!1,d,e,!1,g,!l,!1,"jpeg",p)}),!0,!1,"jpeg"):b.isOffline()||
-mxClient.IS_IOS&&navigator.standalone||b.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(a,c,d,e,f){b.downloadFile("jpeg",null,null,a,null,null,null,e,f)}),!0,!0)}));f=b.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){e.setShadowVisible(!e.shadowVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return e.shadowVisible});var u=!1;b.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){u||(b.showDialog((new AboutDialog(b)).container,
+b.showError(mxResources.get("error"),mxResources.get("notAvailable"),mxResources.get("ok"))});b.actions.addAction("createRevision",function(){b.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");e=b.actions.addAction("synchronize",function(){b.synchronizeCurrentFile("none"==DrawioFile.SYNC)},null,null,"Alt+Shift+S");"none"==DrawioFile.SYNC&&(e.label=mxResources.get("refresh"));b.actions.addAction("upload...",function(){var a=b.getCurrentFile();null!=a&&(window.drawdata=b.getFileData(),a=
+null!=a.getTitle()?a.getTitle():b.defaultFilename,b.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(b.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(a),null,!0))});"undefined"!==typeof MathJax&&(e=b.actions.addAction("mathematicalTypesetting",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.mathEnabled=!b.isMathEnabled();f.model.execute(a)}),e.setToggleAction(!0),e.setSelectedCallback(function(){return b.isMathEnabled()}),
+e.isEnabled=g);if(isLocalStorage||mxClient.IS_CHROMEAPP)e=b.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),e.setToggleAction(!0),e.setSelectedCallback(function(){return mxSettings.getShowStartScreen()});var m=b.actions.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return m.isEnabled()&&b.editor.autosave});b.actions.addAction("editGeometry...",
+function(){for(var a=f.getSelectionCells(),c=[],d=0;d<a.length;d++)f.getModel().isVertex(a[d])&&c.push(a[d]);0<c.length&&(a=new EditGeometryDialog(b,c),b.showDialog(a.container,200,250,!0,!0),a.init())},null,null,Editor.ctrlKey+"+Shift+M");var p="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize".split(" ");
+b.actions.addAction("copyStyle",function(){var a=f.view.getState(f.getSelectionCell());if(f.isEnabled()&&null!=a){b.copiedStyle=mxUtils.clone(a.style);for(var a=f.getModel().getStyle(a.cell),a=null!=a?a.split(";"):[],c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(0<=e){var g=d.substring(0,e),d=d.substring(e+1);null==b.copiedStyle[g]&&"none"==d&&(b.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");b.actions.addAction("pasteStyle",function(){if(f.isEnabled()&&!f.isSelectionEmpty()&&
+null!=b.copiedStyle){f.getModel().beginUpdate();try{for(var a=f.getSelectionCells(),c=0;c<a.length;c++)for(var d=f.view.getState(a[c]),e=0;e<p.length;e++){var g=p[e],k=b.copiedStyle[g];d.style[g]!=k&&f.setCellStyles(g,k,[a[c]])}}finally{f.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");b.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!b.isOffline()){var a=new BackgroundImageDialog(b,function(a){b.setBackgroundImage(a)});b.showDialog(a.container,
+320,170,!0,!0);a.init()}}));b.actions.put("exportPng",new Action(mxResources.get("formatPng")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(a,c,d,e,f,g,k,l,m,n,p){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,c,d,e,f,k,!l,m,null,p)}),!0,!0,"png"):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||b.showRemoteExportDialog(mxResources.get("export"),
+null,mxUtils.bind(this,function(a,c,d,e,f){b.downloadFile(c?"xmlpng":"png",null,null,a,null,null,d,e,f)}),!1,!0)}));b.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(a,c,d,e,f,g,k,l,m,n,p){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,!1,d,e,!1,k,!l,!1,"jpeg",p)}),!0,!1,"jpeg"):b.isOffline()||
+mxClient.IS_IOS&&navigator.standalone||b.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(a,c,d,e,f){b.downloadFile("jpeg",null,null,a,null,null,null,e,f)}),!0,!0)}));e=b.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){f.setShadowVisible(!f.shadowVisible)}));e.setToggleAction(!0);e.setSelectedCallback(function(){return f.shadowVisible});var u=!1;b.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){u||(b.showDialog((new AboutDialog(b)).container,
220,300,!0,!0,function(){u=!1}),u=!0)},null,null,"F1"));b.actions.addAction("userManual...",function(){b.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")});b.actions.addAction("support...",function(){b.openLink("https://about.draw.io/support/")});b.actions.addAction("exportOptionsDisabled...",function(){b.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});b.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||
-EditorUi.isElectronApp?b.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?b.openLink("shortcuts.svg"):b.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});b.actions.addAction("feedback...",function(){var a=new FeedbackDialog(b);b.showDialog(a.container,610,360,!0,!1);a.init()});b.actions.addAction("quickStart...",function(){b.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});f=b.actions.addAction("tags...",mxUtils.bind(this,function(){null==
-this.tagsWindow?(this.tagsWindow=new TagsWindow(b,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=
-this.tagsWindow&&this.tagsWindow.window.isVisible()}));f=b.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(b,document.body.offsetWidth-300,110,240,140),this.findWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));
-f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));b.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){b.exportVisio()}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&b.actions.addAction("drawConfig...",function(){var a=localStorage.getItem(".configuration"),a=new TextareaDialog(b,mxResources.get("drawConfig")+":",null!=a?JSON.stringify(JSON.parse(a),null,
+EditorUi.isElectronApp?b.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?b.openLink("shortcuts.svg"):b.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});b.actions.addAction("feedback...",function(){var a=new FeedbackDialog(b);b.showDialog(a.container,610,360,!0,!1);a.init()});b.actions.addAction("quickStart...",function(){b.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});e=b.actions.addAction("tags...",mxUtils.bind(this,function(){null==
+this.tagsWindow?(this.tagsWindow=new TagsWindow(b,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=
+this.tagsWindow&&this.tagsWindow.window.isVisible()}));e=b.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(b,document.body.offsetWidth-300,110,240,140),this.findWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));
+e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));b.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){b.exportVisio()}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&b.actions.addAction("drawConfig...",function(){var a=localStorage.getItem(".configuration"),a=new TextareaDialog(b,mxResources.get("drawConfig")+":",null!=a?JSON.stringify(JSON.parse(a),null,
2):"",function(a){if(null!=a)try{if(0<a.length){var c=JSON.parse(a);localStorage.setItem(".configuration",JSON.stringify(c))}else localStorage.removeItem(".configuration");b.hideDialog();b.alert(mxResources.get("restartForChangeRequired"))}catch(D){b.handleError(D)}},null,null,null,null,null,!0,null,null,"https://desk.draw.io/support/solutions/articles/16000058316",EditorUi.isElectronApp?null:[[mxResources.get("link"),function(a,c){if(0<c.value.length)try{var d=JSON.parse(c.value),e=window.location.protocol+
-"//"+window.location.host+"/"+b.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(d)),f=new EmbedDialog(b,e);b.showDialog(f.container,440,240,!0);f.init()}catch(K){b.handleError(K)}else b.handleError({message:mxResources.get("invalidInput")})}]]);a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!1);a.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline){this.put("language",new Menu(mxUtils.bind(this,function(a,c){var d=mxUtils.bind(this,
+"//"+window.location.host+"/"+b.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(d)),f=new EmbedDialog(b,e);b.showDialog(f.container,440,240,!0);f.init()}catch(J){b.handleError(J)}else b.handleError({message:mxResources.get("invalidInput")})}]]);a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!1);a.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline){this.put("language",new Menu(mxUtils.bind(this,function(a,c){var d=mxUtils.bind(this,
function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=a.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);b.alert(mxResources.get("restartForChangeRequired"))}),c),(d==mxLanguage||""==d&&null==mxLanguage)&&a.addCheckmark(f,Editor.checkmarkImage));return f});d("");a.addSeparator(c);for(var e in mxLanguageMap)d(e)})));var v=Menus.prototype.createMenubar;
Menus.prototype.createMenubar=function(a){var b=v.apply(this,arguments);if(null!=b){var c=this.get("language");if(null!=c){c=b.addMenu("",c.funct);c.setAttribute("title",mxResources.get("language"));c.style.width="16px";c.style.paddingTop="2px";c.style.paddingLeft="4px";c.style.zIndex="1";c.style.position="absolute";c.style.display="block";c.style.cursor="pointer";c.style.right="17px";"atlas"==uiTheme?(c.style.top="6px",c.style.right="15px"):c.style.top="min"==uiTheme?"2px":"0px";if(mxClient.IS_VML)c.innerHTML=
'<div class="geIcon geSprite geSprite-globe"/>';else{var d=document.createElement("div");d.style.backgroundImage="url("+Editor.globeImage+")";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";d.style.backgroundSize="19px 19px";d.style.position="absolute";d.style.height="19px";d.style.width="19px";d.style.marginTop="2px";d.style.zIndex="1";c.appendChild(d);mxUtils.setOpacity(c,40);if("atlas"==uiTheme||"dark"==uiTheme)c.style.opacity="0.85",c.style.filter="invert(100%)"}document.body.appendChild(c)}}return b}}b.customLayoutConfig=
[{layout:"mxHierarchicalLayout",config:{orientation:"west",intraCellSpacing:30,interRankCellSpacing:100,interHierarchySpacing:60,parallelEdgeSpacing:10}}];b.actions.addAction("runLayout",function(){var a=new TextareaDialog(b,"Run Layouts:",JSON.stringify(b.customLayoutConfig,null,2),function(a){if(0<a.length)try{var c=JSON.parse(a);b.executeLayoutList(c);b.customLayoutConfig=c}catch(D){b.handleError(D),null!=window.console&&console.error(D)}});a.textarea.style.width="600px";a.textarea.style.height=
-"380px";b.showDialog(a.container,620,460,!0,!0);a.init()});var f=this.get("layout"),t=f.funct;f.funct=function(a,c){t.apply(this,arguments);a.addSeparator(c);b.menus.addMenuItem(a,"runLayout",c,null,null,mxResources.get("apply")+"...")};this.put("help",new Menu(mxUtils.bind(this,function(a,c){if(!mxClient.IS_CHROMEAPP&&b.isOffline())this.addMenuItems(a,["about"],c);else{var d=a.addItem("Search:",null,null,c,null,null,!1);d.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";d.style.cursor=
+"380px";b.showDialog(a.container,620,460,!0,!0);a.init()});var e=this.get("layout"),t=e.funct;e.funct=function(a,c){t.apply(this,arguments);a.addSeparator(c);b.menus.addMenuItem(a,"runLayout",c,null,null,mxResources.get("apply")+"...")};this.put("help",new Menu(mxUtils.bind(this,function(a,c){if(!mxClient.IS_CHROMEAPP&&b.isOffline())this.addMenuItems(a,["about"],c);else{var d=a.addItem("Search:",null,null,c,null,null,!1);d.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";d.style.cursor=
"default";var e=document.createElement("input");e.setAttribute("type","text");e.setAttribute("size","25");e.style.marginLeft="8px";mxEvent.addListener(e,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(e.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+encodeURIComponent(b)),e.value="",EditorUi.logEvent({category:"SEARCH-HELP",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),
0)):27==a.keyCode&&(e.value="")}));d.firstChild.nextSibling.appendChild(e);mxEvent.addGestureListeners(e,function(a){document.activeElement!=e&&e.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){e.focus()},0);this.addMenuItems(a,["-","keyboardShortcuts","quickStart","userManual","-"],c);EditorUi.isElectronApp||navigator.standalone||"1"==urlParams.embed||this.addMenuItems(a,["downloadDesktop"],c);mxClient.IS_CHROMEAPP||this.addMenuItems(a,
["feedback","support"],c);this.addMenuItems(a,["-","about"],c)}"1"==urlParams.test&&(a.addSeparator(c),this.addSubmenu("testDevelop",a,c))})));"1"==urlParams.test&&(mxResources.parse("testDevelop=Develop"),mxResources.parse("showBoundingBox=Show bounding box"),mxResources.parse("createSidebarEntry=Create Sidebar Entry"),mxResources.parse("testCheckFile=Check File"),mxResources.parse("testDiff=Diff"),mxResources.parse("testInspect=Inspect"),mxResources.parse("testShowConsole=Show Console"),mxResources.parse("testXmlImageExport=XML Image Export"),
-mxResources.parse("testDownloadRtModel=Export RT model"),mxResources.parse("testImportRtModel=Import RT model"),b.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){e.isSelectionEmpty()||b.showTextDialog("Create Sidebar Entry","sb.createVertexTemplateFromData('"+Graph.compress(mxUtils.getXml(e.encodeCells(e.getSelectionCells())))+"', width, height, 'Title');")})),b.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=e.getGraphBounds(),b=e.view.translate,c=e.view.scale;
-e.insertVertex(e.getDefaultParent(),null,"",a.x/c-b.x,a.y/c-b.y,a.width/c,a.height/c,"fillColor=none;strokeColor=red;")})),b.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var a=null!=b.pages&&null!=b.getCurrentFile()?b.getCurrentFile().getAnonymizedXmlForPages(b.pages):"",a=new TextareaDialog(b,"Paste Data:",a,function(a){if(0<a.length)try{var c=function(a){function b(a){if(null==n[a]){if(n[a]=!0,null!=e[a]){for(;0<e[a].length;){var d=e[a].pop();b(d)}delete e[a]}}else mxLog.debug(c+
-": Visited: "+a)}var c=a.parentNode.id,d=a.childNodes;a={};for(var e={},f=null,k={},g=0;g<d.length;g++){var l=d[g];if(null!=l.id&&0<l.id.length)if(null==a[l.id]){a[l.id]=l.id;var m=l.getAttribute("parent");null==m?null!=f?mxLog.debug(c+": Multiple roots: "+l.id):f=l.id:(null==e[m]&&(e[m]=[]),e[m].push(l.id))}else k[l.id]=l.id}0<Object.keys(k).length?(d=c+": "+Object.keys(k).length+" Duplicates: "+Object.keys(k).join(", "),mxLog.debug(d+" (see console)")):mxLog.debug(c+": Checked");var n={};null==
-f?mxLog.debug(c+": No root"):(b(f),Object.keys(n).length!=Object.keys(a).length&&(mxLog.debug(c+": Invalid tree: (see console)"),console.log(c+": Invalid tree",e)))};"<"!=a.charAt(0)&&(a=Graph.decompress(a),mxLog.debug("See console for uncompressed XML"),console.log("xml",a));var d=mxUtils.parseXml(a),e=b.getPagesForNode(d.documentElement,"mxGraphModel");if(null!=e&&0<e.length)try{var f=b.getHashValueForPages(e);mxLog.debug("Checksum: ",f)}catch(G){mxLog.debug("Error: ",G.message)}else mxLog.debug("No pages found for checksum");
-var k=d.getElementsByTagName("root");for(a=0;a<k.length;a++)c(k[a]);mxLog.show()}catch(G){b.handleError(G),null!=window.console&&console.error(G)}});a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()})),b.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=b.pages){var a=new TextareaDialog(b,"Paste Data:","",function(a){if(0<a.length)try{console.log(JSON.stringify(b.diffPages(b.pages,b.getPagesForNode(mxUtils.parseXml(a).documentElement)),
-null,2))}catch(A){b.handleError(A),null!=window.console&&console.error(A)}});a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()}else b.alert("No pages")})),b.actions.addAction("testInspect",mxUtils.bind(this,function(){console.log(b,e.getModel())})),b.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=e.getGraphBounds(),c=e.view.scale,d=mxUtils.createXmlDocument(),f=d.createElement("output");d.appendChild(f);
-d=new mxXmlCanvas2D(f);d.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));d.scale(1/c);var k=0,g=d.save;d.save=function(){k++;g.apply(this,arguments)};var l=d.restore;d.restore=function(){k--;l.apply(this,arguments)};var m=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,k);m.apply(this,arguments);mxLog.debug("leaving shape",a,k)};a.drawState(e.getView().getState(e.model.root),d);mxLog.show();mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",k)})),b.actions.addAction("testDownloadRtModel...",
+mxResources.parse("testDownloadRtModel=Export RT model"),mxResources.parse("testImportRtModel=Import RT model"),b.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){f.isSelectionEmpty()||b.showTextDialog("Create Sidebar Entry","sb.createVertexTemplateFromData('"+Graph.compress(mxUtils.getXml(f.encodeCells(f.getSelectionCells())))+"', width, height, 'Title');")})),b.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=f.getGraphBounds(),b=f.view.translate,c=f.view.scale;
+f.insertVertex(f.getDefaultParent(),null,"",a.x/c-b.x,a.y/c-b.y,a.width/c,a.height/c,"fillColor=none;strokeColor=red;")})),b.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var a=null!=b.pages&&null!=b.getCurrentFile()?b.getCurrentFile().getAnonymizedXmlForPages(b.pages):"",a=new TextareaDialog(b,"Paste Data:",a,function(a){if(0<a.length)try{var c=function(a){function b(a){if(null==n[a]){if(n[a]=!0,null!=e[a]){for(;0<e[a].length;){var d=e[a].pop();b(d)}delete e[a]}}else mxLog.debug(c+
+": Visited: "+a)}var c=a.parentNode.id,d=a.childNodes;a={};for(var e={},f=null,g={},k=0;k<d.length;k++){var l=d[k];if(null!=l.id&&0<l.id.length)if(null==a[l.id]){a[l.id]=l.id;var m=l.getAttribute("parent");null==m?null!=f?mxLog.debug(c+": Multiple roots: "+l.id):f=l.id:(null==e[m]&&(e[m]=[]),e[m].push(l.id))}else g[l.id]=l.id}0<Object.keys(g).length?(d=c+": "+Object.keys(g).length+" Duplicates: "+Object.keys(g).join(", "),mxLog.debug(d+" (see console)")):mxLog.debug(c+": Checked");var n={};null==
+f?mxLog.debug(c+": No root"):(b(f),Object.keys(n).length!=Object.keys(a).length&&(mxLog.debug(c+": Invalid tree: (see console)"),console.log(c+": Invalid tree",e)))};"<"!=a.charAt(0)&&(a=Graph.decompress(a),mxLog.debug("See console for uncompressed XML"),console.log("xml",a));var d=mxUtils.parseXml(a),e=b.getPagesForNode(d.documentElement,"mxGraphModel");if(null!=e&&0<e.length)try{var f=b.getHashValueForPages(e);mxLog.debug("Checksum: ",f)}catch(H){mxLog.debug("Error: ",H.message)}else mxLog.debug("No pages found for checksum");
+var g=d.getElementsByTagName("root");for(a=0;a<g.length;a++)c(g[a]);mxLog.show()}catch(H){b.handleError(H),null!=window.console&&console.error(H)}});a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()})),b.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=b.pages){var a=new TextareaDialog(b,"Paste Data:","",function(a){if(0<a.length)try{console.log(JSON.stringify(b.diffPages(b.pages,b.getPagesForNode(mxUtils.parseXml(a).documentElement)),
+null,2))}catch(A){b.handleError(A),null!=window.console&&console.error(A)}});a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()}else b.alert("No pages")})),b.actions.addAction("testInspect",mxUtils.bind(this,function(){console.log(b,f.getModel())})),b.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=f.getGraphBounds(),c=f.view.scale,d=mxUtils.createXmlDocument(),e=d.createElement("output");d.appendChild(e);
+d=new mxXmlCanvas2D(e);d.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));d.scale(1/c);var g=0,k=d.save;d.save=function(){g++;k.apply(this,arguments)};var l=d.restore;d.restore=function(){g--;l.apply(this,arguments)};var m=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);m.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(f.getView().getState(f.model.root),d);mxLog.show();mxLog.debug(mxUtils.getXml(e));mxLog.debug("stateCounter",g)})),b.actions.addAction("testDownloadRtModel...",
mxUtils.bind(this,function(){null==b.drive?b.handleError({message:mxResources.get("serviceUnavailableOrBlocked")}):b.drive.execute(mxUtils.bind(this,function(){var a=prompt("File ID","");if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("export"))){var c=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+a+"/realtime?supportsTeamDrives=true",null,"GET");c.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);a.setRequestHeader("authorization",
"Bearer "+b.drive.token)};c.send(function(c){b.spinner.stop();200<=c.getStatus()&&299>=c.getStatus()?b.saveLocalFile(c.getText(),"json-"+a+".txt","text/plain"):b.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))})}}))})),b.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.put("testDevelop",new Menu(mxUtils.bind(this,function(a,c){this.addMenuItems(a,
"createSidebarEntry showBoundingBox - testCheckFile testDiff - testInspect - testXmlImageExport - testDownloadRtModel".split(" "),c);a.addItem(mxResources.get("testImportRtModel")+"...",null,function(){var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",mxUtils.bind(this,function(){if(null!=a.files){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{b.openLocalFile(mxUtils.getXml(b.drive.convertJsonToXml(JSON.parse(c.target.result).data)),
a.files[0].name,!0)}catch(I){b.handleError(I,mxResources.get("errorLoadingFile"))}});c.readAsText(a.files[0])}}));a.click()},c);this.addMenuItems(a,["-","testShowConsole"],c)}))));b.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!b.isOffline()?b.showDialog((new MoreShapesDialog(b,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):b.showDialog((new MoreShapesDialog(b,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});b.actions.put("createShape",
-new Action(mxResources.get("shape")+"...",function(a){e.isEnabled()&&(a=new mxCell("",new mxGeometry(0,0,120,120),b.defaultCustomShapeStyle),a.vertex=!0,a=new EditShapeDialog(b,a,mxResources.get("editShape")+":",630,400),b.showDialog(a.container,640,480,!0,!1),a.init())})).isEnabled=g;b.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("create"),
-"https://desk.draw.io/support/solutions/articles/16000042542",a,function(a,c,d,e,f,k,g,l,m,n){b.createHtml(a,c,d,e,f,k,g,l,m,n,mxUtils.bind(this,function(a,c){var d=new EmbedDialog(b,a+"\n"+c,null,null,function(){var d=window.open(),e=d.document;if(null!=e){"CSS1Compat"===document.compatMode&&e.writeln("<!DOCTYPE html>");e.writeln("<html>");e.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');e.writeln("<body>");e.writeln(a);var f=mxClient.IS_IE||
-mxClient.IS_EDGE||null!=document.documentMode;f&&e.writeln(c);e.writeln("</body>");e.writeln("</html>");e.close();if(!f){var k=d.document.createElement("div");k.marginLeft="26px";k.marginTop="26px";mxUtils.write(k,mxResources.get("updatingDocument"));f=d.document.createElement("img");f.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");f.style.marginLeft="6px";k.appendChild(f);d.document.body.insertBefore(k,d.document.body.firstChild);window.setTimeout(function(){var a=
-document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];e.body.appendChild(a);k.parentNode.removeChild(k)},20)}}else b.handleError({message:mxResources.get("errorUpdatingPreview")})});b.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));b.actions.put("liveImage",new Action("Live image...",function(){var a=b.getCurrentFile();null!=a&&b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(c){b.spinner.stop();
-null!=c?(c=new EmbedDialog(b,'<img src="'+(a.constructor!=DriveFile?c:"https://drive.google.com/uc?id="+a.getId())+'"/>'),b.showDialog(c.container,440,240,!0,!0),c.init()):b.handleError({message:mxResources.get("invalidPublicUrl")})})}));b.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,k){b.spinner.spin(document.body,mxResources.get("loading"))&&b.createEmbedImage(a,c,d,e,f,k,function(a){b.spinner.stop();a=new EmbedDialog(b,
-a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();b.handleError(a)})},mxResources.get("image"),mxResources.get("retina"),b.isExportToCanvas())}));b.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,k){b.spinner.spin(document.body,mxResources.get("loading"))&&b.createEmbedSvg(a,c,d,e,f,k,function(a){b.spinner.stop();a=new EmbedDialog(b,a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();
-b.handleError(a)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));b.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var a=e.getGraphBounds();b.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((a.y+a.height-e.view.translate.y)/e.view.scale)+2,function(a,c,d,e,f,k,g,l){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(m){b.spinner.stop();
-m=new EmbedDialog(b,'<iframe frameborder="0" style="width:'+g+";height:"+l+';" src="'+b.createLink(a,c,d,e,f,k,m)+'"></iframe>');b.showDialog(m.container,440,240,!0,!0);m.init()})},!0)}));b.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){b.showPublishLinkDialog(null,null,null,null,function(a,c,d,e,f,k){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(g){b.spinner.stop();g=new EmbedDialog(b,b.createLink(a,c,d,e,f,k,g));
-b.showDialog(g.container,440,240,!0,!0);g.init()})})}));b.actions.addAction("microsoftOffice...",function(){b.openLink("https://office.draw.io")});b.actions.addAction("googleDocs...",function(){b.openLink("http://docsaddon.draw.io")});b.actions.addAction("googleSlides...",function(){b.openLink("https://slidesaddon.draw.io")});b.actions.addAction("googleSheets...",function(){b.openLink("https://sheetsaddon.draw.io")});b.actions.addAction("googleSites...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&
-b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();a=new GoogleSitesDialog(b,a);b.showDialog(a.container,420,256,!0,!0);a.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)f=b.actions.addAction("scratchpad",function(){b.toggleScratchpad()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return null!=b.scratchpad}),b.actions.addAction("plugins...",function(){b.showDialog((new PluginsDialog(b)).container,360,170,!0,!1)});f=b.actions.addAction("search",function(){var a=b.sidebar.isEntryVisible("search");
-b.sidebar.showPalette("search",!a);isLocalStorage&&(mxSettings.settings.search=!a,mxSettings.save())});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(b.actions.get("save").funct=function(a){e.isEditing()&&e.stopEditing();var c="0"!=urlParams.pages||null!=b.pages&&1<b.pages.length?b.getFileData(!0):mxUtils.getXml(b.editor.getGraphXml());if("json"==urlParams.proto){var d=b.createLoadMessage("save");d.xml=c;a&&(d.exit=!0);c=JSON.stringify(d)}(window.opener||
+new Action(mxResources.get("shape")+"...",function(a){f.isEnabled()&&(a=new mxCell("",new mxGeometry(0,0,120,120),b.defaultCustomShapeStyle),a.vertex=!0,a=new EditShapeDialog(b,a,mxResources.get("editShape")+":",630,400),b.showDialog(a.container,640,480,!0,!1),a.init())})).isEnabled=g;b.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("create"),
+"https://desk.draw.io/support/solutions/articles/16000042542",a,function(a,c,d,e,f,g,k,l,m,n){b.createHtml(a,c,d,e,f,g,k,l,m,n,mxUtils.bind(this,function(a,c){var d=new EmbedDialog(b,a+"\n"+c,null,null,function(){var d=window.open(),e=d.document;if(null!=e){"CSS1Compat"===document.compatMode&&e.writeln("<!DOCTYPE html>");e.writeln("<html>");e.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');e.writeln("<body>");e.writeln(a);var f=mxClient.IS_IE||
+mxClient.IS_EDGE||null!=document.documentMode;f&&e.writeln(c);e.writeln("</body>");e.writeln("</html>");e.close();if(!f){var g=d.document.createElement("div");g.marginLeft="26px";g.marginTop="26px";mxUtils.write(g,mxResources.get("updatingDocument"));f=d.document.createElement("img");f.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");f.style.marginLeft="6px";g.appendChild(f);d.document.body.insertBefore(g,d.document.body.firstChild);window.setTimeout(function(){var a=
+document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];e.body.appendChild(a);g.parentNode.removeChild(g)},20)}}else b.handleError({message:mxResources.get("errorUpdatingPreview")})});b.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));b.actions.put("liveImage",new Action("Live image...",function(){var a=b.getCurrentFile();null!=a&&b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(c){b.spinner.stop();
+null!=c?(c=new EmbedDialog(b,'<img src="'+(a.constructor!=DriveFile?c:"https://drive.google.com/uc?id="+a.getId())+'"/>'),b.showDialog(c.container,440,240,!0,!0),c.init()):b.handleError({message:mxResources.get("invalidPublicUrl")})})}));b.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.createEmbedImage(a,c,d,e,f,g,function(a){b.spinner.stop();a=new EmbedDialog(b,
+a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();b.handleError(a)})},mxResources.get("image"),mxResources.get("retina"),b.isExportToCanvas())}));b.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.createEmbedSvg(a,c,d,e,f,g,function(a){b.spinner.stop();a=new EmbedDialog(b,a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();
+b.handleError(a)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));b.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var a=f.getGraphBounds();b.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((a.y+a.height-f.view.translate.y)/f.view.scale)+2,function(a,c,d,e,f,g,k,l){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(m){b.spinner.stop();
+m=new EmbedDialog(b,'<iframe frameborder="0" style="width:'+k+";height:"+l+';" src="'+b.createLink(a,c,d,e,f,g,m)+'"></iframe>');b.showDialog(m.container,440,240,!0,!0);m.init()})},!0)}));b.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){b.showPublishLinkDialog(null,null,null,null,function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(k){b.spinner.stop();k=new EmbedDialog(b,b.createLink(a,c,d,e,f,g,k));
+b.showDialog(k.container,440,240,!0,!0);k.init()})})}));b.actions.addAction("microsoftOffice...",function(){b.openLink("https://office.draw.io")});b.actions.addAction("googleDocs...",function(){b.openLink("http://docsaddon.draw.io")});b.actions.addAction("googleSlides...",function(){b.openLink("https://slidesaddon.draw.io")});b.actions.addAction("googleSheets...",function(){b.openLink("https://sheetsaddon.draw.io")});b.actions.addAction("googleSites...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&
+b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();a=new GoogleSitesDialog(b,a);b.showDialog(a.container,420,256,!0,!0);a.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)e=b.actions.addAction("scratchpad",function(){b.toggleScratchpad()}),e.setToggleAction(!0),e.setSelectedCallback(function(){return null!=b.scratchpad}),b.actions.addAction("plugins...",function(){b.showDialog((new PluginsDialog(b)).container,360,170,!0,!1)});e=b.actions.addAction("search",function(){var a=b.sidebar.isEntryVisible("search");
+b.sidebar.showPalette("search",!a);isLocalStorage&&(mxSettings.settings.search=!a,mxSettings.save())});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(b.actions.get("save").funct=function(a){f.isEditing()&&f.stopEditing();var c="0"!=urlParams.pages||null!=b.pages&&1<b.pages.length?b.getFileData(!0):mxUtils.getXml(b.editor.getGraphXml());if("json"==urlParams.proto){var d=b.createLoadMessage("save");d.xml=c;a&&(d.exit=!0);c=JSON.stringify(d)}(window.opener||
window.parent).postMessage(c,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(b.editor.modified=!1,b.editor.setStatus(""));null!=b.getCurrentFile()&&b.saveFile()},b.actions.addAction("saveAndExit",function(){b.actions.get("save").funct(!0)}),b.actions.addAction("exit",function(){var a=function(){b.editor.modified=!1;var a="json"==urlParams.proto?JSON.stringify({event:"exit",modified:b.editor.modified}):"";(window.opener||window.parent).postMessage(a,"*")};b.editor.modified?b.confirm(mxResources.get("allChangesLost"),
null,a,mxResources.get("cancel"),mxResources.get("discardChanges")):a()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){b.isExportToCanvas()?(this.addMenuItems(a,["exportPng"],c),b.jpgSupported&&this.addMenuItems(a,["exportJpg"],c)):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(a,["exportPng","exportJpg"],c);this.addMenuItems(a,["exportSvg","-"],c);b.isOffline()||b.printPdfExport?this.addMenuItems(a,["exportPdf"],c):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||
this.addMenuItems(a,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&b.isOffline()||this.addMenuItems(a,["exportVsdx"],c);this.addMenuItems(a,["-","exportHtml","exportXml","exportUrl"],c);b.isOffline()||(a.addSeparator(c),this.addMenuItem(a,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.put("importFrom",new Menu(mxUtils.bind(this,function(a,c){function d(a){a.pickFile(function(c){b.spinner.spin(document.body,mxResources.get("loading"))&&a.getFile(c,
-function(a){var c="data:image/"==a.getData().substring(0,11)?g(a.getTitle()):"text/xml";/\.svg$/i.test(a.getTitle())&&!b.editor.isDataSvg(a.getData())&&(a.setData(b.createSvgDataUri(a.getData())),c="image/svg+xml");f(a.getData(),c,a.getTitle())},function(a){b.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)},a==b.drive)},!0)}var f=mxUtils.bind(this,function(a,c,d){var f=e.view,k=e.getGraphBounds(),g=e.snap(Math.ceil(Math.max(0,k.x/f.scale-f.translate.x)+4*e.gridSize)),l=e.snap(Math.ceil(Math.max(0,
-(k.y+k.height)/f.scale-f.translate.y)+4*e.gridSize));"data:image/"==a.substring(0,11)?b.loadImage(a,mxUtils.bind(this,function(f){var k=!0,m=mxUtils.bind(this,function(){b.resizeImage(f,a,mxUtils.bind(this,function(f,m,n){f=k?Math.min(1,Math.min(b.maxImageSize/m,b.maxImageSize/n)):1;b.importFile(a,c,g,l,Math.round(m*f),Math.round(n*f),d,function(a){b.spinner.stop();e.setSelectionCells(a);e.scrollCellToVisible(e.getSelectionCell())})}),k)});a.length>b.resampleThreshold?b.confirmImageResize(function(a){k=
-a;m()}):m()}),mxUtils.bind(this,function(){b.handleError({message:mxResources.get("cannotOpenFile")})})):b.importFile(a,c,g,l,0,0,d,function(a){b.spinner.stop();e.setSelectionCells(a);e.scrollCellToVisible(e.getSelectionCell())})}),g=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)?b="image/gif":/\.pdf$/i.test(a)&&(b="application/pdf");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=
+function(a){var c="data:image/"==a.getData().substring(0,11)?g(a.getTitle()):"text/xml";/\.svg$/i.test(a.getTitle())&&!b.editor.isDataSvg(a.getData())&&(a.setData(b.createSvgDataUri(a.getData())),c="image/svg+xml");e(a.getData(),c,a.getTitle())},function(a){b.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)},a==b.drive)},!0)}var e=mxUtils.bind(this,function(a,c,d){var e=f.view,g=f.getGraphBounds(),k=f.snap(Math.ceil(Math.max(0,g.x/e.scale-e.translate.x)+4*f.gridSize)),l=f.snap(Math.ceil(Math.max(0,
+(g.y+g.height)/e.scale-e.translate.y)+4*f.gridSize));"data:image/"==a.substring(0,11)?b.loadImage(a,mxUtils.bind(this,function(e){var g=!0,m=mxUtils.bind(this,function(){b.resizeImage(e,a,mxUtils.bind(this,function(e,m,n){e=g?Math.min(1,Math.min(b.maxImageSize/m,b.maxImageSize/n)):1;b.importFile(a,c,k,l,Math.round(m*e),Math.round(n*e),d,function(a){b.spinner.stop();f.setSelectionCells(a);f.scrollCellToVisible(f.getSelectionCell())})}),g)});a.length>b.resampleThreshold?b.confirmImageResize(function(a){g=
+a;m()}):m()}),mxUtils.bind(this,function(){b.handleError({message:mxResources.get("cannotOpenFile")})})):b.importFile(a,c,k,l,0,0,d,function(a){b.spinner.stop();f.setSelectionCells(a);f.scrollCellToVisible(f.getSelectionCell())})}),g=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)?b="image/gif":/\.pdf$/i.test(a)&&(b="application/pdf");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=
b.drive?a.addItem(mxResources.get("googleDrive")+"...",null,function(){d(b.drive)},c):k&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){d(b.oneDrive)},c):n&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?
a.addItem(mxResources.get("dropbox")+"...",null,function(){d(b.dropbox)},c):l&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){d(b.gitHub)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){d(b.gitLab)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){d(b.trello)},
c):q&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.importLocalFile(!1)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.importLocalFile(!0)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+"...",null,function(){var a=new FilenameDialog(b,"",mxResources.get("import"),
-function(a){if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(a)?"image/png":"text/xml";b.loadUrl(PROXY_URL+"?url="+encodeURIComponent(a),function(b){f(b,c,a)},function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));b.showDialog(a.container,300,80,!0,!0);a.init()},c))}))).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(a,c){var d=mxSettings.getUi(),e=
+function(a){if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(a)?"image/png":"text/xml";b.loadUrl(PROXY_URL+"?url="+encodeURIComponent(a),function(b){e(b,c,a)},function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));b.showDialog(a.container,300,80,!0,!0);a.init()},c))}))).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(a,c){var d=mxSettings.getUi(),e=
a.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();b.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&a.addCheckmark(e,Editor.checkmarkImage);a.addSeparator(c);e=a.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy");mxSettings.save();b.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("minimal"),
null,function(){mxSettings.setUi("min");mxSettings.save();b.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();b.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();b.alert(mxResources.get("restartForChangeRequired"))},
-c);"dark"==d&&a.addCheckmark(e,Editor.checkmarkImage)})));f=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();if(null!=a){var c=null!=a.getTitle()?a.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&null!=a&&b!=a.getTitle()&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&a.rename(b,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),
-mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),a.constructor==DriveFile||a.constructor==StorageFile?mxResources.get("diagramName"):null,function(a){if(null!=a&&0<a.length)return!0;b.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1},null,null,null,null,b.editor.fileExtensions);this.editorUi.showDialog(c.container,340,90,!0,!0);c.init()}}));f.isEnabled=function(){return this.enabled&&
-g.apply(this,arguments)};f.visible="1"!=urlParams.embed;b.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var a=b.getCurrentFile();if(null!=a){var c=b.getCopyFilename(a);a.constructor==DriveFile?(c=new CreateDialog(b,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?b.spinner.spin(document.body,mxResources.get("saving"))&&a.saveAs(c,mxUtils.bind(this,function(c){a.desc=c;a.save(!1,mxUtils.bind(this,function(){b.spinner.stop();
+c);"dark"==d&&a.addCheckmark(e,Editor.checkmarkImage)})));e=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();if(null!=a){var c=null!=a.getTitle()?a.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&null!=a&&b!=a.getTitle()&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&a.rename(b,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),
+mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),a.constructor==DriveFile||a.constructor==StorageFile?mxResources.get("diagramName"):null,function(a){if(null!=a&&0<a.length)return!0;b.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1},null,null,null,null,b.editor.fileExtensions);this.editorUi.showDialog(c.container,340,90,!0,!0);c.init()}}));e.isEnabled=function(){return this.enabled&&
+g.apply(this,arguments)};e.visible="1"!=urlParams.embed;b.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var a=b.getCurrentFile();if(null!=a){var c=b.getCopyFilename(a);a.constructor==DriveFile?(c=new CreateDialog(b,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?b.spinner.spin(document.body,mxResources.get("saving"))&&a.saveAs(c,mxUtils.bind(this,function(c){a.desc=c;a.save(!1,mxUtils.bind(this,function(){b.spinner.stop();
a.setModified(!1);a.addAllSavedStatus()}),mxUtils.bind(this,function(a){b.handleError(a)}))}),mxUtils.bind(this,function(a){b.handleError(a)})):b.createFile(c,b.getFileData(!0),null,d))}),mxUtils.bind(this,function(){b.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0,null,null,null,null,b.editor.fileExtensions),b.showDialog(c.container,420,380,!0,!0),c.init()):b.editor.editAsNew(this.editorUi.getFileData(!0),c)}}));b.actions.addAction("moveToFolder...",mxUtils.bind(this,
function(){var a=b.getCurrentFile();if(a.getMode()==App.MODE_GOOGLE||a.getMode()==App.MODE_ONEDRIVE){var c=!1;if(a.getMode()==App.MODE_GOOGLE&&null!=a.desc.parents)for(var d=0;d<a.desc.parents.length;d++)if(a.desc.parents[d].isRoot){c=!0;break}b.pickFolder(a.getMode(),mxUtils.bind(this,function(c){b.spinner.spin(document.body,mxResources.get("moving"))&&a.move(c,mxUtils.bind(this,function(a){b.spinner.stop()}),mxUtils.bind(this,function(a){b.handleError(a)}))}),null,!0,c)}}));this.put("publish",new Menu(mxUtils.bind(this,
-function(a,b){this.addMenuItems(a,["publishLink"],b)})));b.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){b.openLink("https://app.draw.io/")}));b.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){b.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){try{var a=b.getCurrentFile();null!=a&&b.drive.showPermissions(a.getId())}catch(B){b.handleError(B)}}));this.put("embed",
-new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null==d||d.getMode()!=App.MODE_GOOGLE&&d.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(d.getTitle())||this.addMenuItems(a,["liveImage","-"],c);this.addMenuItems(a,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||b.isOffline()||this.addMenuItems(a,["embedIframe"],c);"1"==urlParams.embed||b.isOffline()||this.addMenuItems(a,"- googleDocs googleSlides googleSheets - microsoftOffice".split(" "),c)})));var z=function(a,
-c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!b.isOffline())&&a.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var a=new ParseDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);b.dialog.container.style.overflow="auto"}else a=new CreateGraphDialog(b,d,e),b.showDialog(a.container,620,420,!0,!1);a.init()}),c,null,g())},x=function(a,b,c,d){var f=e.isMouseInsertPoint()?e.getInsertPoint():e.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,
-c),d);a.vertex=!0;e.getModel().beginUpdate();try{a=e.addCell(a),e.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{e.getModel().endUpdate()}e.scrollCellToVisible(a);e.setSelectionCell(a);e.container.focus();e.editAfterInsert&&e.startEditing(a);return a};b.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,
-function(a,c,d,e,f,k,g,l,m,n){a=parseInt(a);!isNaN(a)&&0<a&&b.exportSvg(a/100,c,d,e,f,k,g,!l,m,n)}),!0,null,"svg")}));b.actions.put("insertText",new Action(mxResources.get("text"),function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&e.startEditingAtCell(x("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))}),null,null,Editor.ctrlKey+"+Shift+X").isEnabled=g;b.actions.put("insertRectangle",new Action(mxResources.get("rectangle"),
-function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&x("",120,60,"whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+K").isEnabled=g;b.actions.put("insertEllipse",new Action(mxResources.get("ellipse"),function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&x("",80,80,"ellipse;whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;b.actions.put("insertRhombus",new Action(mxResources.get("rhombus"),function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&
-x("",80,80,"rhombus;whiteSpace=wrap;html=1;")})).isEnabled=g;var C=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):z(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(a,c){this.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - createShape insertFreehand - insertImage".split(" "),c);b.insertTemplateEnabled&&!b.isOffline()&&this.addMenuItems(a,["insertTemplate"],c);a.addSeparator(c);
-this.addSubmenu("insertLayout",a,c,mxResources.get("layout"));this.addSubmenu("insertAdvanced",a,c,mxResources.get("advanced"))})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){C(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){C(a,c,["fromText","plantUml","-","formatSql"]);a.addItem(mxResources.get("csv")+"...",null,function(){b.showImportCsvDialog()},
+function(a,b){this.addMenuItems(a,["publishLink"],b)})));b.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){b.openLink("https://app.draw.io/")}));b.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){b.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){try{var a=b.getCurrentFile();null!=a&&b.drive.showPermissions(a.getId())}catch(C){b.handleError(C)}}));this.put("embed",
+new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null==d||d.getMode()!=App.MODE_GOOGLE&&d.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(d.getTitle())||this.addMenuItems(a,["liveImage","-"],c);this.addMenuItems(a,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||b.isOffline()||this.addMenuItems(a,["embedIframe"],c);"1"==urlParams.embed||b.isOffline()||this.addMenuItems(a,"- googleDocs googleSlides googleSheets - microsoftOffice".split(" "),c)})));var y=function(a,
+c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!b.isOffline())&&a.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var a=new ParseDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);b.dialog.container.style.overflow="auto"}else a=new CreateGraphDialog(b,d,e),b.showDialog(a.container,620,420,!0,!1);a.init()}),c,null,g())},z=function(a,b,c,d){var e=f.isMouseInsertPoint()?f.getInsertPoint():f.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(e.x,e.y,b,
+c),d);a.vertex=!0;f.getModel().beginUpdate();try{a=f.addCell(a),f.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{f.getModel().endUpdate()}f.scrollCellToVisible(a);f.setSelectionCell(a);f.container.focus();f.editAfterInsert&&f.startEditing(a);return a};b.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,
+function(a,c,d,e,f,g,k,l,m,n){a=parseInt(a);!isNaN(a)&&0<a&&b.exportSvg(a/100,c,d,e,f,g,k,!l,m,n)}),!0,null,"svg")}));b.actions.put("insertText",new Action(mxResources.get("text"),function(){f.isEnabled()&&!f.isCellLocked(f.getDefaultParent())&&f.startEditingAtCell(z("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))}),null,null,Editor.ctrlKey+"+Shift+X").isEnabled=g;b.actions.put("insertRectangle",new Action(mxResources.get("rectangle"),
+function(){f.isEnabled()&&!f.isCellLocked(f.getDefaultParent())&&z("",120,60,"whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+K").isEnabled=g;b.actions.put("insertEllipse",new Action(mxResources.get("ellipse"),function(){f.isEnabled()&&!f.isCellLocked(f.getDefaultParent())&&z("",80,80,"ellipse;whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;b.actions.put("insertRhombus",new Action(mxResources.get("rhombus"),function(){f.isEnabled()&&!f.isCellLocked(f.getDefaultParent())&&
+z("",80,80,"rhombus;whiteSpace=wrap;html=1;")})).isEnabled=g;var B=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):y(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(a,c){this.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - createShape insertFreehand - insertImage".split(" "),c);b.insertTemplateEnabled&&!b.isOffline()&&this.addMenuItems(a,["insertTemplate"],c);a.addSeparator(c);
+this.addSubmenu("insertLayout",a,c,mxResources.get("layout"));this.addSubmenu("insertAdvanced",a,c,mxResources.get("advanced"))})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){B(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){B(a,c,["fromText","plantUml","-","formatSql"]);a.addItem(mxResources.get("csv")+"...",null,function(){b.showImportCsvDialog()},
c,null,g())})));this.put("openRecent",new Menu(function(a,c){var d=b.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");a.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){b.loadFile(d.id)},c)})(d[e]);a.addSeparator(c)}a.addItem(mxResources.get("reset"),null,function(){b.resetRecent()},c)}));this.put("openFrom",new Menu(function(a,c){null!=b.drive?a.addItem(mxResources.get("googleDrive")+"...",
null,function(){b.pickFile(App.MODE_GOOGLE)},c):k&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){b.pickFile(App.MODE_ONEDRIVE)},c):n&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+
"...",null,function(){b.pickFile(App.MODE_DROPBOX)},c):l&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.pickFile(App.MODE_GITHUB)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.pickFile(App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){b.pickFile(App.MODE_TRELLO)},
@@ -9527,10 +9534,10 @@ c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.s
" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){b.pickLibrary(App.MODE_ONEDRIVE)},c):n&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+"...",null,function(){b.pickLibrary(App.MODE_DROPBOX)},c):l&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+
" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.pickLibrary(App.MODE_GITHUB)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.pickLibrary(App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){b.pickLibrary(App.MODE_TRELLO)},c):q&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+
"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.pickLibrary(App.MODE_BROWSER)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.pickLibrary(App.MODE_DEVICE)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+"...",null,function(){var a=new FilenameDialog(b,"",mxResources.get("open"),function(a){if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("loading"))){var c=
-a;b.editor.isCorsEnabledForUrl(a)||(c=PROXY_URL+"?url="+encodeURIComponent(a));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){b.spinner.stop();try{b.loadLibrary(new UrlLibrary(this,c.getText(),a))}catch(K){b.handleError(K,mxResources.get("errorLoadingFile"))}}else b.spinner.stop(),b.handleError(null,mxResources.get("errorLoadingFile"))},function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));b.showDialog(a.container,300,
-80,!0,!0);a.init()},c));"1"==urlParams.confLib&&(a.addSeparator(c),a.addItem(mxResources.get("confluenceCloud")+"...",null,function(){b.showRemotelyStoredLibrary(mxResources.get("libraries"))},c))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));f=b.actions.addAction("comments",
+a;b.editor.isCorsEnabledForUrl(a)||(c=PROXY_URL+"?url="+encodeURIComponent(a));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){b.spinner.stop();try{b.loadLibrary(new UrlLibrary(this,c.getText(),a))}catch(J){b.handleError(J,mxResources.get("errorLoadingFile"))}}else b.spinner.stop(),b.handleError(null,mxResources.get("errorLoadingFile"))},function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));b.showDialog(a.container,300,
+80,!0,!0);a.init()},c));"1"==urlParams.confLib&&(a.addSeparator(c),a.addItem(mxResources.get("confluenceCloud")+"...",null,function(){b.showRemotelyStoredLibrary(mxResources.get("libraries"))},c))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));e=b.actions.addAction("comments",
mxUtils.bind(this,function(){if(null==this.commentsWindow)this.commentsWindow=new CommentsWindow(b,document.body.offsetWidth-380,120,300,350),this.commentsWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("comments"));else{var a=!this.commentsWindow.window.isVisible();this.commentsWindow.window.setVisible(a);
-this.commentsWindow.refreshCommentsTime();a&&this.commentsWindow.hasError&&this.commentsWindow.refreshComments()}}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.commentsWindow&&this.commentsWindow.window.isVisible()}));b.editor.addListener("fileLoaded",mxUtils.bind(this,function(){null!=this.commentsWindow&&(this.commentsWindow.destroy(),this.commentsWindow=null)}));var f=this.get("viewPanels"),H=f.funct;f.funct=function(a,c){H.apply(this,arguments);
+this.commentsWindow.refreshCommentsTime();a&&this.commentsWindow.hasError&&this.commentsWindow.refreshComments()}}));e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.commentsWindow&&this.commentsWindow.window.isVisible()}));b.editor.addListener("fileLoaded",mxUtils.bind(this,function(){null!=this.commentsWindow&&(this.commentsWindow.destroy(),this.commentsWindow=null)}));var e=this.get("viewPanels"),G=e.funct;e.funct=function(a,c){G.apply(this,arguments);
b.commentsSupported()&&b.menus.addMenuItems(a,["comments"],c)};this.put("view",new Menu(mxUtils.bind(this,function(a,c){this.addMenuItems(a,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers"]).concat(b.commentsSupported()?["comments","-"]:["-"]));this.addMenuItems(a,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(a,"scratchpad",c);(!b.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000042367")}this.addMenuItems(a,
["shapes","-","pageView","pageScale"]);this.addSubmenu("units",a,c);this.addMenuItems(a,"- scrollbars tooltips ruler - grid guides".split(" "),c);mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(a,"shadowVisible",c);this.addMenuItems(a,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),c)})));this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&(this.addSubmenu("theme",a,c),a.addSeparator(c));if("undefined"!==
typeof MathJax){var d=this.addMenuItem(a,"mathematicalTypesetting",c);(!b.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}this.addMenuItems(a,["copyConnect","collapseExpand","-"],c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&this.addMenuItems(a,["showStartScreen"],c);"1"!=urlParams.embed&&this.addMenuItems(a,["autosave"],c);a.addSeparator(c);!b.isOfflineApp()&&isLocalStorage&&this.addMenuItem(a,
@@ -9543,8 +9550,8 @@ this.addLinkToItem(e,"https://desk.draw.io/support/solutions/articles/1600008794
EditorUi.isElectronApp)&&this.addLinkToItem(e,"https://desk.draw.io/support/solutions/articles/16000087947")),this.addMenuItems(a,["-","save","saveAs"],c),this.addMenuItems(a,["-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):(this.addMenuItems(a,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(a,["moveToFolder"],c)));a.addSeparator(c);this.addSubmenu("importFrom",a,c);this.addSubmenu("exportAs",a,c);a.addSeparator(c);
this.addSubmenu("embed",a,c);this.addSubmenu("publish",a,c);a.addSeparator(c);this.addSubmenu("newLibrary",a,c);this.addSubmenu("openLibraryFrom",a,c);b.isRevisionHistorySupported()&&this.addMenuItems(a,["-","revisionHistory"],c);this.addMenuItems(a,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(a,["print"],c);this.addMenuItems(a,["-","close"])}})));a.prototype.execute=function(){var a=this.ui.editor.graph;this.extFonts=this.previousExtFonts;for(var b=a.extFonts,c=0;null!=
b&&c<b.length;c++){var d=document.getElementById("extFont_"+b[c].name);null!=d&&d.parentNode.removeChild(d)}a.extFonts=[];for(c=0;c<this.previousExtFonts.length;c++)this.ui.editor.graph.addExtFont(this.previousExtFonts[c].name,this.previousExtFonts[c].url);this.previousExtFonts=b};this.put("fontFamily",new Menu(mxUtils.bind(this,function(b,c){for(var d=mxUtils.bind(this,function(a,d){var e=this.editorUi.editor.graph;this.styleChange(b,a,[mxConstants.STYLE_FONTFAMILY],[a],null,c,function(){document.execCommand("fontname",
-!1,a);e.addExtFont(a,d)},function(){e.updateLabelElements(e.getSelectionCells(),function(a){a.removeAttribute("face");a.style.fontFamily=null;"PRE"==a.nodeName&&e.replaceElement(a,"div")});e.addExtFont(a,d)}).firstChild.nextSibling.style.fontFamily=a}),e=0;e<this.defaultFonts.length;e++)d(this.defaultFonts[e]);b.addSeparator(c);var f=this.editorUi.editor.graph.extFonts;if(null!=f&&0<f.length){for(var k={},g=!1,e=0;e<this.customFonts.length;e++)k[this.customFonts[e].name]=!0;for(e=0;e<f.length;e++)k[f[e].name]||
-(this.customFonts.push(f[e]),g=!0);g&&this.editorUi.fireEvent(new mxEventObject("customFontsChanged"))}if(0<this.customFonts.length){for(e=0;e<this.customFonts.length;e++)f=this.customFonts[e].name,k=this.customFonts[e].url,d(f,k),this.editorUi.editor.graph.addExtFont(f,k,!0);b.addSeparator(c);b.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){var b=new a(this.editorUi,[]);this.editorUi.editor.graph.model.execute(b);this.customFonts=[];this.editorUi.fireEvent(new mxEventObject("customFontsChanged"))}),
+!1,a);e.addExtFont(a,d)},function(){e.updateLabelElements(e.getSelectionCells(),function(a){a.removeAttribute("face");a.style.fontFamily=null;"PRE"==a.nodeName&&e.replaceElement(a,"div")});e.addExtFont(a,d)}).firstChild.nextSibling.style.fontFamily=a}),e=0;e<this.defaultFonts.length;e++)d(this.defaultFonts[e]);b.addSeparator(c);var f=this.editorUi.editor.graph.extFonts;if(null!=f&&0<f.length){for(var g={},k=!1,e=0;e<this.customFonts.length;e++)g[this.customFonts[e].name]=!0;for(e=0;e<f.length;e++)g[f[e].name]||
+(this.customFonts.push(f[e]),k=!0);k&&this.editorUi.fireEvent(new mxEventObject("customFontsChanged"))}if(0<this.customFonts.length){for(e=0;e<this.customFonts.length;e++)f=this.customFonts[e].name,g=this.customFonts[e].url,d(f,g),this.editorUi.editor.graph.addExtFont(f,g,!0);b.addSeparator(c);b.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){var b=new a(this.editorUi,[]);this.editorUi.editor.graph.model.execute(b);this.customFonts=[];this.editorUi.fireEvent(new mxEventObject("customFontsChanged"))}),
c);b.addSeparator(c)}b.addItem(mxResources.get("custom")+"...",null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,b=mxConstants.DEFAULT_FONTFAMILY,c="s",d=null,e=a.getView().getState(a.getSelectionCell());null!=e&&(b=e.style[mxConstants.STYLE_FONTFAMILY]||b,c=e.style.FType||c,"w"==c&&(d=this.editorUi.editor.graph.extFonts,e=null,null!=d&&(e=d.find(function(a){return a.name==b})),d=null!=e?e.url:mxResources.get("urlNofFound",null,"URL not found"),0==d.indexOf(PROXY_URL)&&(d=decodeURIComponent(d.substr((PROXY_URL+
"?url=").length)))));c=new FontDialog(this.editorUi,b,d,c,mxUtils.bind(this,function(b,c,d){if(null!=b&&0<b.length){a.getModel().beginUpdate();try{a.stopEditing(!1);a.setCellStyles(mxConstants.STYLE_FONTFAMILY,b);"s"!=d&&(a.setCellStyles("FType",d),0==c.indexOf("http://")&&(c=PROXY_URL+"?url="+encodeURIComponent(c)),this.editorUi.editor.graph.addExtFont(b,c));d=!0;for(var e=0;e<this.customFonts.length;e++)if(this.customFonts[e].name==b){d=!1;break}d&&(this.customFonts.push({name:b,url:c}),this.editorUi.fireEvent(new mxEventObject("customFontsChanged")))}finally{a.getModel().endUpdate()}}}));
this.editorUi.showDialog(c.container,380,250,!0,!0);c.init()}),c,null,!0)})))}})();function DiagramPage(a,c){this.node=a;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
@@ -9553,42 +9560,42 @@ function MovePage(a,c,d){this.ui=a;this.oldIndex=c;this.newIndex=d}MovePage.prot
function SelectPage(a,c,d){this.ui=a;this.previousPage=this.page=c;this.neverShown=!0;null!=c&&(this.neverShown=null==c.viewState,this.ui.updatePageRoot(c),null!=d&&(c.viewState=d,this.neverShown=!1))}
SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,c=this.ui.editor,d=c.graph,b=Graph.compressNode(c.getGraphXml(!0));mxUtils.setTextContent(a.node,b);a.viewState=d.getViewState();a.root=d.model.root;null!=a.model&&a.model.rootChanged(a.root);d.view.clear(a.root,!0);d.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;d.model.prefix=Editor.guid()+"-";d.model.rootChanged(a.root);
d.setViewState(a.viewState);d.gridEnabled=d.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);c.updateGraphComponents();d.view.validate();d.blockMathRender=!0;d.sizeDidChange();d.blockMathRender=!1;this.neverShown&&(this.neverShown=!1,d.selectUnlockedLayer());c.graph.fireEvent(new mxEventObject(mxEvent.ROOT));c.fireEvent(new mxEventObject("pageSelected","change",this))}};
-function ChangePage(a,c,d,b,e){SelectPage.call(this,a,d);this.relatedPage=c;this.index=b;this.previousIndex=null;this.noSelect=e}mxUtils.extend(ChangePage,SelectPage);
+function ChangePage(a,c,d,b,f){SelectPage.call(this,a,d);this.relatedPage=c;this.index=b;this.previousIndex=null;this.noSelect=f}mxUtils.extend(ChangePage,SelectPage);
ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;this.noSelect||SelectPage.prototype.execute.apply(this,arguments)};EditorUi.prototype.tabContainerHeight=38;
EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var c=0;c<this.pages.length;c++)if(this.pages[c]==this.currentPage){a=c;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var c=0;c<this.pages.length;c++)if(this.pages[c].getId()==a)return this.pages[c];return null};
EditorUi.prototype.initPages=function(){if(!this.editor.graph.standalone){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,c=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var b=this.tabContainer.style.height;
this.tabContainer.style.height=null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":this.tabContainerHeight+"px";b!=this.tabContainer.style.height&&this.refresh(!1)}c.apply(a.view,arguments)});var d=null,b=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=d&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,
a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),d=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):
-"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){for(var d=c.getProperty("edit").changes,e=0;e<d.length;e++)if(d[e]instanceof SelectPage||d[e]instanceof RenamePage||d[e]instanceof MovePage||d[e]instanceof mxRootChange){b();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
+"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){for(var d=c.getProperty("edit").changes,f=0;f<d.length;f++)if(d[f]instanceof SelectPage||d[f]instanceof RenamePage||d[f]instanceof MovePage||d[f]instanceof mxRootChange){b();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
EditorUi.prototype.restoreViewState=function(a,c,d){a=null!=a?this.getPageById(a.getId()):null;var b=this.editor.graph;null!=a&&null!=this.currentPage&&null!=this.pages&&(a!=this.currentPage?this.selectPage(a,!0,c):(b.setViewState(c),this.editor.updateGraphComponents(),b.view.revalidate(),b.sizeDidChange()),b.container.scrollLeft=b.view.translate.x*b.view.scale+c.scrollLeft,b.container.scrollTop=b.view.translate.y*b.view.scale+c.scrollTop,b.restoreSelection(d))};
-Graph.prototype.createViewState=function(a){var c=a.getAttribute("page"),d=parseFloat(a.getAttribute("pageScale")),b=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight")),g=a.getAttribute("background"),k=a.getAttribute("backgroundImage"),k=null!=k&&0<k.length?JSON.parse(k):null,l=a.getAttribute("extFonts");if(l)try{l=l.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}})}catch(n){console.log("ExtFonts format error: "+n.message)}return{gridEnabled:"0"!=
-a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=c?"0"!=c:this.defaultPageVisible,background:null!=g&&0<g.length?g:null,backgroundImage:null!=k?new mxImage(k.src,k.width,k.height):null,pageScale:isNaN(d)?mxGraph.prototype.pageScale:d,pageFormat:isNaN(b)||isNaN(e)?"undefined"===
-typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat():new mxRectangle(0,0,b,e),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,extFonts:l||[]}};
+Graph.prototype.createViewState=function(a){var c=a.getAttribute("page"),d=parseFloat(a.getAttribute("pageScale")),b=parseFloat(a.getAttribute("pageWidth")),f=parseFloat(a.getAttribute("pageHeight")),g=a.getAttribute("background"),k=a.getAttribute("backgroundImage"),k=null!=k&&0<k.length?JSON.parse(k):null,l=a.getAttribute("extFonts");if(l)try{l=l.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}})}catch(n){console.log("ExtFonts format error: "+n.message)}return{gridEnabled:"0"!=
+a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=c?"0"!=c:this.defaultPageVisible,background:null!=g&&0<g.length?g:null,backgroundImage:null!=k?new mxImage(k.src,k.width,k.height):null,pageScale:isNaN(d)?mxGraph.prototype.pageScale:d,pageFormat:isNaN(b)||isNaN(f)?"undefined"===
+typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat():new mxRectangle(0,0,b,f),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,extFonts:l||[]}};
Graph.prototype.saveViewState=function(a,c,d){d||(c.setAttribute("grid",null==a||a.gridEnabled?"1":"0"),c.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize),c.setAttribute("guides",null==a||a.guidesEnabled?"1":"0"),c.setAttribute("tooltips",null==a||a.tooltips?"1":"0"),c.setAttribute("connect",null==a||a.connect?"1":"0"),c.setAttribute("arrows",null==a||a.arrows?"1":"0"),c.setAttribute("page",null==a&&this.defaultPageVisible||null!=a&&a.pageVisible?"1":"0"),c.setAttribute("fold",
null==a||a.foldingEnabled?"1":"0"));c.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);d=null!=a?a.pageFormat:"undefined"===typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat();null!=d&&(c.setAttribute("pageWidth",d.width),c.setAttribute("pageHeight",d.height));null!=a&&null!=a.background&&c.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));c.setAttribute("math",
null!=a&&a.mathEnabled?"1":"0");c.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0");null!=a&&null!=a.extFonts&&0<a.extFonts.length&&c.setAttribute("extFonts",a.extFonts.map(function(a){return a.name+"^"+a.url}).join("|"))};
Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(),
arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled,extFonts:this.extFonts}};
Graph.prototype.setViewState=function(a,c){if(null!=a){this.lastPasteXml=a.lastPasteXml;this.pasteCounter=a.pasteCounter||0;this.mathEnabled=a.mathEnabled;this.gridEnabled=a.gridEnabled;this.gridSize=a.gridSize;this.graphHandler.guidesEnabled=a.guidesEnabled;this.foldingEnabled=a.foldingEnabled;this.setShadowVisible(a.shadowVisible,!1);this.scrollbars=a.scrollbars;this.pageVisible=!this.isViewer()&&a.pageVisible;this.background=a.background;this.backgroundImage=a.backgroundImage;this.pageScale=a.pageScale;
-this.pageFormat=a.pageFormat;this.view.currentRoot=a.currentRoot;this.defaultParent=a.defaultParent;this.connectionArrowsEnabled=a.arrows;this.setTooltips(a.tooltips);this.setConnectable(a.connect);var d=this.extFonts;this.extFonts=a.extFonts||[];if(c&&null!=d)for(var b=0;b<d.length;b++){var e=document.getElementById("extFont_"+d[b].name);null!=e&&e.parentNode.removeChild(e)}for(b=0;b<this.extFonts.length;b++)this.addExtFont(this.extFonts[b].name,this.extFonts[b].url,!0);this.view.scale=null!=a.scale?
+this.pageFormat=a.pageFormat;this.view.currentRoot=a.currentRoot;this.defaultParent=a.defaultParent;this.connectionArrowsEnabled=a.arrows;this.setTooltips(a.tooltips);this.setConnectable(a.connect);var d=this.extFonts;this.extFonts=a.extFonts||[];if(c&&null!=d)for(var b=0;b<d.length;b++){var f=document.getElementById("extFont_"+d[b].name);null!=f&&f.parentNode.removeChild(f)}for(b=0;b<this.extFonts.length;b++)this.addExtFont(this.extFonts[b].name,this.extFonts[b].url,!0);this.view.scale=null!=a.scale?
a.scale:1;null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null);null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer());null!=a.translate&&(this.view.translate=a.translate)}else this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=!0,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat="undefined"===typeof mxSettings?mxGraph.prototype.pageFormat:
mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.backgroundImage=this.background=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml=null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0,this.extFonts=[];this.preferPageSize=this.pageBreaksVisible=this.pageVisible;this.fireEvent(new mxEventObject("viewStateChanged",
"state",a))};
-Graph.prototype.addExtFont=function(a,c,d){if(a&&c){var b="extFont_"+a;if(null==document.getElementById(b))if(0==c.indexOf(Editor.GOOGLE_FONTS))mxClient.link("stylesheet",c,null,b);else{document.getElementsByTagName("head");var e=document.createElement("style");e.appendChild(document.createTextNode('@font-face {\n\tfont-family: "'+a+'";\n\tsrc: url("'+c+'");\n}'));e.setAttribute("id",b);document.getElementsByTagName("head")[0].appendChild(e)}if(!d){null==this.extFonts&&(this.extFonts=[]);d=this.extFonts;
-b=!0;for(e=0;e<d.length;e++)if(d[e].name==a){b=!1;break}b&&this.extFonts.push({name:a,url:c})}}};
+Graph.prototype.addExtFont=function(a,c,d){if(a&&c){var b="extFont_"+a;if(null==document.getElementById(b))if(0==c.indexOf(Editor.GOOGLE_FONTS))mxClient.link("stylesheet",c,null,b);else{document.getElementsByTagName("head");var f=document.createElement("style");f.appendChild(document.createTextNode('@font-face {\n\tfont-family: "'+a+'";\n\tsrc: url("'+c+'");\n}'));f.setAttribute("id",b);document.getElementsByTagName("head")[0].appendChild(f)}if(!d){null==this.extFonts&&(this.extFonts=[]);d=this.extFonts;
+b=!0;for(f=0;f<d.length;f++)if(d[f].name==a){b=!1;break}b&&this.extFonts.push({name:a,url:c})}}};
EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var c=this.editor.extractGraphModel(a.node),d=Editor.extractParserError(c);if(d)throw Error(d);null!=c?(a.graphModelNode=c,a.viewState=this.editor.graph.createViewState(c),d=new mxCodec(c.ownerDocument),a.root=d.decode(c).root):a.root=this.editor.graph.model.createRoot()}else if(null==a.viewState){if(null==a.graphModelNode){c=this.editor.extractGraphModel(a.node);if(d=Editor.extractParserError(c))throw Error(d);null!=c&&(a.graphModelNode=
c)}null!=a.graphModelNode&&(a.viewState=this.editor.graph.createViewState(a.graphModelNode))}return a};
-EditorUi.prototype.selectPage=function(a,c,d){try{if(a!=this.currentPage){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c=null!=c?c:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var b=this.editor.graph.model.createUndoableEdit();b.ignoreEdit=!0;var e=new SelectPage(this,a,d);e.execute();b.add(e);b.notify();this.editor.graph.tooltipHandler.hide();c||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",b))}}catch(g){this.handleError(g)}};
+EditorUi.prototype.selectPage=function(a,c,d){try{if(a!=this.currentPage){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c=null!=c?c:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var b=this.editor.graph.model.createUndoableEdit();b.ignoreEdit=!0;var f=new SelectPage(this,a,d);f.execute();b.add(f);b.notify();this.editor.graph.tooltipHandler.hide();c||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",b))}}catch(g){this.handleError(g)}};
EditorUi.prototype.selectNextPage=function(a){var c=this.currentPage;null!=c&&null!=this.pages&&(c=mxUtils.indexOf(this.pages,c),a?this.selectPage(this.pages[mxUtils.mod(c+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(c-1,this.pages.length)]))};
EditorUi.prototype.insertPage=function(a,c){if(this.editor.graph.isEnabled()){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);a=null!=a?a:this.createPage(null,this.createPageId());c=null!=c?c:this.pages.length;var d=new ChangePage(this,a,a,c);this.editor.graph.model.execute(d)}return a};EditorUi.prototype.createPageId=function(){var a;do a=Editor.guid();while(null!=this.getPageById(a));return a};
EditorUi.prototype.createPage=function(a,c){var d=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"),c);d.setName(null!=a?a:this.createPageName());return d};EditorUi.prototype.createPageName=function(){for(var a={},c=0;c<this.pages.length;c++){var d=this.pages[c].getName();null!=d&&0<d.length&&(a[d]=d)}c=this.pages.length;do d=mxResources.get("pageWithNumber",[++c]);while(null!=a[d]);return d};
-EditorUi.prototype.removePage=function(a){try{var c=this.editor.graph,d=mxUtils.indexOf(this.pages,a);if(c.isEnabled()&&0<=d){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c.model.beginUpdate();try{var b=this.currentPage;b==a&&1<this.pages.length?(d==this.pages.length-1?d--:d++,b=this.pages[d]):1>=this.pages.length&&(b=this.insertPage(),c.model.execute(new RenamePage(this,b,mxResources.get("pageWithNumber",[1]))));c.model.execute(new ChangePage(this,a,b))}finally{c.model.endUpdate()}}}catch(e){this.handleError(e)}return a};
-EditorUi.prototype.duplicatePage=function(a,c){var d=null;try{var b=this.editor.graph;if(b.isEnabled()){b.isEditing()&&b.stopEditing();var e=a.node.cloneNode(!1);e.removeAttribute("id");d=new DiagramPage(e);d.root=b.cloneCell(b.model.root);d.viewState=b.getViewState();d.viewState.scale=1;d.viewState.scrollLeft=null;d.viewState.scrollTop=null;d.viewState.currentRoot=null;d.viewState.defaultParent=null;d.setName(c);d=this.insertPage(d,mxUtils.indexOf(this.pages,a)+1)}}catch(g){this.handleError(g)}return d};
+EditorUi.prototype.removePage=function(a){try{var c=this.editor.graph,d=mxUtils.indexOf(this.pages,a);if(c.isEnabled()&&0<=d){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c.model.beginUpdate();try{var b=this.currentPage;b==a&&1<this.pages.length?(d==this.pages.length-1?d--:d++,b=this.pages[d]):1>=this.pages.length&&(b=this.insertPage(),c.model.execute(new RenamePage(this,b,mxResources.get("pageWithNumber",[1]))));c.model.execute(new ChangePage(this,a,b))}finally{c.model.endUpdate()}}}catch(f){this.handleError(f)}return a};
+EditorUi.prototype.duplicatePage=function(a,c){var d=null;try{var b=this.editor.graph;if(b.isEnabled()){b.isEditing()&&b.stopEditing();var f=a.node.cloneNode(!1);f.removeAttribute("id");d=new DiagramPage(f);d.root=b.cloneCell(b.model.root);d.viewState=b.getViewState();d.viewState.scale=1;d.viewState.scrollLeft=null;d.viewState.scrollTop=null;d.viewState.currentRoot=null;d.viewState.defaultParent=null;d.setName(c);d=this.insertPage(d,mxUtils.indexOf(this.pages,a)+1)}}catch(g){this.handleError(g)}return d};
EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var c=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&this.editor.graph.model.execute(new RenamePage(this,a,c))}),mxResources.get("rename"));this.showDialog(c.container,300,80,!0,!0);c.init()}return a};EditorUi.prototype.movePage=function(a,c){this.editor.graph.model.execute(new MovePage(this,a,c))};
EditorUi.prototype.createTabContainer=function(){var a=document.createElement("div");a.className="geTabContainer";a.style.position="absolute";a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.height="0px";return a};
EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,c=document.createElement("div");c.style.position="relative";c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";c.style.verticalAlign="top";c.style.height=this.tabContainer.style.height;c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.fontSize="13px";c.style.marginLeft="30px";for(var d=this.editor.isChromelessView()?29:59,b=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
-d)/this.pages.length)+1),e=null,g=0;g<this.pages.length;g++)mxUtils.bind(this,function(b,d){this.pages[b]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#fff"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(c){a.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),e=b):mxEvent.consume(c)}));mxEvent.addListener(d,"dragend",mxUtils.bind(this,function(a){e=
-null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=e&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=e&&b!=e&&this.movePage(e,b);a.stopPropagation();a.preventDefault()}));c.appendChild(d)})(g,this.createTabForPage(this.pages[g],b,this.pages[g]!=this.currentPage,g+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(c);b=this.createPageMenuTab();
+d)/this.pages.length)+1),f=null,g=0;g<this.pages.length;g++)mxUtils.bind(this,function(b,d){this.pages[b]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#fff"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(c){a.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),f=b):mxEvent.consume(c)}));mxEvent.addListener(d,"dragend",mxUtils.bind(this,function(a){f=
+null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=f&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=f&&b!=f&&this.movePage(f,b);a.stopPropagation();a.preventDefault()}));c.appendChild(d)})(g,this.createTabForPage(this.pages[g],b,this.pages[g]!=this.currentPage,g+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(c);b=this.createPageMenuTab();
this.tabContainer.appendChild(b);b=null;this.isPageInsertTabVisible()&&(b=this.createPageInsertTab(),this.tabContainer.appendChild(b));if(c.clientWidth>this.tabContainer.clientWidth-d){null!=b&&(b.style.position="absolute",b.style.right="0px",c.style.marginRight="30px");var k=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");k.style.position="absolute";k.style.right=this.editor.chromeless?"29px":"55px";k.style.fontSize="13pt";this.tabContainer.appendChild(k);var l=this.createControlTab(4,"&nbsp;&#10095;");
l.style.position="absolute";l.style.right=this.editor.chromeless?"0px":"29px";l.style.fontSize="13pt";this.tabContainer.appendChild(l);var n=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));c.style.width=n+"px";mxEvent.addListener(k,"click",mxUtils.bind(this,function(a){c.scrollLeft-=Math.max(20,n-20);mxUtils.setOpacity(k,0<c.scrollLeft?100:50);mxUtils.setOpacity(l,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(k,0<c.scrollLeft?100:
50);mxUtils.setOpacity(l,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.addListener(l,"click",mxUtils.bind(this,function(a){c.scrollLeft+=Math.max(20,n-20);mxUtils.setOpacity(k,0<c.scrollLeft?100:50);mxUtils.setOpacity(l,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
@@ -9598,68 +9605,69 @@ EditorUi.prototype.createControlTab=function(a,c){var d=this.createTab(!0);d.sty
EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;margin-top:5px;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.marginLeft="0px";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var c=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var c=
0;c<this.pages.length;c++)mxUtils.bind(this,function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[c])}),b);this.pages[c]==this.currentPage&&a.addCheckmark(d,Editor.checkmarkImage)})(c);if(this.editor.graph.isEnabled()){a.addSeparator(b);a.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),b);var d=this.currentPage;null!=d&&(a.addSeparator(b),a.addItem(mxResources.get("delete"),null,mxUtils.bind(this,
function(){this.removePage(d)}),b),a.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(d,d.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(d,mxResources.get("copyOf",[d.getName()]))}),b))}}));c.div.className+=" geMenubarMenu";c.smartSeparators=!0;c.showDisabled=!0;c.autoExpand=!0;c.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(c,arguments);c.destroy()});var b=
-mxEvent.getClientX(a),e=mxEvent.getClientY(a);c.popup(b,e,null,a);this.setCurrentMenu(c);mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
-EditorUi.prototype.createTabForPage=function(a,c,d,b){d=this.createTab(d);var e=a.getName()||mxResources.get("untitled"),g=a.getId();d.setAttribute("title",e+(null!=g?" ("+g+")":"")+" ["+b+"]");mxUtils.write(d,e);d.style.maxWidth=c+"px";d.style.width=c+"px";this.addTabListeners(a,d);42<c&&(d.style.textOverflow="ellipsis");return d};
-EditorUi.prototype.addTabListeners=function(a,c){mxEvent.disableContextMenu(c);var d=this.editor.graph;mxEvent.addListener(c,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var b=!1,e=!1;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(c){b=null!=this.currentMenu;e=a==this.currentPage;d.isMouseDown||e||this.selectPage(a)}),null,mxUtils.bind(this,function(g){if(d.isEnabled()&&!d.isMouseDown&&(mxEvent.isTouchEvent(g)&&e||mxEvent.isPopupTrigger(g))){d.popupMenuHandler.hideMenu();
+mxEvent.getClientX(a),f=mxEvent.getClientY(a);c.popup(b,f,null,a);this.setCurrentMenu(c);mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
+EditorUi.prototype.createTabForPage=function(a,c,d,b){d=this.createTab(d);var f=a.getName()||mxResources.get("untitled"),g=a.getId();d.setAttribute("title",f+(null!=g?" ("+g+")":"")+" ["+b+"]");mxUtils.write(d,f);d.style.maxWidth=c+"px";d.style.width=c+"px";this.addTabListeners(a,d);42<c&&(d.style.textOverflow="ellipsis");return d};
+EditorUi.prototype.addTabListeners=function(a,c){mxEvent.disableContextMenu(c);var d=this.editor.graph;mxEvent.addListener(c,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var b=!1,f=!1;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(c){b=null!=this.currentMenu;f=a==this.currentPage;d.isMouseDown||f||this.selectPage(a)}),null,mxUtils.bind(this,function(g){if(d.isEnabled()&&!d.isMouseDown&&(mxEvent.isTouchEvent(g)&&f||mxEvent.isPopupTrigger(g))){d.popupMenuHandler.hideMenu();
this.hideCurrentMenu();if(!mxEvent.isTouchEvent(g)||!b){var k=new mxPopupMenu(this.createPageMenu(a));k.div.className+=" geMenubarMenu";k.smartSeparators=!0;k.showDisabled=!0;k.autoExpand=!0;k.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(k,arguments);this.resetCurrentMenu();k.destroy()});var l=mxEvent.getClientX(g),n=mxEvent.getClientY(g);k.popup(l,n,null,g);this.setCurrentMenu(k,c)}mxEvent.consume(g)}}))};
EditorUi.prototype.getLinkForPage=function(a){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var c=this.getCurrentFile();if(null!=c&&c.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var d=this.getSearch("create title mode url drive splash state".split(" ")),d=d+((0==d.length?"?":"&")+"page-id="+a.getId());return window.location.protocol+"//"+window.location.host+"/"+d+"#"+c.getHash()}}return null};
-EditorUi.prototype.createPageMenu=function(a,c){return mxUtils.bind(this,function(d,b){d.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),b);d.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),b);d.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,c)}),b);var e=this.getLinkForPage(a);null!=e&&(d.addSeparator(b),d.addItem(mxResources.get("link"),null,
-mxUtils.bind(this,function(){var a=new EmbedDialog(this,e);this.showDialog(a.container,440,240,!0,!0);a.init()}),b));d.addSeparator(b);d.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),b)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(c){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();
-(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){a=b.oldIndex;b.oldIndex=b.newIndex;b.newIndex=a;return b};mxCodecRegistry.register(a)})();(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){a=b.previous;b.previous=b.name;b.name=a;return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),c="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,b,e){e.setAttribute("relatedPage",b.relatedPage.getId());null==b.index&&(e.setAttribute("name",b.relatedPage.getName()),null!=b.relatedPage.viewState&&e.setAttribute("viewState",JSON.stringify(b.relatedPage.viewState,function(a,b){return 0>mxUtils.indexOf(c,
-a)?b:void 0})),null!=b.relatedPage.root&&a.encodeCell(b.relatedPage.root,e));return e};a.beforeDecode=function(a,b,c){c.ui=a.ui;c.relatedPage=c.ui.getPageById(b.getAttribute("relatedPage"));if(null==c.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));c.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(c.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
-b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(c.relatedPage.root=a.decodeCell(d,!1),c=d.nextSibling,d.parentNode.removeChild(d),d=c;null!=d;){c=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=c}}return b};a.afterDecode=function(a,b,c){c.index=c.previousIndex;return c};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]=
-"selectDescendants";var c=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,b,d,l,n){b=null!=b?b:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var e=d.slice(),f=[],k=0;k<d.length;k++){var g=this.view.getState(d[k]),u=null!=g?g.style:this.getCellStyle(d[k]);"1"==mxUtils.getValue(u,"treeFolding","0")&&(this.traverse(d[k],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=d[k]&&f.push(a);return a==d[k]||!this.model.isCollapsed(a)})),
-this.model.setCollapsed(d[k],a))}for(k=0;k<f.length;k++)this.model.setVisible(f[k],!a);d=e;d=c.apply(this,arguments)}finally{this.model.endUpdate()}return d};var d=EditorUi.prototype.init;EditorUi.prototype.init=function(){d.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return z.isVertex(a)&&d(a)}function c(a){var b=!1;null!=a&&(b=t.view.getState(a),b="1"==(null!=b?b.style:t.getCellStyle(a)).treeMoving);
-return b}function d(a){var b=!1;null!=a&&(a=z.getParent(a),b=t.view.getState(a),b="tree"==(null!=b?b.style:t.getCellStyle(a)).containerType);return b}function l(a){var b=!1;null!=a&&(a=z.getParent(a),b=t.view.getState(a),t.view.getState(a),b=null!=(null!=b?b.style:t.getCellStyle(a)).childLayout);return b}function n(a){a=t.view.getState(a);if(null!=a){var b=t.getIncomingEdges(a.cell);if(0<b.length&&(b=t.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==
-a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function q(a,b){b=null!=b?b:!0;t.model.beginUpdate();try{var c=t.model.getParent(a),d=t.getIncomingEdges(a),e=t.cloneCells([d[0],a]);t.model.setTerminal(e[0],t.model.getTerminal(d[0],!0),!0);var f=n(a),k=c.geometry;f==mxConstants.DIRECTION_SOUTH||
-f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;t.view.currentRoot!=c&&(e[1].geometry.x-=k.x,e[1].geometry.y-=k.y);var g=t.view.getState(a),l=t.view.scale;if(null!=g){var m=mxRectangle.fromRectangle(g);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?m.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:m.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var p=t.getOutgoingEdges(t.model.getTerminal(d[0],
-!0));if(null!=p){for(var q=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,u=k=d=0;u<p.length;u++){var y=t.model.getTerminal(p[u],!1);if(f==n(y)){var v=t.view.getState(y);y!=a&&null!=v&&(q&&b!=v.getCenterX()<g.getCenterX()||!q&&b!=v.getCenterY()<g.getCenterY())&&mxUtils.intersects(m,v)&&(d=10+Math.max(d,(Math.min(m.x+m.width,v.x+v.width)-Math.max(m.x,v.x))/l),k=10+Math.max(k,(Math.min(m.y+m.height,v.y+v.height)-Math.max(m.y,v.y))/l))}}q?k=0:d=0;for(u=0;u<p.length;u++)if(y=t.model.getTerminal(p[u],
-!1),f==n(y)&&(v=t.view.getState(y),y!=a&&null!=v&&(q&&b!=v.getCenterX()<g.getCenterX()||!q&&b!=v.getCenterY()<g.getCenterY()))){var x=[];t.traverse(v.cell,!0,function(a,b){null!=b&&x.push(b);x.push(a);return!0});t.moveCells(x,(b?1:-1)*d,(b?1:-1)*k)}}}return t.addCells(e,c)}finally{t.model.endUpdate()}}function f(a){t.model.beginUpdate();try{var b=n(a),c=t.getIncomingEdges(a),d=t.cloneCells([c[0],a]);t.model.setTerminal(c[0],d[1],!1);t.model.setTerminal(d[0],d[1],!0);t.model.setTerminal(d[0],a,!1);
-var e=t.model.getParent(a),f=e.geometry,k=[];t.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);t.traverse(a,!0,function(a,b){null!=b&&k.push(b);k.push(a);return!0});var g=a.geometry.width+40,l=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?g=0:b==mxConstants.DIRECTION_NORTH?(g=0,l=-l):b==mxConstants.DIRECTION_WEST?(g=-g,l=0):b==mxConstants.DIRECTION_EAST&&(l=0);t.moveCells(k,g,l);return t.addCells(d,e)}finally{t.model.endUpdate()}}function m(a){t.model.beginUpdate();try{var b=
-t.model.getParent(a),c=t.getIncomingEdges(a),d=t.cloneCells([c[0],a]);t.model.setTerminal(d[0],a,!0);var c=t.getOutgoingEdges(a),e=b.geometry,f=[];t.view.currentRoot==b&&(e=new mxRectangle);for(var k=0;k<c.length;k++){var g=t.model.getTerminal(c[k],!1);null!=g&&f.push(g)}var l=t.view.getBounds(f),m=n(a),p=t.view.translate,q=t.view.scale;m==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/q-p.x-e.x+10,d[1].geometry.y+=d[1].geometry.height-
+EditorUi.prototype.createPageMenu=function(a,c){return mxUtils.bind(this,function(d,b){d.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),b);d.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),b);d.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,c)}),b);var f=this.getLinkForPage(a);null!=f&&(d.addSeparator(b),d.addItem(mxResources.get("link"),null,
+mxUtils.bind(this,function(){var a=new EmbedDialog(this,f);this.showDialog(a.container,440,240,!0,!0);a.init()}),b));d.addSeparator(b);d.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(d.addSeparator(b),d.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,
+null,null,!0,!0))}),b))})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(c){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){a=b.oldIndex;b.oldIndex=b.newIndex;b.newIndex=a;return b};mxCodecRegistry.register(a)})();
+(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){a=b.previous;b.previous=b.name;b.name=a;return b};mxCodecRegistry.register(a)})();
+(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),c="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,b,f){f.setAttribute("relatedPage",b.relatedPage.getId());null==b.index&&(f.setAttribute("name",b.relatedPage.getName()),null!=b.relatedPage.viewState&&f.setAttribute("viewState",JSON.stringify(b.relatedPage.viewState,function(a,b){return 0>mxUtils.indexOf(c,
+a)?b:void 0})),null!=b.relatedPage.root&&a.encodeCell(b.relatedPage.root,f));return f};a.beforeDecode=function(a,b,c){c.ui=a.ui;c.relatedPage=c.ui.getPageById(b.getAttribute("relatedPage"));if(null==c.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));c.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(c.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
+b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(c.relatedPage.root=a.decodeCell(d,!1),c=d.nextSibling,d.parentNode.removeChild(d),d=c;null!=d;){c=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var f=d.getAttribute("id");null==a.lookup(f)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=c}}return b};a.afterDecode=function(a,b,c){c.index=c.previousIndex;return c};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]=
+"selectDescendants";var c=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,b,d,l,n){b=null!=b?b:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var f=d.slice(),e=[],g=0;g<d.length;g++){var k=this.view.getState(d[g]),u=null!=k?k.style:this.getCellStyle(d[g]);"1"==mxUtils.getValue(u,"treeFolding","0")&&(this.traverse(d[g],!0,mxUtils.bind(this,function(a,b){null!=b&&e.push(b);a!=d[g]&&e.push(a);return a==d[g]||!this.model.isCollapsed(a)})),
+this.model.setCollapsed(d[g],a))}for(g=0;g<e.length;g++)this.model.setVisible(e[g],!a);d=f;d=c.apply(this,arguments)}finally{this.model.endUpdate()}return d};var d=EditorUi.prototype.init;EditorUi.prototype.init=function(){d.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return y.isVertex(a)&&d(a)}function c(a){var b=!1;null!=a&&(b=t.view.getState(a),b="1"==(null!=b?b.style:t.getCellStyle(a)).treeMoving);
+return b}function d(a){var b=!1;null!=a&&(a=y.getParent(a),b=t.view.getState(a),b="tree"==(null!=b?b.style:t.getCellStyle(a)).containerType);return b}function l(a){var b=!1;null!=a&&(a=y.getParent(a),b=t.view.getState(a),t.view.getState(a),b=null!=(null!=b?b.style:t.getCellStyle(a)).childLayout);return b}function n(a){a=t.view.getState(a);if(null!=a){var b=t.getIncomingEdges(a.cell);if(0<b.length&&(b=t.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==
+a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function q(a,b){b=null!=b?b:!0;t.model.beginUpdate();try{var c=t.model.getParent(a),d=t.getIncomingEdges(a),e=t.cloneCells([d[0],a]);t.model.setTerminal(e[0],t.model.getTerminal(d[0],!0),!0);var f=n(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||
+f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;t.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=t.view.getState(a),l=t.view.scale;if(null!=k){var m=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?m.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:m.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var p=t.getOutgoingEdges(t.model.getTerminal(d[0],
+!0));if(null!=p){for(var q=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,u=g=d=0;u<p.length;u++){var x=t.model.getTerminal(p[u],!1);if(f==n(x)){var v=t.view.getState(x);x!=a&&null!=v&&(q&&b!=v.getCenterX()<k.getCenterX()||!q&&b!=v.getCenterY()<k.getCenterY())&&mxUtils.intersects(m,v)&&(d=10+Math.max(d,(Math.min(m.x+m.width,v.x+v.width)-Math.max(m.x,v.x))/l),g=10+Math.max(g,(Math.min(m.y+m.height,v.y+v.height)-Math.max(m.y,v.y))/l))}}q?g=0:d=0;for(u=0;u<p.length;u++)if(x=t.model.getTerminal(p[u],
+!1),f==n(x)&&(v=t.view.getState(x),x!=a&&null!=v&&(q&&b!=v.getCenterX()<k.getCenterX()||!q&&b!=v.getCenterY()<k.getCenterY()))){var y=[];t.traverse(v.cell,!0,function(a,b){null!=b&&y.push(b);y.push(a);return!0});t.moveCells(y,(b?1:-1)*d,(b?1:-1)*g)}}}return t.addCells(e,c)}finally{t.model.endUpdate()}}function e(a){t.model.beginUpdate();try{var b=n(a),c=t.getIncomingEdges(a),d=t.cloneCells([c[0],a]);t.model.setTerminal(c[0],d[1],!1);t.model.setTerminal(d[0],d[1],!0);t.model.setTerminal(d[0],a,!1);
+var e=t.model.getParent(a),f=e.geometry,g=[];t.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);t.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var k=a.geometry.width+40,l=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?(k=0,l=-l):b==mxConstants.DIRECTION_WEST?(k=-k,l=0):b==mxConstants.DIRECTION_EAST&&(l=0);t.moveCells(g,k,l);return t.addCells(d,e)}finally{t.model.endUpdate()}}function m(a){t.model.beginUpdate();try{var b=
+t.model.getParent(a),c=t.getIncomingEdges(a),d=t.cloneCells([c[0],a]);t.model.setTerminal(d[0],a,!0);var c=t.getOutgoingEdges(a),e=b.geometry,f=[];t.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var k=t.model.getTerminal(c[g],!1);null!=k&&f.push(k)}var l=t.view.getBounds(f),m=n(a),p=t.view.translate,q=t.view.scale;m==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/q-p.x-e.x+10,d[1].geometry.y+=d[1].geometry.height-
e.y+40):m==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/q-p.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height+e.y+40):(d[1].geometry.x=m==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width+e.x+40):d[1].geometry.x+(d[1].geometry.width-e.x+40),d[1].geometry.y=null==l?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(l.y+l.height)/q-p.y+-e.y+10);return t.addCells(d,b)}finally{t.model.endUpdate()}}function p(a,
b,c){a=t.getOutgoingEdges(a);c=t.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=t.view.getState(t.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function u(a,b){var c=n(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||
-c==mxConstants.DIRECTION_WEST)==d&&c!=b?v.actions.get("selectParent").funct():c==b?(d=t.getOutgoingEdges(a),null!=d&&0<d.length&&t.setSelectionCell(t.model.getTerminal(d[0],!1))):(c=t.getIncomingEdges(a),null!=c&&0<c.length&&(d=p(t.model.getTerminal(c[0],!0),d,a),c=t.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&t.setSelectionCell(d[c].cell)))))}var v=this,t=v.editor.graph,z=t.getModel(),x=v.menus.createPopupMenu;
-v.menus.createPopupMenu=function(a,c,d){x.apply(this,arguments);if(1==t.getSelectionCount()){c=t.getSelectionCell();var e=t.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(t.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(t.getSelectionCell())&&(a.addSeparator(),0<t.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};v.actions.addAction("selectChildren",function(){if(t.isEnabled()&&
+c==mxConstants.DIRECTION_WEST)==d&&c!=b?v.actions.get("selectParent").funct():c==b?(d=t.getOutgoingEdges(a),null!=d&&0<d.length&&t.setSelectionCell(t.model.getTerminal(d[0],!1))):(c=t.getIncomingEdges(a),null!=c&&0<c.length&&(d=p(t.model.getTerminal(c[0],!0),d,a),c=t.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&t.setSelectionCell(d[c].cell)))))}var v=this,t=v.editor.graph,y=t.getModel(),z=v.menus.createPopupMenu;
+v.menus.createPopupMenu=function(a,c,d){z.apply(this,arguments);if(1==t.getSelectionCount()){c=t.getSelectionCell();var e=t.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(t.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(t.getSelectionCell())&&(a.addSeparator(),0<t.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};v.actions.addAction("selectChildren",function(){if(t.isEnabled()&&
1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(t.model.getTerminal(a[c],!1));t.setSelectionCells(b)}}},null,null,"Alt+Shift+X");v.actions.addAction("selectSiblings",function(){if(t.isEnabled()&&1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=t.getOutgoingEdges(t.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(t.model.getTerminal(a[c],
!1));t.setSelectionCells(b)}}},null,null,"Alt+Shift+S");v.actions.addAction("selectParent",function(){if(t.isEnabled()&&1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getIncomingEdges(a);null!=a&&0<a.length&&t.setSelectionCell(t.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");v.actions.addAction("selectDescendants",function(){if(t.isEnabled()&&1==t.getSelectionCount()){var a=t.getSelectionCell(),b=[];t.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});t.setSelectionCells(b)}},
-null,null,"Alt+Shift+D");var C=t.removeCells;t.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var k=a[f];z.isEdge(k)&&d(k)&&(e.push(k),k=z.getTerminal(k,!1));b(k)?(t.traverse(k,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),k=t.getIncomingEdges(a[f]),a=a.concat(k)):e.push(a[f])}a=e;return C.apply(this,arguments)};v.hoverIcons.getStateAt=function(a,c,
-d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var H=t.duplicateCells;t.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=t.view.getState(d[e]);if(null!=f&&b(f.cell))for(var k=t.getIncomingEdges(f.cell),f=0;f<k.length;f++)mxUtils.remove(k[f],a)}this.model.beginUpdate();try{var g=H.call(this,a,c);if(g.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var l=t.getIncomingEdges(g[e]),k=t.getIncomingEdges(a[e]);
-if(0==l.length&&0<k.length){var m=this.cloneCell(k[0]);this.addEdge(m,t.getDefaultParent(),this.model.getTerminal(k[0],!0),g[e])}}}finally{this.model.endUpdate()}return g};var y=t.moveCells;t.moveCells=function(a,c,d,e,f,k,g){var l=null;this.model.beginUpdate();try{var m=f,n=this.view.getState(f),p=null!=n?n.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||t.model.isEdge(a[q])&&null==t.model.getTerminal(a[q],!0)){f=t.model.getParent(a[q]);
-break}if(null!=m&&f!=m&&null!=this.view.getState(a[0])){var u=t.getIncomingEdges(a[0]);if(0<u.length){var v=t.view.getState(t.model.getTerminal(u[0],!0));if(null!=v){var x=t.view.getState(m);null!=x&&(c=(x.getCenterX()-v.getCenterX())/t.view.scale,d=(x.getCenterY()-v.getCenterY())/t.view.scale)}}}}l=y.apply(this,arguments);if(null!=l&&null!=a&&l.length==a.length)for(q=0;q<l.length;q++)if(this.model.isEdge(l[q]))b(m)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[q],!0))&&this.model.setTerminal(l[q],
-m,!0);else if(b(a[q])&&(u=t.getIncomingEdges(a[q]),0<u.length))if(!e)b(m)&&0>mxUtils.indexOf(a,this.model.getTerminal(u[0],!0))&&this.model.setTerminal(u[0],m,!0);else if(0==t.getIncomingEdges(l[q]).length){n=m;if(null==n||n==t.model.getParent(a[q]))n=t.model.getTerminal(u[0],!0);e=this.cloneCell(u[0]);this.addEdge(e,t.getDefaultParent(),n,l[q])}}finally{this.model.endUpdate()}return l};if(null!=v.sidebar){var B=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=function(a,c,d,e){var f=t.model,k=null;
-f.beginUpdate();try{if(k=B.apply(this,arguments),b(a))for(var g=0;g<k.length;g++)if(f.isEdge(k[g])&&null==f.getTerminal(k[g],!0)){f.setTerminal(k[g],a,!0);var l=t.getCellGeometry(k[g]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return k}}var A={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},D=v.onKeyDown;v.onKeyDown=function(a){try{if(t.isEnabled()&&!t.isEditing()&&
-b(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingEdges(t.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?f(t.getSelectionCell()):m(t.getSelectionCell()):13==a.which&&(c=q(t.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&t.model.isEdge(c[0])?t.setSelectionCell(t.model.getTerminal(c[0],!1)):t.setSelectionCell(c[c.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(t.view.getState(t.getSelectionCell())),t.startEditingAtCell(t.getSelectionCell()),
+null,null,"Alt+Shift+D");var B=t.removeCells;t.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];y.isEdge(g)&&d(g)&&(e.push(g),g=y.getTerminal(g,!1));b(g)?(t.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=t.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return B.apply(this,arguments)};v.hoverIcons.getStateAt=function(a,c,
+d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var G=t.duplicateCells;t.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=t.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=t.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var k=G.call(this,a,c);if(k.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var l=t.getIncomingEdges(k[e]),g=t.getIncomingEdges(a[e]);
+if(0==l.length&&0<g.length){var m=this.cloneCell(g[0]);this.addEdge(m,t.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var x=t.moveCells;t.moveCells=function(a,c,d,e,f,g,k){var l=null;this.model.beginUpdate();try{var m=f,n=this.view.getState(f),p=null!=n?n.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||t.model.isEdge(a[q])&&null==t.model.getTerminal(a[q],!0)){f=t.model.getParent(a[q]);
+break}if(null!=m&&f!=m&&null!=this.view.getState(a[0])){var u=t.getIncomingEdges(a[0]);if(0<u.length){var v=t.view.getState(t.model.getTerminal(u[0],!0));if(null!=v){var y=t.view.getState(m);null!=y&&(c=(y.getCenterX()-v.getCenterX())/t.view.scale,d=(y.getCenterY()-v.getCenterY())/t.view.scale)}}}}l=x.apply(this,arguments);if(null!=l&&null!=a&&l.length==a.length)for(q=0;q<l.length;q++)if(this.model.isEdge(l[q]))b(m)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[q],!0))&&this.model.setTerminal(l[q],
+m,!0);else if(b(a[q])&&(u=t.getIncomingEdges(a[q]),0<u.length))if(!e)b(m)&&0>mxUtils.indexOf(a,this.model.getTerminal(u[0],!0))&&this.model.setTerminal(u[0],m,!0);else if(0==t.getIncomingEdges(l[q]).length){n=m;if(null==n||n==t.model.getParent(a[q]))n=t.model.getTerminal(u[0],!0);e=this.cloneCell(u[0]);this.addEdge(e,t.getDefaultParent(),n,l[q])}}finally{this.model.endUpdate()}return l};if(null!=v.sidebar){var C=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=function(a,c,d,e){var f=t.model,g=null;
+f.beginUpdate();try{if(g=C.apply(this,arguments),b(a))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],a,!0);var l=t.getCellGeometry(g[k]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var A={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},D=v.onKeyDown;v.onKeyDown=function(a){try{if(t.isEnabled()&&!t.isEditing()&&
+b(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingEdges(t.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?e(t.getSelectionCell()):m(t.getSelectionCell()):13==a.which&&(c=q(t.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&t.model.isEdge(c[0])?t.setSelectionCell(t.model.getTerminal(c[0],!1)):t.setSelectionCell(c[c.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(t.view.getState(t.getSelectionCell())),t.startEditingAtCell(t.getSelectionCell()),
mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var d=A[a.keyCode];null!=d&&(d.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(u(t.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(u(t.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(u(t.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(u(t.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(W){console.log("error",
-W)}mxEvent.isConsumed(a)||D.apply(this,arguments)};var F=t.connectVertex;t.connectVertex=function(a,c,d,e,k,g){var l=t.getIncomingEdges(a);return b(a)&&0<l.length?(d=n(a),e=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,k=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?m(a):e==k?f(a):q(a,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)):F.call(this,a,c,d,e,k,g)};t.getSubtree=function(a){var d=[a];!c(a)&&!b(a)||l(a)||t.traverse(a,!0,function(a,b){null!=
+W)}mxEvent.isConsumed(a)||D.apply(this,arguments)};var F=t.connectVertex;t.connectVertex=function(a,c,d,f,g,k){var l=t.getIncomingEdges(a);return b(a)&&0<l.length?(d=n(a),f=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,g=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?m(a):f==g?e(a):q(a,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)):F.call(this,a,c,d,f,g,k)};t.getSubtree=function(a){var d=[a];!c(a)&&!b(a)||l(a)||t.traverse(a,!0,function(a,b){null!=
b&&0>mxUtils.indexOf(d,b)&&d.push(b);0>mxUtils.indexOf(d,a)&&d.push(a);return!0});return d};var I=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){I.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",
-this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(a)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=
-function(){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){G.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var E=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
+this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(a)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=
+function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){H.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var E=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
function(a,b){E.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var b=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=b.apply(this,arguments),c=this.graph;return a.concat([this.addEntry("tree container",function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=
!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");b.vertex=!0;var c=new mxCell("Topic",
new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;");
-e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var p=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;");p.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);p.insertEdge(u,!1);var v=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;");v.vertex=!0;var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-t.geometry.relative=!0;t.edge=!0;b.insertEdge(t,!0);v.insertEdge(t,!1);a.insert(d);a.insert(g);a.insert(u);a.insert(t);a.insert(b);a.insert(c);a.insert(e);a.insert(p);a.insert(v);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");a.vertex=
+e.vertex=!0;var f=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");f.geometry.relative=!0;f.edge=!0;b.insertEdge(f,!0);e.insertEdge(f,!1);var g=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;");g.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);g.insertEdge(u,!1);var v=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;");v.vertex=!0;var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+t.geometry.relative=!0;t.edge=!0;b.insertEdge(t,!0);v.insertEdge(t,!1);a.insert(d);a.insert(f);a.insert(u);a.insert(t);a.insert(b);a.insert(c);a.insert(e);a.insert(g);a.insert(v);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");a.vertex=
!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;");a.vertex=!0;var b=new mxCell("",
new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;");
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");
-a.vertex=!0;var b=new mxCell("Organization",new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;container=1;recursiveResize=0;");c.setAttributeForCell(b,"treeRoot","1");b.vertex=!0;var d=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
-e.geometry.relative=!0;e.edge=!0;b.insertEdge(e,!0);d.insertEdge(e,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(e);a.insert(g);a.insert(b);a.insert(d);
-a.insert(f);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;container=1;recursiveResize=0;");c.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",
+a.vertex=!0;var b=new mxCell("Organization",new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;container=1;recursiveResize=0;");c.setAttributeForCell(b,"treeRoot","1");b.vertex=!0;var d=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");d.vertex=!0;var f=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
+f.geometry.relative=!0;f.edge=!0;b.insertEdge(f,!0);d.insertEdge(f,!1);var e=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);a.insert(f);a.insert(g);a.insert(b);a.insert(d);
+a.insert(e);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;container=1;recursiveResize=0;");c.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",
new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",
function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var c=new mxCell("Sub Section",
new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;treeMoving=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");d.geometry.setTerminalPoint(new mxPoint(110,-40),!0);d.geometry.relative=!0;d.edge=!0;c.insertEdge(d,!1);return sb.createVertexTemplateFromCells([b,d,a,c],220,60,
-"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new e(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(566,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&&
-a.formatWindow.window.fit()}function c(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,218);a.sidebarWindow=new e(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),k=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";
-k.className="geTitle";b.appendChild(k);return k}var d=document.createElement("div");d.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";d.className="geTitle";d.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(d,mxResources.get("moreShapes"));b.appendChild(d);mxEvent.addListener(d,"click",function(){a.actions.get("shapes").funct()});var e=new Menubar(a,b);if(!Editor.enableCustomLibraries||
+"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new f(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(566,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&&
+a.formatWindow.window.fit()}function c(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,218);a.sidebarWindow=new f(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";
+g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("div");d.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";d.className="geTitle";d.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(d,mxResources.get("moreShapes"));b.appendChild(d);mxEvent.addListener(d,"click",function(){a.actions.get("shapes").funct()});var e=new Menubar(a,b);if(!Editor.enableCustomLibraries||
"1"==urlParams.embed&&"1"!=urlParams.libraries)d.style.bottom="0";else if(null!=a.actions.get("newLibrary")){d=document.createElement("div");d.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;";d.className="geTitle";var f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("newLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,
"click",a.actions.get("newLibrary").funct);d=document.createElement("div");d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=
c("newLibrary",mxResources.get("newLibrary")),d.style.boxSizing="border-box",d.style.paddingRight="6px",d.style.paddingLeft="6px",d.style.height="32px",d.style.left="0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.boxSizing="border-box",d.style.paddingRight="6px",d.style.paddingLeft="6px",d.style.height="32px",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,
0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()}if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
-try{var b=document.createElement("style");b.type="text/css";b.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * { font-size:13px; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select:none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity:0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding:2px;display:inline-block; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geToolbarContainer { background:#fff !important; }div.geSidebarContainer { background-color: #ffffff; }div.geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color: #A0A0A0 !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"+
-(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"");document.getElementsByTagName("head")[0].appendChild(b)}catch(t){}var e=function(a,b,c,d,e,f,k){var g=document.createElement("div");g.className="geSidebarContainer";g.style.position="absolute";g.style.width="100%";g.style.height="100%";g.style.border="1px solid whiteSmoke";g.style.overflowX="hidden";g.style.overflowY="auto";k(g);this.window=new mxWindow(b,g,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);
+try{var b=document.createElement("style");b.type="text/css";b.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select:none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity:0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding:2px;display:inline-block; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geToolbarContainer { background:#fff !important; }div.geSidebarContainer { background-color: #ffffff; }div.geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color: #A0A0A0 !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"+
+(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"");document.getElementsByTagName("head")[0].appendChild(b)}catch(t){}var f=function(a,b,c,d,e,f,g){var k=document.createElement("div");k.className="geSidebarContainer";k.style.position="absolute";k.style.width="100%";k.style.height="100%";k.style.border="1px solid whiteSmoke";k.style.overflowX="hidden";k.style.overflowY="auto";g(k);this.window=new mxWindow(b,k,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);
this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&
(this.window.div.onselectstart=mxUtils.bind(this,function(b){null==b&&(b=window.event);return null!=b&&a.isSelectionAllowed(b)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;
mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR=
@@ -9671,75 +9679,75 @@ d&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):l.
a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage="url("+Editor.shareImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px"}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer){var a=document.createElement("div");a.style.display="inline-block";a.style.position="relative";a.style.marginTop="8px";a.style.marginRight="4px";var b=document.createElement("a");
b.className="geMenuItem gePrimaryBtn";b.style.marginLeft="8px";b.style.padding="6px";"1"==urlParams.noSaveBtn?(mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)):(mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),
a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.className=
-"geMenuItem";b.style.marginLeft="6px";b.style.padding="6px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};Sidebar.prototype.getTooltipOffset=function(){var a=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);a.y+=40;return a};var f=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=
-!0;f.apply(this,arguments);mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),function(a){b(parseFloat(a))},mxResources.get("spacing"));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()});1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-","editStyle","editGeometry","-"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-",
-"lockUnlock","enterGroup"],null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b?!1:
-!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var m=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),
-this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=
-null);m.apply(this,arguments)};var p=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){p.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var u=Menus.prototype.init;Menus.prototype.init=function(){u.apply(this,arguments);var b=this.editorUi,d=b.editor.graph;b.actions.get("editDiagram").label=mxResources.get("formatXml")+
-"...";b.actions.get("createShape").label=mxResources.get("shape")+"...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));
-b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){c(b)}));b.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=
-new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(b.menus.addMenuItems(a,["new","open","-"],c),EditorUi.isElectronApp&&b.menus.addMenuItems(a,["synchronize","-"],c),b.menus.addMenuItems(a,["save","saveAs","-"],c)):"1"==urlParams.embed?(b.menus.addMenuItems(a,
-["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),isLocalStorage&&this.addSubmenu("openRecent",a,c),a.addSeparator(c),null!=d&&d.constructor==DriveFile&&b.menus.addMenuItems(a,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==d||d.constructor==LocalFile||b.menus.addMenuItems(a,["synchronize"],c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",
-a,c);b.menus.addMenuItems(a,["-","outline","layers"],c);b.commentsSupported()&&b.menus.addMenuItems(a,["comments"],c);b.menus.addMenuItems(a,["-","find","tags"],c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,
-["save","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));b.menus.addMenuItems(a,["-","autosave"],c);null!=d&&d.isRevisionHistorySupported()&&b.menus.addMenuItems(a,["-","revisionHistory"],c)})));var e=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){e.funct(a,c);mxClient.IS_CHROMEAPP||
-EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var f=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=f&&b.menus.addSubmenu("language",a,c);b.menus.addSubmenu("units",a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-",
-"search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&b.menus.addMenuItem(a,"plugins",c);a.addSeparator(c);b.menus.addMenuItem(a,"drawConfig",c);a.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var a=this.get("insert"),c=a.funct;a.funct=function(a,d){c.apply(this,arguments);a.addSeparator(d);
-mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],d):b.menus.addSubmenu("importFrom",a,d)}})();var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),g=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):
-g(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var v=EditorUi.prototype.init;EditorUi.prototype.init=
-function(){function a(a,b,c){var d=g.menus.get(a),e=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),n);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));g.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",
-e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition="right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function b(a,b,c,d,e,f){var k=document.createElement("a");k.className="geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height=
-"30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";null!=g.statusContainer?m.insertBefore(k,g.statusContainer):m.appendChild(k);null!=f?(k.style.backgroundImage="url("+f+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,a);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));
-mxEvent.addListener(k,"click",function(a){"disabled"!=k.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(k.style.marginRight="4px");null!=d&&k.setAttribute("title",d);null!=e&&(a=function(){e.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},e.addListener("stateChanged",a),a());return k}function e(a,b){var c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign=
-"top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position="relative";c.style.top="0px";for(var d=0;d<a.length;d++)null!=a[d]&&(a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=g.statusContainer?m.insertBefore(c,g.statusContainer):m.appendChild(c);return c}function f(){for(var c=m.firstChild;null!=c;){var f=c.nextSibling;"geMenuItem"!=c.className&&"geItem"!=c.className||c.parentNode.removeChild(c);
-c=f}n=m.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(c=1E3>d)||a("diagram");e([c?a("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),g.actions.get("image"),c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
-null),b(mxResources.get("format"),g.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+g.actions.get("formatPanel").shortcut+")",g.actions.get("image"),c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],c?60:null);f=a("insert",!0,c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null);e([f,b(mxResources.get("delete"),g.actions.get("delete").funct,null,mxResources.get("delete"),g.actions.get("delete"),c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":
-null)],c?60:null);if(411<=d&&(f=g.actions.get("undo"),c=g.actions.get("redo"),f=b("",f.funct,null,mxResources.get("undo")+" ("+f.shortcut+")",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),c=b("",
-c.funct,null,mxResources.get("redo")+" ("+c.shortcut+")",c,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),e([f,c],60),480<=d)){var c=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),k=g.actions.get("resetView");
-e([b("",function(){l.popupMenuHandler.hideMenu();var a=l.view.scale,b=l.view.translate.x,c=l.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-l.view.scale)&&b==l.view.translate.x&&c==l.view.translate.y&&g.actions.get(l.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",k,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
+"geMenuItem";b.style.marginLeft="6px";b.style.padding="6px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};Sidebar.prototype.getTooltipOffset=function(){var a=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);a.y+=40;return a};var e=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=
+!0;e.apply(this,arguments);mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),function(a){b(parseFloat(a))},mxResources.get("spacing"));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()});1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-","editStyle","editGeometry","-"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-",
+"lockUnlock","enterGroup"],null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",a),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?
+this.formatWindow.window.setVisible(b?!1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var m=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&
+(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),
+this.menus.findWindow=null);m.apply(this,arguments)};var p=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){p.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var u=Menus.prototype.init;Menus.prototype.init=function(){u.apply(this,arguments);var b=this.editorUi,d=b.editor.graph;b.actions.get("editDiagram").label=
+mxResources.get("formatXml")+"...";b.actions.get("createShape").label=mxResources.get("shape")+"...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,
+620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){c(b)}));b.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+
+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(b.menus.addMenuItems(a,["new","open","-"],c),EditorUi.isElectronApp&&b.menus.addMenuItems(a,["synchronize","-"],c),b.menus.addMenuItems(a,["save","saveAs","-"],c)):
+"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),isLocalStorage&&this.addSubmenu("openRecent",a,c),a.addSeparator(c),null!=d&&d.constructor==DriveFile&&b.menus.addMenuItems(a,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==d||d.constructor==LocalFile||b.menus.addMenuItems(a,["synchronize"],c),a.addSeparator(c),
+b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);b.menus.addMenuItems(a,["-","outline","layers"],c);b.commentsSupported()&&b.menus.addMenuItems(a,["comments"],c);b.menus.addMenuItems(a,["-","find","tags"],c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,
+["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["save","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));b.menus.addMenuItems(a,["-","autosave"],c);null!=d&&d.isRevisionHistorySupported()&&
+b.menus.addMenuItems(a,["-","revisionHistory"],c)})));var e=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){e.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var f=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=f&&b.menus.addSubmenu("language",a,c);b.menus.addSubmenu("units",
+a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&b.menus.addMenuItem(a,"plugins",c);a.addSeparator(c);b.menus.addMenuItem(a,"drawConfig",c);a.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),
+c)})));mxUtils.bind(this,function(){var a=this.get("insert"),c=a.funct;a.funct=function(a,d){c.apply(this,arguments);a.addSeparator(d);b.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var g="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),k=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,
+b){for(var c=0;c<g.length;c++)"-"==g[c]?a.addSeparator(b):k(a,b,mxResources.get(g[c])+"...",g[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],
+c)})))};var v=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c){var d=k.menus.get(a),e=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),n);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));k.menus.menuCreated(d,
+e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition="right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function b(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display=
+"inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";null!=k.statusContainer?m.insertBefore(g,k.statusContainer):m.appendChild(g);null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",
+mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight="4px");null!=d&&g.setAttribute("title",d);null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),a());return g}function e(a,b){var c=document.createElement("div");c.className=
+"geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position="relative";c.style.top="0px";for(var d=0;d<a.length;d++)null!=a[d]&&(a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=k.statusContainer?m.insertBefore(c,k.statusContainer):m.appendChild(c);return c}function f(){for(var c=m.firstChild;null!=c;){var f=c.nextSibling;"geMenuItem"!=
+c.className&&"geItem"!=c.className||c.parentNode.removeChild(c);c=f}n=m.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(c=1E3>d)||a("diagram");e([c?a("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,b(mxResources.get("shapes"),k.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),k.actions.get("image"),c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
+null),b(mxResources.get("format"),k.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+k.actions.get("formatPanel").shortcut+")",k.actions.get("image"),c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
+null)],c?60:null);f=a("insert",!0,c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null);e([f,b(mxResources.get("delete"),k.actions.get("delete").funct,null,mxResources.get("delete"),k.actions.get("delete"),c?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":
+null)],c?60:null);if(411<=d&&(f=k.actions.get("undo"),c=k.actions.get("redo"),f=b("",f.funct,null,mxResources.get("undo")+" ("+f.shortcut+")",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),c=b("",
+c.funct,null,mxResources.get("redo")+" ("+c.shortcut+")",c,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),e([f,c],60),480<=d)){var c=k.actions.get("zoomIn"),f=k.actions.get("zoomOut"),g=k.actions.get("resetView");
+e([b("",function(){l.popupMenuHandler.hideMenu();var a=l.view.scale,b=l.view.translate.x,c=l.view.translate.y;k.actions.get("resetView").funct();1E-5>Math.abs(a-l.view.scale)&&b==l.view.translate.x&&c==l.view.translate.y&&k.actions.get(l.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",g,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
640<=d?b("",c.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",c,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="):
null,640<=d?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="):
-null],60)}c=g.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d?(null==N&&(f=p.addMenu("",c.funct),f.setAttribute("title",mxResources.get("language")),f.className="geToolbarButton",f.style.backgroundImage="url("+Editor.globeImage+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.right="8px",f.style.cursor=
-"pointer",f.style.top="1"==urlParams.embed?"12px":"11px",m.appendChild(f),N=f),g.buttonContainer.style.paddingRight="34px"):(g.buttonContainer.style.paddingRight="4px",null!=N&&(N.parentNode.removeChild(N),N=null))}v.apply(this,arguments);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(k);null==urlParams.clibs&&
-null==urlParams.libs||c(this);var g=this,l=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var m=document.createElement("div");m.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var n=null,p=new Menubar(g,m);g.statusContainer=g.createStatusContainer();g.statusContainer.style.position="relative";
-g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var q=g.descriptorChanged;g.descriptorChanged=function(){q.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":
-"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);m.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else m.removeAttribute("title")};g.setStatusText(g.editor.getStatus());m.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";m.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;
-g.tabContainer=document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var k=g.diagramContainer.parentNode,u=document.createElement("div");u.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var G=g.menus.get("viewZoom");
-if(null!=G){this.tabContainer.style.right="70px";var E=p.addMenu("100%",G.funct);E.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");E.style.whiteSpace="nowrap";E.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";E.style.backgroundPosition="right 6px center";E.style.backgroundRepeat="no-repeat";E.style.backgroundColor="#ffffff";E.style.paddingRight="10px";E.style.display="block";E.style.position="absolute";E.style.textDecoration="none";E.style.textDecoration="none";
-E.style.right="0px";E.style.bottom="0px";E.style.overflow="hidden";E.style.visibility="hidden";E.style.textAlign="center";E.style.color="#000";E.style.fontSize="12px";E.style.color="#707070";E.style.width="59px";E.style.cursor="pointer";E.style.borderTop="1px solid lightgray";E.style.borderLeft="1px solid lightgray";E.style.height=parseInt(g.tabContainerHeight)-1+"px";E.style.lineHeight=parseInt(g.tabContainerHeight)+1+"px";u.appendChild(E);G=mxUtils.bind(this,function(){E.innerHTML=Math.round(100*
-g.editor.graph.view.scale)+"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,G);g.editor.addListener("resetGraphView",G);g.editor.addListener("pageSelected",G);var J=g.setGraphEnabled;g.setGraphEnabled=function(){J.apply(this,arguments);null!=this.tabContainer&&(E.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?this.tabContainerHeight+"px":"0px")}}u.appendChild(g.tabContainer);u.appendChild(m);u.appendChild(g.diagramContainer);
-k.appendChild(u);g.updateTabContainer();var N=null;f();mxEvent.addListener(window,"resize",function(){f();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}};
-(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();(function(){var a=mxGuide.prototype.move;mxGuide.prototype.move=function(b,c,d,k){var e=c.y,g=c.x,q=!1,f=!1;if(null!=this.states&&null!=b&&null!=c){var m=this,p=new mxCellState,u=this.graph.getView().scale,v=Math.max(2,this.getGuideTolerance()/2);p.x=b.x+g;p.y=b.y+e;p.width=b.width;p.height=b.height;for(var t=[],z=[],x=0;x<this.states.length;x++){var C=this.states[x];C instanceof mxCellState&&(k||!this.graph.isCellSelected(C.cell))&&((p.x>=C.x&&p.x<=C.x+C.width||C.x>=p.x&&C.x<=p.x+p.width)&&(p.y>
-C.y+C.height+4||p.y+p.height+4<C.y)?t.push(C):(p.y>=C.y&&p.y<=C.y+C.height||C.y>=p.y&&C.y<=p.y+p.height)&&(p.x>C.x+C.width+4||p.x+p.width+4<C.x)&&z.push(C))}var H=0,y=0,B=C=0,A=0,D=0,F=0,I=0,K=5*u;if(1<t.length){t.push(p);t.sort(function(a,b){return a.y-b.y});var G=!1,x=p==t[0],u=p==t[t.length-1];if(!x&&!u)for(x=1;x<t.length-1;x++)if(p==t[x]){u=t[x-1];x=t[x+1];C=y=B=(x.y-u.y-u.height-p.height)/2;break}for(x=0;x<t.length-1;x++){var u=t[x],E=t[x+1],J=p==u||p==E,E=E.y-u.y-u.height,G=G|p==u;if(0==y&&
-0==H)y=E,H=1;else if(Math.abs(y-E)<=(J||1==x&&G?v:0))H+=1;else if(1<H&&G){t=t.slice(0,x+1);break}else if(3<=t.length-x&&!G)H=0,C=y=0!=B?B:0,t.splice(0,0==x?1:x),x=-1;else break;0!=C||J||(y=C=E)}3==t.length&&t[1]==p&&(C=0)}if(1<z.length){z.push(p);z.sort(function(a,b){return a.x-b.x});G=!1;x=p==z[0];u=p==z[z.length-1];if(!x&&!u)for(x=1;x<z.length-1;x++)if(p==z[x]){u=z[x-1];x=z[x+1];F=D=I=(x.x-u.x-u.width-p.width)/2;break}for(x=0;x<z.length-1;x++){u=z[x];E=z[x+1];J=p==u||p==E;E=E.x-u.x-u.width;G|=p==
-u;if(0==D&&0==A)D=E,A=1;else if(Math.abs(D-E)<=(J||1==x&&G?v:0))A+=1;else if(1<A&&G){z=z.slice(0,x+1);break}else if(3<=z.length-x&&!G)A=0,F=D=0!=I?I:0,z.splice(0,0==x?1:x),x=-1;else break;0!=F||J||(D=F=E)}3==z.length&&z[1]==p&&(F=0)}v=function(a,b,c,d){var e=[],f;d?(d=K,f=0):(d=0,f=K);e.push(new mxPoint(a.x-d,a.y-f));e.push(new mxPoint(a.x+d,a.y+f));e.push(a);e.push(b);e.push(new mxPoint(b.x-d,b.y-f));e.push(new mxPoint(b.x+d,b.y+f));if(null!=c)return c.points=e,c;a=new mxPolyline(e,mxConstants.GUIDE_COLOR,
-mxConstants.GUIDE_STROKEWIDTH);a.dialect=mxConstants.DIALECT_SVG;a.pointerEvents=!1;a.init(m.graph.getView().getOverlayPane());return a};D=function(a,b){if(a&&null!=m.guidesArrHor)for(var c=0;c<m.guidesArrHor.length;c++)m.guidesArrHor[c].node.style.visibility="hidden";if(b&&null!=m.guidesArrVer)for(c=0;c<m.guidesArrVer.length;c++)m.guidesArrVer[c].node.style.visibility="hidden"};if(1<A&&A==z.length-1){A=[];I=m.guidesArrHor;q=[];g=0;x=z[0]==p?1:0;G=z[x].y+z[x].height;if(0<F)for(x=0;x<z.length-1;x++)u=
-z[x],E=z[x+1],p==u?(g=E.x-u.width-F,q.push(new mxPoint(g+u.width+K,G)),q.push(new mxPoint(E.x-K,G))):p==E?(q.push(new mxPoint(u.x+u.width+K,G)),g=u.x+u.width+F,q.push(new mxPoint(g-K,G))):(q.push(new mxPoint(u.x+u.width+K,G)),q.push(new mxPoint(E.x-K,G)));else u=z[0],x=z[2],g=u.x+u.width+(x.x-u.x-u.width-p.width)/2,q.push(new mxPoint(u.x+u.width+K,G)),q.push(new mxPoint(g-K,G)),q.push(new mxPoint(g+p.width+K,G)),q.push(new mxPoint(x.x-K,G));for(x=0;x<q.length;x+=2)z=q[x],F=q[x+1],z=v(z,F,null!=I?
-I[x/2]:null),z.node.style.visibility="visible",z.redraw(),A.push(z);for(x=q.length/2;null!=I&&x<I.length;x++)I[x].destroy();m.guidesArrHor=A;g-=b.x;q=!0}else D(!0);if(1<H&&H==t.length-1){A=[];I=m.guidesArrVer;f=[];e=0;x=t[0]==p?1:0;H=t[x].x+t[x].width;if(0<C)for(x=0;x<t.length-1;x++)u=t[x],E=t[x+1],p==u?(e=E.y-u.height-C,f.push(new mxPoint(H,e+u.height+K)),f.push(new mxPoint(H,E.y-K))):p==E?(f.push(new mxPoint(H,u.y+u.height+K)),e=u.y+u.height+C,f.push(new mxPoint(H,e-K))):(f.push(new mxPoint(H,u.y+
-u.height+K)),f.push(new mxPoint(H,E.y-K)));else u=t[0],x=t[2],e=u.y+u.height+(x.y-u.y-u.height-p.height)/2,f.push(new mxPoint(H,u.y+u.height+K)),f.push(new mxPoint(H,e-K)),f.push(new mxPoint(H,e+p.height+K)),f.push(new mxPoint(H,x.y-K));for(x=0;x<f.length;x+=2)z=f[x],F=f[x+1],z=v(z,F,null!=I?I[x/2]:null,!0),z.node.style.visibility="visible",z.redraw(),A.push(z);for(x=f.length/2;null!=I&&x<I.length;x++)I[x].destroy();m.guidesArrVer=A;e-=b.y;f=!0}else D(!1,!0)}if(q||f)return p=new mxPoint(g,e),t=a.call(this,
-b,p,d,k),q&&!f?p.y=t.y:f&&!q&&(p.x=t.x),t.y!=p.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),t.x!=p.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),p;D(!0,!0);return a.apply(this,arguments)};var c=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(a){c.call(this,a);var b=this.guidesArrVer,d=this.guidesArrHor;if(null!=b)for(var k=0;k<b.length;k++)b[k].node.style.visibility=a?"visible":"hidden";if(null!=
-d)for(k=0;k<d.length;k++)d[k].node.style.visibility=a?"visible":"hidden"};var d=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){d.call(this);var a=this.guidesArrVer,c=this.guidesArrHor;if(null!=a){for(var g=0;g<a.length;g++)a[g].destroy();this.guidesArrVer=null}if(null!=c){for(g=0;g<c.length;g++)c[g].destroy();this.guidesArrHor=null}}})();function mxRuler(a,c,d,b){function e(){var b=a.diagramContainer;q.style.top=b.offsetTop-k+"px";q.style.left=b.offsetLeft-k+"px";q.style.width=(d?0:b.offsetWidth)+k+"px";q.style.height=(d?b.offsetHeight:0)+k+"px"}function g(a,b,c){var d;return function(){var e=this,f=arguments,g=c&&!d;clearTimeout(d);d=setTimeout(function(){d=null;c||a.apply(e,f)},b);g&&a.apply(e,f)}}var k=this.RULER_THICKNESS,l=this;this.unit=c;var n="dark"!=window.uiTheme?{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",
+null],60)}c=k.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d?(null==M&&(f=p.addMenu("",c.funct),f.setAttribute("title",mxResources.get("language")),f.className="geToolbarButton",f.style.backgroundImage="url("+Editor.globeImage+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.right="8px",f.style.cursor=
+"pointer",f.style.top="1"==urlParams.embed?"12px":"11px",m.appendChild(f),M=f),k.buttonContainer.style.paddingRight="34px"):(k.buttonContainer.style.paddingRight="4px",null!=M&&(M.parentNode.removeChild(M),M=null))}v.apply(this,arguments);var g=document.createElement("div");g.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";g.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(g);null==urlParams.clibs&&
+null==urlParams.libs||c(this);var k=this,l=k.editor.graph;k.toolbar=this.createToolbar(k.createDiv("geToolbar"));k.defaultLibraryName=mxResources.get("untitledLibrary");var m=document.createElement("div");m.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var n=null,p=new Menubar(k,m);k.statusContainer=k.createStatusContainer();k.statusContainer.style.position="relative";
+k.statusContainer.style.maxWidth="";k.statusContainer.style.marginTop="7px";k.statusContainer.style.marginLeft="6px";k.statusContainer.style.color="gray";k.statusContainer.style.cursor="default";k.editor.addListener("statusChanged",mxUtils.bind(this,function(){k.setStatusText(k.editor.getStatus())}));var q=k.descriptorChanged;k.descriptorChanged=function(){q.apply(this,arguments);var a=k.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":
+"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);m.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else m.removeAttribute("title")};k.setStatusText(k.editor.getStatus());m.appendChild(k.statusContainer);k.buttonContainer=document.createElement("div");k.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";m.appendChild(k.buttonContainer);k.menubarContainer=k.buttonContainer;
+k.tabContainer=document.createElement("div");k.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var g=k.diagramContainer.parentNode,u=document.createElement("div");u.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";k.diagramContainer.style.top="47px";var H=k.menus.get("viewZoom");
+if(null!=H){this.tabContainer.style.right="70px";var E=p.addMenu("100%",H.funct);E.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");E.style.whiteSpace="nowrap";E.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";E.style.backgroundPosition="right 6px center";E.style.backgroundRepeat="no-repeat";E.style.backgroundColor="#ffffff";E.style.paddingRight="10px";E.style.display="block";E.style.position="absolute";E.style.textDecoration="none";E.style.textDecoration="none";
+E.style.right="0px";E.style.bottom="0px";E.style.overflow="hidden";E.style.visibility="hidden";E.style.textAlign="center";E.style.color="#000";E.style.fontSize="12px";E.style.color="#707070";E.style.width="59px";E.style.cursor="pointer";E.style.borderTop="1px solid lightgray";E.style.borderLeft="1px solid lightgray";E.style.height=parseInt(k.tabContainerHeight)-1+"px";E.style.lineHeight=parseInt(k.tabContainerHeight)+1+"px";u.appendChild(E);H=mxUtils.bind(this,function(){E.innerHTML=Math.round(100*
+k.editor.graph.view.scale)+"%"});k.editor.graph.view.addListener(mxEvent.EVENT_SCALE,H);k.editor.addListener("resetGraphView",H);k.editor.addListener("pageSelected",H);var K=k.setGraphEnabled;k.setGraphEnabled=function(){K.apply(this,arguments);null!=this.tabContainer&&(E.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?this.tabContainerHeight+"px":"0px")}}u.appendChild(k.tabContainer);u.appendChild(m);u.appendChild(k.diagramContainer);
+g.appendChild(u);k.updateTabContainer();var M=null;f();mxEvent.addListener(window,"resize",function(){f();null!=k.sidebarWindow&&k.sidebarWindow.window.fit();null!=k.formatWindow&&k.formatWindow.window.fit();null!=k.actions.outlineWindow&&k.actions.outlineWindow.window.fit();null!=k.actions.layersWindow&&k.actions.layersWindow.window.fit();null!=k.menus.tagsWindow&&k.menus.tagsWindow.window.fit();null!=k.menus.findWindow&&k.menus.findWindow.window.fit()})}}};
+(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();(function(){var a=mxGuide.prototype.move;mxGuide.prototype.move=function(b,c,d,k){var f=c.y,g=c.x,q=!1,e=!1;if(null!=this.states&&null!=b&&null!=c){var m=this,p=new mxCellState,u=this.graph.getView().scale,v=Math.max(2,this.getGuideTolerance()/2);p.x=b.x+g;p.y=b.y+f;p.width=b.width;p.height=b.height;for(var t=[],y=[],z=0;z<this.states.length;z++){var B=this.states[z];B instanceof mxCellState&&(k||!this.graph.isCellSelected(B.cell))&&((p.x>=B.x&&p.x<=B.x+B.width||B.x>=p.x&&B.x<=p.x+p.width)&&(p.y>
+B.y+B.height+4||p.y+p.height+4<B.y)?t.push(B):(p.y>=B.y&&p.y<=B.y+B.height||B.y>=p.y&&B.y<=p.y+p.height)&&(p.x>B.x+B.width+4||p.x+p.width+4<B.x)&&y.push(B))}var G=0,x=0,C=B=0,A=0,D=0,F=0,I=0,J=5*u;if(1<t.length){t.push(p);t.sort(function(a,b){return a.y-b.y});var H=!1,z=p==t[0],u=p==t[t.length-1];if(!z&&!u)for(z=1;z<t.length-1;z++)if(p==t[z]){u=t[z-1];z=t[z+1];B=x=C=(z.y-u.y-u.height-p.height)/2;break}for(z=0;z<t.length-1;z++){var u=t[z],E=t[z+1],K=p==u||p==E,E=E.y-u.y-u.height,H=H|p==u;if(0==x&&
+0==G)x=E,G=1;else if(Math.abs(x-E)<=(K||1==z&&H?v:0))G+=1;else if(1<G&&H){t=t.slice(0,z+1);break}else if(3<=t.length-z&&!H)G=0,B=x=0!=C?C:0,t.splice(0,0==z?1:z),z=-1;else break;0!=B||K||(x=B=E)}3==t.length&&t[1]==p&&(B=0)}if(1<y.length){y.push(p);y.sort(function(a,b){return a.x-b.x});H=!1;z=p==y[0];u=p==y[y.length-1];if(!z&&!u)for(z=1;z<y.length-1;z++)if(p==y[z]){u=y[z-1];z=y[z+1];F=D=I=(z.x-u.x-u.width-p.width)/2;break}for(z=0;z<y.length-1;z++){u=y[z];E=y[z+1];K=p==u||p==E;E=E.x-u.x-u.width;H|=p==
+u;if(0==D&&0==A)D=E,A=1;else if(Math.abs(D-E)<=(K||1==z&&H?v:0))A+=1;else if(1<A&&H){y=y.slice(0,z+1);break}else if(3<=y.length-z&&!H)A=0,F=D=0!=I?I:0,y.splice(0,0==z?1:z),z=-1;else break;0!=F||K||(D=F=E)}3==y.length&&y[1]==p&&(F=0)}v=function(a,b,c,d){var e=[],f;d?(d=J,f=0):(d=0,f=J);e.push(new mxPoint(a.x-d,a.y-f));e.push(new mxPoint(a.x+d,a.y+f));e.push(a);e.push(b);e.push(new mxPoint(b.x-d,b.y-f));e.push(new mxPoint(b.x+d,b.y+f));if(null!=c)return c.points=e,c;a=new mxPolyline(e,mxConstants.GUIDE_COLOR,
+mxConstants.GUIDE_STROKEWIDTH);a.dialect=mxConstants.DIALECT_SVG;a.pointerEvents=!1;a.init(m.graph.getView().getOverlayPane());return a};D=function(a,b){if(a&&null!=m.guidesArrHor)for(var c=0;c<m.guidesArrHor.length;c++)m.guidesArrHor[c].node.style.visibility="hidden";if(b&&null!=m.guidesArrVer)for(c=0;c<m.guidesArrVer.length;c++)m.guidesArrVer[c].node.style.visibility="hidden"};if(1<A&&A==y.length-1){A=[];I=m.guidesArrHor;q=[];g=0;z=y[0]==p?1:0;H=y[z].y+y[z].height;if(0<F)for(z=0;z<y.length-1;z++)u=
+y[z],E=y[z+1],p==u?(g=E.x-u.width-F,q.push(new mxPoint(g+u.width+J,H)),q.push(new mxPoint(E.x-J,H))):p==E?(q.push(new mxPoint(u.x+u.width+J,H)),g=u.x+u.width+F,q.push(new mxPoint(g-J,H))):(q.push(new mxPoint(u.x+u.width+J,H)),q.push(new mxPoint(E.x-J,H)));else u=y[0],z=y[2],g=u.x+u.width+(z.x-u.x-u.width-p.width)/2,q.push(new mxPoint(u.x+u.width+J,H)),q.push(new mxPoint(g-J,H)),q.push(new mxPoint(g+p.width+J,H)),q.push(new mxPoint(z.x-J,H));for(z=0;z<q.length;z+=2)y=q[z],F=q[z+1],y=v(y,F,null!=I?
+I[z/2]:null),y.node.style.visibility="visible",y.redraw(),A.push(y);for(z=q.length/2;null!=I&&z<I.length;z++)I[z].destroy();m.guidesArrHor=A;g-=b.x;q=!0}else D(!0);if(1<G&&G==t.length-1){A=[];I=m.guidesArrVer;e=[];f=0;z=t[0]==p?1:0;G=t[z].x+t[z].width;if(0<B)for(z=0;z<t.length-1;z++)u=t[z],E=t[z+1],p==u?(f=E.y-u.height-B,e.push(new mxPoint(G,f+u.height+J)),e.push(new mxPoint(G,E.y-J))):p==E?(e.push(new mxPoint(G,u.y+u.height+J)),f=u.y+u.height+B,e.push(new mxPoint(G,f-J))):(e.push(new mxPoint(G,u.y+
+u.height+J)),e.push(new mxPoint(G,E.y-J)));else u=t[0],z=t[2],f=u.y+u.height+(z.y-u.y-u.height-p.height)/2,e.push(new mxPoint(G,u.y+u.height+J)),e.push(new mxPoint(G,f-J)),e.push(new mxPoint(G,f+p.height+J)),e.push(new mxPoint(G,z.y-J));for(z=0;z<e.length;z+=2)y=e[z],F=e[z+1],y=v(y,F,null!=I?I[z/2]:null,!0),y.node.style.visibility="visible",y.redraw(),A.push(y);for(z=e.length/2;null!=I&&z<I.length;z++)I[z].destroy();m.guidesArrVer=A;f-=b.y;e=!0}else D(!1,!0)}if(q||e)return p=new mxPoint(g,f),t=a.call(this,
+b,p,d,k),q&&!e?p.y=t.y:e&&!q&&(p.x=t.x),t.y!=p.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),t.x!=p.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),p;D(!0,!0);return a.apply(this,arguments)};var c=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(a){c.call(this,a);var b=this.guidesArrVer,d=this.guidesArrHor;if(null!=b)for(var k=0;k<b.length;k++)b[k].node.style.visibility=a?"visible":"hidden";if(null!=
+d)for(k=0;k<d.length;k++)d[k].node.style.visibility=a?"visible":"hidden"};var d=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){d.call(this);var a=this.guidesArrVer,c=this.guidesArrHor;if(null!=a){for(var g=0;g<a.length;g++)a[g].destroy();this.guidesArrVer=null}if(null!=c){for(g=0;g<c.length;g++)c[g].destroy();this.guidesArrHor=null}}})();function mxRuler(a,c,d,b){function f(){var b=a.diagramContainer;q.style.top=b.offsetTop-k+"px";q.style.left=b.offsetLeft-k+"px";q.style.width=(d?0:b.offsetWidth)+k+"px";q.style.height=(d?b.offsetHeight:0)+k+"px"}function g(a,b,c){var d;return function(){var e=this,f=arguments,g=c&&!d;clearTimeout(d);d=setTimeout(function(){d=null;c||a.apply(e,f)},b);g&&a.apply(e,f)}}var k=this.RULER_THICKNESS,l=this;this.unit=c;var n="dark"!=window.uiTheme?{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",
strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"}:{bkgClr:"#202020",outBkgClr:"#2a2a2a",cornerClr:"#2a2a2a",strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"},q=document.createElement("div");q.style.position="absolute";q.style.background=n.bkgClr;q.style[d?"borderRight":"borderBottom"]="0.5px solid "+n.strokeClr;q.style.borderLeft="0.5px solid "+n.strokeClr;document.body.appendChild(q);mxEvent.disableContextMenu(q);this.editorUiRefresh=a.refresh;a.refresh=function(b){l.editorUiRefresh.apply(a,
-arguments);e()};e();var f=document.createElement("canvas");f.width=q.offsetWidth;f.height=q.offsetHeight;q.style.overflow="hidden";f.style.position="relative";q.appendChild(f);var m=f.getContext("2d");this.ui=a;var p=a.editor.graph;this.graph=p;this.container=q;this.canvas=f;var u=function(a,b,c,e,f){a=Math.round(a);b=Math.round(b);c=Math.round(c);e=Math.round(e);m.beginPath();m.moveTo(a+.5,b+.5);m.lineTo(c+.5,e+.5);m.stroke();f&&(d?(m.save(),m.translate(a,b),m.rotate(-Math.PI/2),m.fillText(f,0,0),
-m.restore()):m.fillText(f,a,b))},v=function(){m.clearRect(0,0,f.width,f.height);m.beginPath();m.lineWidth=.7;m.strokeStyle=n.strokeClr;m.setLineDash([]);m.font="9px Arial";m.textAlign="center";var a=p.view.scale,b=p.view.getBackgroundPageBounds(),c=p.view.translate,e=p.view.getGraphBounds(),g=p.pageVisible,q=g?k+(d?b.y-p.container.scrollTop:b.x-p.container.scrollLeft):k+(d?c.y-p.container.scrollTop:c.x-p.container.scrollLeft),v=0;g&&(v=d?Math.floor(((e.y+1)/a-c.y)/p.pageFormat.height)*p.pageFormat.height*
-a:Math.floor(((e.x+1)/a-c.x)/p.pageFormat.width)*p.pageFormat.width*a);var A,D,F;switch(l.unit){case mxConstants.POINTS:A=F=10;D=[3,5,5,5,5,10,5,5,5,5];break;case mxConstants.MILLIMETERS:F=10;A=mxConstants.PIXELS_PER_MM;D=[5,3,3,3,3,6,3,3,3,3];break;case mxConstants.INCHES:F=.5>=a||4<=a?8:16,A=mxConstants.PIXELS_PER_INCH/F,D=[5,3,5,3,7,3,5,3,7,3,5,3,7,3,5,3]}c=A;2<=a?c=A/(2*Math.floor(a/2)):.5>=a&&(c=A*Math.floor(1/a/2)*(l.unit==mxConstants.MILLIMETERS?2:1));A=null;b=g?Math.min(q+(d?b.height:b.width),
-d?f.height:f.width):d?f.height:f.width;g&&(m.fillStyle=n.outBkgClr,d?(m.fillRect(0,k,k,q-k),m.fillRect(0,b,k,f.height)):(m.fillRect(k,0,q-k,k),m.fillRect(b,0,f.width,k)));m.fillStyle=n.fontClr;for(g=g?q:q%(c*a);g<=b;g+=c*a)if(e=Math.round((g-q)/a/c),!(g<k||e==A)){A=e;var I=null;0==e%F&&(I=l.formatText(v+e*c)+"");d?u(k-D[Math.abs(e)%F],g,k,g,I):u(g,k-D[Math.abs(e)%F],g,k,I)}m.lineWidth=1;u(d?0:k,d?k:0,k,k);m.fillStyle=n.cornerClr;m.fillRect(0,0,k,k)};this.drawRuler=v;this.sizeListener=c=g(function(){var a=
-p.container;d?(a=a.offsetHeight+k,f.height!=a&&(f.height=a,q.style.height=a+"px",v())):(a=a.offsetWidth+k,f.width!=a&&(f.width=a,q.style.width=a+"px",v()))},10);this.pageListener=function(){v()};this.scrollListener=b=g(function(){var a=d?p.container.scrollTop:p.container.scrollLeft;l.lastScroll!=a&&(l.lastScroll=a,v())},10);this.unitListener=function(a,b){l.setUnit(b.getProperty("unit"))};p.addListener(mxEvent.SIZE,c);p.container.addEventListener("scroll",b);p.view.addListener("unitChanged",this.unitListener);
+arguments);f()};f();var e=document.createElement("canvas");e.width=q.offsetWidth;e.height=q.offsetHeight;q.style.overflow="hidden";e.style.position="relative";q.appendChild(e);var m=e.getContext("2d");this.ui=a;var p=a.editor.graph;this.graph=p;this.container=q;this.canvas=e;var u=function(a,b,c,e,f){a=Math.round(a);b=Math.round(b);c=Math.round(c);e=Math.round(e);m.beginPath();m.moveTo(a+.5,b+.5);m.lineTo(c+.5,e+.5);m.stroke();f&&(d?(m.save(),m.translate(a,b),m.rotate(-Math.PI/2),m.fillText(f,0,0),
+m.restore()):m.fillText(f,a,b))},v=function(){m.clearRect(0,0,e.width,e.height);m.beginPath();m.lineWidth=.7;m.strokeStyle=n.strokeClr;m.setLineDash([]);m.font="9px Arial";m.textAlign="center";var a=p.view.scale,b=p.view.getBackgroundPageBounds(),c=p.view.translate,f=p.view.getGraphBounds(),g=p.pageVisible,q=g?k+(d?b.y-p.container.scrollTop:b.x-p.container.scrollLeft):k+(d?c.y-p.container.scrollTop:c.x-p.container.scrollLeft),v=0;g&&(v=d?Math.floor(((f.y+1)/a-c.y)/p.pageFormat.height)*p.pageFormat.height*
+a:Math.floor(((f.x+1)/a-c.x)/p.pageFormat.width)*p.pageFormat.width*a);var A,D,F;switch(l.unit){case mxConstants.POINTS:A=F=10;D=[3,5,5,5,5,10,5,5,5,5];break;case mxConstants.MILLIMETERS:F=10;A=mxConstants.PIXELS_PER_MM;D=[5,3,3,3,3,6,3,3,3,3];break;case mxConstants.INCHES:F=.5>=a||4<=a?8:16,A=mxConstants.PIXELS_PER_INCH/F,D=[5,3,5,3,7,3,5,3,7,3,5,3,7,3,5,3]}c=A;2<=a?c=A/(2*Math.floor(a/2)):.5>=a&&(c=A*Math.floor(1/a/2)*(l.unit==mxConstants.MILLIMETERS?2:1));A=null;b=g?Math.min(q+(d?b.height:b.width),
+d?e.height:e.width):d?e.height:e.width;g&&(m.fillStyle=n.outBkgClr,d?(m.fillRect(0,k,k,q-k),m.fillRect(0,b,k,e.height)):(m.fillRect(k,0,q-k,k),m.fillRect(b,0,e.width,k)));m.fillStyle=n.fontClr;for(g=g?q:q%(c*a);g<=b;g+=c*a)if(f=Math.round((g-q)/a/c),!(g<k||f==A)){A=f;var I=null;0==f%F&&(I=l.formatText(v+f*c)+"");d?u(k-D[Math.abs(f)%F],g,k,g,I):u(g,k-D[Math.abs(f)%F],g,k,I)}m.lineWidth=1;u(d?0:k,d?k:0,k,k);m.fillStyle=n.cornerClr;m.fillRect(0,0,k,k)};this.drawRuler=v;this.sizeListener=c=g(function(){var a=
+p.container;d?(a=a.offsetHeight+k,e.height!=a&&(e.height=a,q.style.height=a+"px",v())):(a=a.offsetWidth+k,e.width!=a&&(e.width=a,q.style.width=a+"px",v()))},10);this.pageListener=function(){v()};this.scrollListener=b=g(function(){var a=d?p.container.scrollTop:p.container.scrollLeft;l.lastScroll!=a&&(l.lastScroll=a,v())},10);this.unitListener=function(a,b){l.setUnit(b.getProperty("unit"))};p.addListener(mxEvent.SIZE,c);p.container.addEventListener("scroll",b);p.view.addListener("unitChanged",this.unitListener);
a.addListener("pageViewChanged",this.pageListener);a.addListener("pageScaleChanged",this.pageListener);a.addListener("pageFormatChanged",this.pageListener);this.setStyle=function(a){n=a;q.style.background=n.bkgClr;v()};this.origGuideMove=mxGuide.prototype.move;mxGuide.prototype.move=function(a,b,c,e){var f;if(d&&4<a.height||!d&&4<a.width){if(null!=l.guidePart)try{m.putImageData(l.guidePart.imgData1,l.guidePart.x1,l.guidePart.y1),m.putImageData(l.guidePart.imgData2,l.guidePart.x2,l.guidePart.y2),m.putImageData(l.guidePart.imgData3,
-l.guidePart.x3,l.guidePart.y3)}catch(J){}f=l.origGuideMove.apply(this,arguments);try{var g,p,q,t,v,x,z,C,E;m.lineWidth=.5;m.strokeStyle=n.guideClr;m.setLineDash([2]);d?(p=a.y+f.y+k-this.graph.container.scrollTop,g=0,v=p+a.height/2,t=k/2,C=p+a.height,z=0,q=m.getImageData(g,p-1,k,3),u(g,p,k,p),p--,x=m.getImageData(t,v-1,k,3),u(t,v,k,v),v--,E=m.getImageData(z,C-1,k,3),u(z,C,k,C),C--):(p=0,g=a.x+f.x+k-this.graph.container.scrollLeft,v=k/2,t=g+a.width/2,C=0,z=g+a.width,q=m.getImageData(g-1,p,3,k),u(g,
-p,g,k),g--,x=m.getImageData(t-1,v,3,k),u(t,v,t,k),t--,E=m.getImageData(z-1,C,3,k),u(z,C,z,k),z--);if(null==l.guidePart||l.guidePart.x1!=g||l.guidePart.y1!=p)l.guidePart={imgData1:q,x1:g,y1:p,imgData2:x,x2:t,y2:v,imgData3:E,x3:z,y3:C}}catch(J){}}else f=l.origGuideMove.apply(this,arguments);return f};this.origGuideDestroy=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){var a=l.origGuideDestroy.apply(this,arguments);if(null!=l.guidePart)try{m.putImageData(l.guidePart.imgData1,l.guidePart.x1,
-l.guidePart.y1),m.putImageData(l.guidePart.imgData2,l.guidePart.x2,l.guidePart.y2),m.putImageData(l.guidePart.imgData3,l.guidePart.x3,l.guidePart.y3),l.guidePart=null}catch(z){}return a}}mxRuler.prototype.RULER_THICKNESS=14;mxRuler.prototype.unit=mxConstants.POINTS;mxRuler.prototype.setUnit=function(a){this.unit=a;this.drawRuler()};
+l.guidePart.x3,l.guidePart.y3)}catch(K){}f=l.origGuideMove.apply(this,arguments);try{var g,p,q,t,v,z,y,B,E;m.lineWidth=.5;m.strokeStyle=n.guideClr;m.setLineDash([2]);d?(p=a.y+f.y+k-this.graph.container.scrollTop,g=0,v=p+a.height/2,t=k/2,B=p+a.height,y=0,q=m.getImageData(g,p-1,k,3),u(g,p,k,p),p--,z=m.getImageData(t,v-1,k,3),u(t,v,k,v),v--,E=m.getImageData(y,B-1,k,3),u(y,B,k,B),B--):(p=0,g=a.x+f.x+k-this.graph.container.scrollLeft,v=k/2,t=g+a.width/2,B=0,y=g+a.width,q=m.getImageData(g-1,p,3,k),u(g,
+p,g,k),g--,z=m.getImageData(t-1,v,3,k),u(t,v,t,k),t--,E=m.getImageData(y-1,B,3,k),u(y,B,y,k),y--);if(null==l.guidePart||l.guidePart.x1!=g||l.guidePart.y1!=p)l.guidePart={imgData1:q,x1:g,y1:p,imgData2:z,x2:t,y2:v,imgData3:E,x3:y,y3:B}}catch(K){}}else f=l.origGuideMove.apply(this,arguments);return f};this.origGuideDestroy=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){var a=l.origGuideDestroy.apply(this,arguments);if(null!=l.guidePart)try{m.putImageData(l.guidePart.imgData1,l.guidePart.x1,
+l.guidePart.y1),m.putImageData(l.guidePart.imgData2,l.guidePart.x2,l.guidePart.y2),m.putImageData(l.guidePart.imgData3,l.guidePart.x3,l.guidePart.y3),l.guidePart=null}catch(y){}return a}}mxRuler.prototype.RULER_THICKNESS=14;mxRuler.prototype.unit=mxConstants.POINTS;mxRuler.prototype.setUnit=function(a){this.unit=a;this.drawRuler()};
mxRuler.prototype.formatText=function(a){switch(this.unit){case mxConstants.POINTS:return Math.round(a);case mxConstants.MILLIMETERS:return(a/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.INCHES:return(a/mxConstants.PIXELS_PER_INCH).toFixed(2)}};
mxRuler.prototype.destroy=function(){this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.graph.removeListener(this.sizeListener);this.graph.container.removeEventListener("scroll",this.scrollListener);this.graph.view.removeListener("unitChanged",this.unitListener);this.ui.removeListener("pageViewChanged",this.pageListener);this.ui.removeListener("pageScaleChanged",this.pageListener);this.ui.removeListener("pageFormatChanged",
this.pageListener);null!=this.container&&this.container.parentNode.removeChild(this.container)};
function mxDualRuler(a,c){var d=new mxPoint(mxRuler.prototype.RULER_THICKNESS,mxRuler.prototype.RULER_THICKNESS);this.editorUiGetDiagContOffset=a.getDiagramContainerOffset;a.getDiagramContainerOffset=function(){return d};this.editorUiRefresh=a.refresh;this.ui=a;this.origGuideMove=mxGuide.prototype.move;this.origGuideDestroy=mxGuide.prototype.destroy;this.vRuler=new mxRuler(a,c,!0);this.hRuler=new mxRuler(a,c,!1,!0);var b=mxUtils.bind(this,function(b){var c=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,
-function(b){c=null!=a.currentMenu;mxEvent.consume(b)}),null,mxUtils.bind(this,function(d){if(a.editor.graph.isEnabled()&&!a.editor.graph.isMouseDown&&(mxEvent.isTouchEvent(d)||mxEvent.isPopupTrigger(d))){a.editor.graph.popupMenuHandler.hideMenu();a.hideCurrentMenu();if(!mxEvent.isTouchEvent(d)||!c){var e=new mxPopupMenu(mxUtils.bind(this,function(b,c){a.menus.addMenuItems(b,["points","millimeters"],c)}));e.div.className+=" geMenubarMenu";e.smartSeparators=!0;e.showDisabled=!0;e.autoExpand=!0;e.hideMenu=
-mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);a.resetCurrentMenu();e.destroy()});var g=mxEvent.getClientX(d),k=mxEvent.getClientY(d);e.popup(g,k,null,d);a.setCurrentMenu(e,b)}mxEvent.consume(d)}}))});b(this.hRuler.container);b(this.vRuler.container);this.vRuler.drawRuler();this.hRuler.drawRuler()}mxDualRuler.prototype.setUnit=function(a){this.vRuler.setUnit(a);this.hRuler.setUnit(a)};mxDualRuler.prototype.setStyle=function(a){this.vRuler.setStyle(a);this.hRuler.setStyle(a)};
-mxDualRuler.prototype.destroy=function(){this.vRuler.destroy();this.hRuler.destroy();this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.ui.getDiagramContainerOffset=this.editorUiGetDiagContOffset};function mxFreehand(a){var c=null!=a.view&&null!=a.view.canvas?a.view.canvas.ownerSVGElement:null;if(null!=a.container&&null!=c){var d=mxFreehand.prototype.NORMAL_SMOOTHING,b=null,e=[],g,k=[],l,n=!1,q=!0,f=[],m=!1,p=!0;this.setClosedPath=function(a){n=a};this.setAutoClose=function(a){q=a};this.setStopClickEnabled=function(a){p=a};this.setSmoothing=function(a){d=a};var u=function(b){m=b;a.getRubberband().setEnabled(!b);a.graphHandler.setSelectEnabled(!b);a.graphHandler.setMoveEnabled(!b);a.container.style.cursor=
-b?"crosshair":"";a.fireEvent(new mxEventObject("freehandStateChanged"))};this.startDrawing=function(){u(!0)};this.isDrawing=function(){return m};var v=mxUtils.bind(this,function(a){if(b){var c=p&&0<k.length&&null!=l&&2>l.length;c||k.push.apply(k,l);l=[];k.push(null);e.push(b);b=null;c&&this.stopDrawing();mxEvent.consume(a)}});this.stopDrawing=function(){if(0<e.length){for(var c=k[0].x,d=k[0].x,f=k[0].y,g=k[0].y,l=1;l<k.length;l++)null!=k[l]&&(c=Math.max(c,k[l].x),d=Math.min(d,k[l].x),f=Math.max(f,
-k[l].y),g=Math.min(g,k[l].y));c-=d;f-=g;if(0<c&&0<f){var m=100/c,p=100/f;k.map(function(a){if(null==a)return a;a.x=(a.x-d)*m;a.y=(a.y-g)*p;return a});for(var t='<shape strokewidth="inherit"><foreground>',v=0,l=0;l<k.length;l++){var x=k[l];if(null==x){var x=!1,v=k[v],z=k[l-1];!n&&q&&(x=v.x-z.x,z=v.y-z.y,x=Math.sqrt(x*x+z*z)<=a.tolerance);if(n||x)t+='<line x="'+v.x.toFixed(2)+'" y="'+v.y.toFixed(2)+'"/>';t+="</path>"+(n||x?"<fillstroke/>":"<stroke/>");v=l+1}else t=l==v?t+('<path><move x="'+x.x.toFixed(2)+
-'" y="'+x.y.toFixed(2)+'"/>'):t+('<line x="'+x.x.toFixed(2)+'" y="'+x.y.toFixed(2)+'"/>')}var l=mxConstants.STYLE_SHAPE+"=stencil("+Graph.compress(t+"</foreground></shape>")+");fillColor=none;",t=a.view.scale,v=a.view.translate,J=new mxCell("",new mxGeometry(d/t-v.x,g/t-v.y,c/t,f/t),l);J.vertex=1;a.model.beginUpdate();try{J=a.addCell(J)}finally{a.model.endUpdate()}a.fireEvent(new mxEventObject("cellsInserted","cells",[J]));a.fireEvent(new mxEventObject("freehandInserted","cell",J));setTimeout(function(){a.setSelectionCells([J])},
-10)}for(l=0;l<e.length;l++)e[l].parentNode.removeChild(e[l]);b=null;e=[];k=[]}u(!1)};mxEvent.addGestureListeners(c,function(d){if(m){var e=parseFloat(a.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1),e=Math.max(1,e*a.view.scale);b=document.createElementNS("http://www.w3.org/2000/svg","path");b.setAttribute("fill","none");b.setAttribute("stroke",a.currentVertexStyle[mxConstants.STYLE_STROKECOLOR]||"#000");b.setAttribute("stroke-width",e);if("1"==a.currentVertexStyle[mxConstants.STYLE_DASHED]){var n=
-a.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",n=n.split(" ").map(function(a){return parseFloat(a)*e}).join(" ");b.setAttribute("stroke-dasharray",n)}f=[];n=t(d);z(n);g="M"+n.x+" "+n.y;k.push(n);l=[];b.setAttribute("d",g);c.appendChild(b);mxEvent.consume(d)}},function(a){if(b){z(t(a));var c=x(0);if(c){g+=" L"+c.x+" "+c.y;k.push(c);var d="";l=[];for(var e=2;e<f.length;e+=2)c=x(e),d+=" L"+c.x+" "+c.y,l.push(c);b.setAttribute("d",g+d)}mxEvent.consume(a)}},v);var t=function(b){return mxUtils.convertPoint(a.container,
-mxEvent.getClientX(b),mxEvent.getClientY(b))},z=function(a){for(f.push(a);f.length>d;)f.shift()},x=function(a){var b=f.length;if(1===b%2||b>=d){var c=0,e=0,g,k=0;for(g=a;g<b;g++)k++,a=f[g],c+=a.x,e+=a.y;return{x:c/k,y:e/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;
+function(b){c=null!=a.currentMenu;mxEvent.consume(b)}),null,mxUtils.bind(this,function(d){if(a.editor.graph.isEnabled()&&!a.editor.graph.isMouseDown&&(mxEvent.isTouchEvent(d)||mxEvent.isPopupTrigger(d))){a.editor.graph.popupMenuHandler.hideMenu();a.hideCurrentMenu();if(!mxEvent.isTouchEvent(d)||!c){var f=new mxPopupMenu(mxUtils.bind(this,function(b,c){a.menus.addMenuItems(b,["points","millimeters"],c)}));f.div.className+=" geMenubarMenu";f.smartSeparators=!0;f.showDisabled=!0;f.autoExpand=!0;f.hideMenu=
+mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(f,arguments);a.resetCurrentMenu();f.destroy()});var g=mxEvent.getClientX(d),k=mxEvent.getClientY(d);f.popup(g,k,null,d);a.setCurrentMenu(f,b)}mxEvent.consume(d)}}))});b(this.hRuler.container);b(this.vRuler.container);this.vRuler.drawRuler();this.hRuler.drawRuler()}mxDualRuler.prototype.setUnit=function(a){this.vRuler.setUnit(a);this.hRuler.setUnit(a)};mxDualRuler.prototype.setStyle=function(a){this.vRuler.setStyle(a);this.hRuler.setStyle(a)};
+mxDualRuler.prototype.destroy=function(){this.vRuler.destroy();this.hRuler.destroy();this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.ui.getDiagramContainerOffset=this.editorUiGetDiagContOffset};function mxFreehand(a){var c=null!=a.view&&null!=a.view.canvas?a.view.canvas.ownerSVGElement:null;if(null!=a.container&&null!=c){var d=mxFreehand.prototype.NORMAL_SMOOTHING,b=null,f=[],g,k=[],l,n=!1,q=!0,e=[],m=!1,p=!0;this.setClosedPath=function(a){n=a};this.setAutoClose=function(a){q=a};this.setStopClickEnabled=function(a){p=a};this.setSmoothing=function(a){d=a};var u=function(b){m=b;a.getRubberband().setEnabled(!b);a.graphHandler.setSelectEnabled(!b);a.graphHandler.setMoveEnabled(!b);a.container.style.cursor=
+b?"crosshair":"";a.fireEvent(new mxEventObject("freehandStateChanged"))};this.startDrawing=function(){u(!0)};this.isDrawing=function(){return m};var v=mxUtils.bind(this,function(a){if(b){var c=p&&0<k.length&&null!=l&&2>l.length;c||k.push.apply(k,l);l=[];k.push(null);f.push(b);b=null;c&&this.stopDrawing();mxEvent.consume(a)}});this.stopDrawing=function(){if(0<f.length){for(var c=k[0].x,d=k[0].x,e=k[0].y,g=k[0].y,l=1;l<k.length;l++)null!=k[l]&&(c=Math.max(c,k[l].x),d=Math.min(d,k[l].x),e=Math.max(e,
+k[l].y),g=Math.min(g,k[l].y));c-=d;e-=g;if(0<c&&0<e){var m=100/c,p=100/e;k.map(function(a){if(null==a)return a;a.x=(a.x-d)*m;a.y=(a.y-g)*p;return a});for(var t='<shape strokewidth="inherit"><foreground>',v=0,l=0;l<k.length;l++){var y=k[l];if(null==y){var y=!1,v=k[v],z=k[l-1];!n&&q&&(y=v.x-z.x,z=v.y-z.y,y=Math.sqrt(y*y+z*z)<=a.tolerance);if(n||y)t+='<line x="'+v.x.toFixed(2)+'" y="'+v.y.toFixed(2)+'"/>';t+="</path>"+(n||y?"<fillstroke/>":"<stroke/>");v=l+1}else t=l==v?t+('<path><move x="'+y.x.toFixed(2)+
+'" y="'+y.y.toFixed(2)+'"/>'):t+('<line x="'+y.x.toFixed(2)+'" y="'+y.y.toFixed(2)+'"/>')}var l=mxConstants.STYLE_SHAPE+"=stencil("+Graph.compress(t+"</foreground></shape>")+");fillColor=none;",t=a.view.scale,v=a.view.translate,K=new mxCell("",new mxGeometry(d/t-v.x,g/t-v.y,c/t,e/t),l);K.vertex=1;a.model.beginUpdate();try{K=a.addCell(K)}finally{a.model.endUpdate()}a.fireEvent(new mxEventObject("cellsInserted","cells",[K]));a.fireEvent(new mxEventObject("freehandInserted","cell",K));setTimeout(function(){a.setSelectionCells([K])},
+10)}for(l=0;l<f.length;l++)f[l].parentNode.removeChild(f[l]);b=null;f=[];k=[]}u(!1)};mxEvent.addGestureListeners(c,function(d){if(m){var f=parseFloat(a.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1),f=Math.max(1,f*a.view.scale);b=document.createElementNS("http://www.w3.org/2000/svg","path");b.setAttribute("fill","none");b.setAttribute("stroke",a.currentVertexStyle[mxConstants.STYLE_STROKECOLOR]||"#000");b.setAttribute("stroke-width",f);if("1"==a.currentVertexStyle[mxConstants.STYLE_DASHED]){var n=
+a.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",n=n.split(" ").map(function(a){return parseFloat(a)*f}).join(" ");b.setAttribute("stroke-dasharray",n)}e=[];n=t(d);y(n);g="M"+n.x+" "+n.y;k.push(n);l=[];b.setAttribute("d",g);c.appendChild(b);mxEvent.consume(d)}},function(a){if(b){y(t(a));var c=z(0);if(c){g+=" L"+c.x+" "+c.y;k.push(c);var d="";l=[];for(var f=2;f<e.length;f+=2)c=z(f),d+=" L"+c.x+" "+c.y,l.push(c);b.setAttribute("d",g+d)}mxEvent.consume(a)}},v);var t=function(b){return mxUtils.convertPoint(a.container,
+mxEvent.getClientX(b),mxEvent.getClientY(b))},y=function(a){for(e.push(a);e.length>d;)e.shift()},z=function(a){var b=e.length;if(1===b%2||b>=d){var c=0,f=0,g,k=0;for(g=a;g<b;g++)k++,a=e[g],c+=a.x,f+=a.y;return{x:c/k,y:f/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;
diff --git a/src/main/webapp/js/croppie/croppie.min.css b/src/main/webapp/js/croppie/croppie.min.css
index 8a6e78b0..a86035bd 100644
--- a/src/main/webapp/js/croppie/croppie.min.css
+++ b/src/main/webapp/js/croppie/croppie.min.css
@@ -1,2 +1 @@
.croppie-container{width:100%;height:100%}.croppie-container .cr-image{z-index:-1;position:absolute;top:0;left:0;transform-origin:0 0;max-height:none;max-width:none}.croppie-container .cr-boundary{position:relative;overflow:hidden;margin:0 auto;z-index:1;width:100%;height:100%}.croppie-container .cr-resizer,.croppie-container .cr-viewport{position:absolute;border:2px solid #fff;margin:auto;top:0;bottom:0;right:0;left:0;box-shadow:0 0 2000px 2000px rgba(0,0,0,.5);z-index:0}.croppie-container .cr-resizer{z-index:2;box-shadow:none;pointer-events:none}.croppie-container .cr-resizer-horisontal,.croppie-container .cr-resizer-vertical{position:absolute;pointer-events:all}.croppie-container .cr-resizer-horisontal::after,.croppie-container .cr-resizer-vertical::after{display:block;position:absolute;box-sizing:border-box;border:1px solid #000;background:#fff;width:10px;height:10px;content:''}.croppie-container .cr-resizer-vertical{bottom:-5px;cursor:row-resize;width:100%;height:10px}.croppie-container .cr-resizer-vertical::after{left:50%;margin-left:-5px}.croppie-container .cr-resizer-horisontal{right:-5px;cursor:col-resize;width:10px;height:100%}.croppie-container .cr-resizer-horisontal::after{top:50%;margin-top:-5px}.croppie-container .cr-original-image{display:none}.croppie-container .cr-vp-circle{border-radius:50%}.croppie-container .cr-overlay{z-index:1;position:absolute;cursor:move;touch-action:none}.croppie-container .cr-slider-wrap{width:75%;margin:15px auto;text-align:center}.croppie-result{position:relative;overflow:hidden}.croppie-result img{position:absolute}.croppie-container .cr-image,.croppie-container .cr-overlay,.croppie-container .cr-viewport{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.cr-slider{-webkit-appearance:none;width:300px;max-width:100%;padding-top:8px;padding-bottom:8px;background-color:transparent}.cr-slider::-webkit-slider-runnable-track{width:100%;height:3px;background:rgba(0,0,0,.5);border:0;border-radius:3px}.cr-slider::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:-6px}.cr-slider:focus{outline:0}.cr-slider::-moz-range-track{width:100%;height:3px;background:rgba(0,0,0,.5);border:0;border-radius:3px}.cr-slider::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:-6px}.cr-slider:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}.cr-slider::-ms-track{width:100%;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}.cr-slider::-ms-fill-lower{background:rgba(0,0,0,.5);border-radius:10px}.cr-slider::-ms-fill-upper{background:rgba(0,0,0,.5);border-radius:10px}.cr-slider::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:1px}.cr-slider:focus::-ms-fill-lower{background:rgba(0,0,0,.5)}.cr-slider:focus::-ms-fill-upper{background:rgba(0,0,0,.5)}.cr-rotate-controls{position:absolute;bottom:5px;left:5px;z-index:1}.cr-rotate-controls button{border:0;background:0 0}.cr-rotate-controls i:before{display:inline-block;font-style:normal;font-weight:900;font-size:22px}.cr-rotate-l i:before{content:'↺'}.cr-rotate-r i:before{content:'↻'}
-/*# sourceMappingURL=croppie.min.css.map */ \ No newline at end of file
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index 6bb3dd1f..c4598fa8 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -1227,7 +1227,7 @@ App.prototype.init = function()
}));
}
- var createFooter = mxUtils.bind(this, function(label, link, className, closeHandler, helpLink, clickHandler)
+ var createFooter = mxUtils.bind(this, function(label, link, className, closeHandler, helpLink, clickHandler, noBlank)
{
var footer = document.createElement('div');
footer.style.cssText = 'position:absolute;bottom:0px;max-width:90%;padding:10px;padding-right:26px;' +
@@ -1241,7 +1241,7 @@ App.prototype.init = function()
mxUtils.setPrefixedStyle(footer.style, 'transition', 'all 1s ease');
footer.style.whiteSpace = 'nowrap';
footer.innerHTML = '<a href="' + ((link != null) ? link : 'javascript:void(0)') +
- '" target="_blank" style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;">' +
+ '" ' + ((!noBlank) ? 'target="_blank" ' : '') + 'style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;">' +
icn + label + icn + '</a>' + ((helpLink != null) ? '<a href="' + helpLink +
'" target="_blank" style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;margin-right:8px;">Help</a>' : '');
@@ -1258,13 +1258,21 @@ App.prototype.init = function()
if (closeHandler)
{
- mxEvent.addListener(img, 'click', closeHandler);
+ mxEvent.addListener(img, 'click', mxUtils.bind(this, function(e)
+ {
+ closeHandler(e);
+ mxEvent.consume(e);
+ }));
}
if (clickHandler != null)
{
footer.style.paddingRight = '40px';
- mxEvent.addListener(footer, 'click', clickHandler);
+
+ mxEvent.addListener(footer, 'click', mxUtils.bind(this, function(e)
+ {
+ clickHandler(e);
+ }));
}
return footer;
@@ -1537,15 +1545,34 @@ App.prototype.init = function()
this.editor.addListener('fileLoaded', mxUtils.bind(this, function()
{
var file = this.getCurrentFile();
+ var mode = (file != null) ? file.getMode() : null;
- if (file.mode == App.MODE_DEVICE && (!isLocalStorage || mxSettings.settings == null ||
+ if ((mode == App.MODE_DEVICE || mode == App.MODE_BROWSER) && (!isLocalStorage || mxSettings.settings == null ||
mxSettings.settings.closeDesktopFooter == null) && !this.footerShowing && urlParams['open'] == null)
{
- var footer = createFooter('<img border="0" align="absmiddle" style="margin-top:-6px;cursor:pointer;margin-left:8px;margin-right:12px;width:24px;height:24px;" src="' +
- IMAGE_PATH + '/logo.png' + '"><font size="3" style="color:#ffffff;">' +
- mxUtils.htmlEntities(mxResources.get('downloadDesktop')) + '</font>',
- 'https://get.draw.io/', 'geStatusMessage geBtn gePrimaryBtn',
- mxUtils.bind(this, function()
+ mxUtils.get('https://api.github.com/repos/jgraph/drawio-desktop/releases/latest', mxUtils.bind(this, function(req)
+ {
+ var rel = JSON.parse(req.getText());
+ var href = 'https://get.draw.io/';
+
+ if (rel != null)
+ {
+ if (rel.tag_name != null && rel.name != null && rel.html_url != null)
+ {
+ if (mxClient.IS_MAC)
+ {
+ href = 'https://github.com/jgraph/drawio-desktop/releases/download/' +
+ rel.tag_name + '/draw.io-' + rel.name + '.dmg';
+ }
+ else if (mxClient.IS_WIN)
+ {
+ href = 'https://github.com/jgraph/drawio-desktop/releases/download/' +
+ rel.tag_name + '/draw.io-' + rel.name + '-windows-installer.exe';
+ }
+ }
+ }
+
+ var closeHandler = mxUtils.bind(this, function()
{
footer.parentNode.removeChild(footer);
this.footerShowing = false;
@@ -1557,25 +1584,31 @@ App.prototype.init = function()
mxSettings.settings.closeDesktopFooter = Date.now();
mxSettings.save();
}
- }));
-
- // Push to after splash dialog background
- footer.style.zIndex = mxPopupMenu.prototype.zIndex;
- footer.style.padding = '18px 50px 12px 30px';
- footer.getElementsByTagName('img')[1].style.filter = 'invert(1)';
- document.body.appendChild(footer);
- this.footerShowing = true;
-
- window.setTimeout(mxUtils.bind(this, function()
- {
- mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,0%)');
- }), 500);
-
- window.setTimeout(mxUtils.bind(this, function()
- {
- mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,110%)');
- this.footerShowing = false;
- }), 60000);
+ });
+
+ var footer = createFooter('<img border="0" align="absmiddle" style="margin-top:-6px;cursor:pointer;margin-left:8px;margin-right:12px;width:24px;height:24px;" src="' +
+ IMAGE_PATH + '/logo.png' + '"><font size="3" style="color:#ffffff;">' +
+ mxUtils.htmlEntities(mxResources.get('downloadDesktop')) + '</font>',
+ href, 'geStatusMessage geBtn gePrimaryBtn', closeHandler, null, closeHandler);
+
+ // Push to after splash dialog background
+ footer.style.zIndex = mxPopupMenu.prototype.zIndex;
+ footer.style.padding = '18px 50px 12px 30px';
+ footer.getElementsByTagName('img')[1].style.filter = 'invert(1)';
+ document.body.appendChild(footer);
+ this.footerShowing = true;
+
+ window.setTimeout(mxUtils.bind(this, function()
+ {
+ mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,0%)');
+ }), 500);
+
+ window.setTimeout(mxUtils.bind(this, function()
+ {
+ mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,110%)');
+ this.footerShowing = false;
+ }), 60000);
+ }));
}
// else if ((!isLocalStorage || mxSettings.settings == null ||
// mxSettings.settings.closeRateFooter == null) &&
diff --git a/src/main/webapp/js/diagramly/Devel.js b/src/main/webapp/js/diagramly/Devel.js
index 261aec18..c28124a6 100644
--- a/src/main/webapp/js/diagramly/Devel.js
+++ b/src/main/webapp/js/diagramly/Devel.js
@@ -13,6 +13,7 @@ mxscript(drawDevUrl + 'js/deflate/pako.min.js');
mxscript(drawDevUrl + 'js/deflate/base64.js');
mxscript(drawDevUrl + 'js/jscolor/jscolor.js');
mxscript(drawDevUrl + 'js/sanitizer/sanitizer.min.js');
+mxscript(drawDevUrl + 'js/croppie/croppie.min.js');
// Uses grapheditor from devhost
mxscript(geBasePath +'/Editor.js');
@@ -143,9 +144,6 @@ mxscript(drawDevUrl + 'js/jszip/jszip.min.js');
//GraphMl Import
mxscript(drawDevUrl + 'js/diagramly/graphml/mxGraphMlCodec.js');
-//Croppie
-mxscript(drawDevUrl + 'js/croppie/croppie.min.js');
-
//Table Layout
if (urlParams['tableLayout'] == '1')
{
diff --git a/src/main/webapp/js/diagramly/DriveClient.js b/src/main/webapp/js/diagramly/DriveClient.js
index 553b6630..ebc6080d 100644
--- a/src/main/webapp/js/diagramly/DriveClient.js
+++ b/src/main/webapp/js/diagramly/DriveClient.js
@@ -1186,6 +1186,7 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
{
try
{
+ var retryCount = 0;
file.saveLevel = 1;
var error = mxUtils.bind(this, function(e)
@@ -1246,6 +1247,8 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
'\nUser=' + ((this.user != null) ? this.user.id : 'nouser') +
((file.sync != null) ? '-client_' + file.sync.clientId : '-nosync') +
'\nSaveLevel=' + file.saveLevel +
+ '\nSaveAsPng=' + (this.ui.useCanvasForExport && /(\.png)$/i.test(file.getTitle())) +
+ '\nRetryCount=' + retryCount +
'\nMessage=' + e.message +
'\n\nStack:\n' + e.stack);
}
@@ -1359,6 +1362,7 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
try
{
file.saveDelay = new Date().getTime() - t0;
+ file.saveLevel = 16;
if (resp == null)
{
@@ -1371,6 +1375,7 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
if (delta <= 0 || etag0 == resp.etag || (revision && head0 == resp.headRevisionId))
{
+ file.saveLevel = 17;
var reasons = [];
if (delta <= 0)
@@ -1486,7 +1491,6 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
var etag = (!overwrite && file.constructor == DriveFile &&
(DrawioFile.SYNC == 'manual' || DrawioFile.SYNC == 'auto')) ?
file.getCurrentEtag() : null;
- var retryCount = 0;
var doExecuteSave = mxUtils.bind(this, function(realOverwrite)
{
@@ -1522,7 +1526,7 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
if (acceptResponse)
{
file.saveLevel = 6;
-
+
try
{
if (!file.isConflict(err))
@@ -1538,7 +1542,7 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
mxUtils.bind(this, function(resp)
{
file.saveLevel = 7;
-
+
try
{
// Stale etag detected, retry with delay
@@ -1551,7 +1555,6 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
var delay = retryCount * 2 * this.coolOff * jitter;
window.setTimeout(executeSave, delay);
-
if (urlParams['test'] == '1')
{
EditorUi.debug('DriveClient: Stale Etag Detected',
@@ -1627,10 +1630,12 @@ DriveClient.prototype.saveFile = function(file, revision, success, errFn, noChec
if (realOverwrite)
{
+ file.saveLevel = 14;
doExecuteSave(realOverwrite);
}
else
{
+ file.saveLevel = 15;
var acceptResponse = true;
// Allow for re-auth flow with 3x timeout
@@ -1898,7 +1903,8 @@ DriveClient.prototype.createUploadRequest = function(id, metadata, data, revisio
var reqObj =
{
- 'fullUrl': 'https://content.googleapis.com/upload/drive/v2/files' + (id != null ? '/' + id : '') + '?uploadType=multipart&supportsTeamDrives=true&fields=' + this.allFields,
+ 'fullUrl': 'https://content.googleapis.com/upload/drive/v2/files' + (id != null ? '/' + id : '') +
+ '?uploadType=multipart&supportsTeamDrives=true&fields=' + this.allFields,
'method': (id != null) ? 'PUT' : 'POST',
'headers': headers,
'params': delim + 'Content-Type: application/json\r\n\r\n' + JSON.stringify(metadata) + delim +
@@ -1908,12 +1914,12 @@ DriveClient.prototype.createUploadRequest = function(id, metadata, data, revisio
if (!revision)
{
- reqObj.url += '&newRevision=false';
+ reqObj.fullUrl += '&newRevision=false';
}
if (pinned)
{
- reqObj.url += '&pinned=true';
+ reqObj.fullUrl += '&pinned=true';
}
return reqObj;
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index dc5f93f6..55a4fedb 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -226,6 +226,12 @@
{name: 'editable', dispName: 'Editable', type: 'bool', defVal: true},
{name: 'backgroundOutline', dispName: 'Background Outline', type: 'bool', defVal: false},
{name: 'movable', dispName: 'Movable', type: 'bool', defVal: true},
+ {name: 'movableLabel', dispName: 'Movable Label', type: 'bool', defVal: false, isVisible: function(state, format)
+ {
+ var geo = (state.vertices.length > 0) ? format.editorUi.editor.graph.getCellGeometry(state.vertices[0]) : null;
+
+ return geo != null && !geo.relative;
+ }},
{name: 'resizable', dispName: 'Resizable', type: 'bool', defVal: true},
{name: 'resizeWidth', dispName: 'Resize Width', type: 'bool', defVal: false},
{name: 'resizeHeight', dispName: 'Resize Height', type: 'bool', defVal: false},
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index e45346b5..744b999d 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -4054,17 +4054,25 @@
win.close();
}
}
-// else if (mxClient.IS_IOS)
-// {
-// this.showTextDialog(filename + ':', data);
-// }
+ else if (mxClient.IS_IOS && mxClient.IS_SF && this.isOffline())
+ {
+ // Workaround for "WebKitBlobResource error 1" in mobile Safari
+ if (!navigator.standalone && mimeType != null && mimeType.substring(0, 6) == 'image/')
+ {
+ this.openInNewWindow(data, mimeType, base64Encoded);
+ }
+ else
+ {
+ this.showTextDialog(filename + ':', data);
+ }
+ }
else
{
var a = document.createElement('a');
- // Workaround for mxXmlRequest.simulate no longer working in Safari/PaleMoon
- // if this is used (ie PNG export broken after XML export in Safari/PaleMoon).
- var useDownload = !mxClient.IS_SF && navigator.userAgent.indexOf("PaleMoon/") < 0 &&
+ // Workaround for mxXmlRequest.simulate no longer working in PaleMoon
+ // if this is used (ie PNG export broken after XML export in PaleMoon).
+ var useDownload = navigator.userAgent.indexOf("PaleMoon/") < 0 &&
typeof a.download !== 'undefined';
// Workaround for Chromium 65 cross-domain anchor download issue
@@ -7025,6 +7033,7 @@
try
{
var doc = mxUtils.parseXml(xml);
+ var mapping = {};
// Checks for mxfile with multiple pages
var node = this.editor.extractGraphModel(doc.documentElement, this.pages != null);
@@ -7032,20 +7041,25 @@
if (node != null && node.nodeName == 'mxfile' && this.pages != null)
{
var diagrams = node.getElementsByTagName('diagram');
-
+
if (diagrams.length == 1)
{
node = Editor.parseDiagramNode(diagrams[0]);
+
+ if (this.currentPage != null)
+ {
+ mapping[diagrams[0].getAttribute('id')] = this.currentPage.getId();
+ }
}
else if (diagrams.length > 1)
{
- var mapping = {};
var pages = [];
var i0 = 0;
// Adds first page to current page if current page is only page and empty
if (this.pages != null && this.pages.length == 1 && this.isDiagramEmpty())
{
+ mapping[diagrams[0].getAttribute('id')] = this.pages[0].getId();
node = Editor.parseDiagramNode(diagrams[0]);
crop = false;
i0 = 1;
@@ -7079,6 +7093,11 @@
if (node != null && node.nodeName === 'mxGraphModel')
{
cells = graph.importGraphModel(node, dx, dy, crop);
+
+ for (var i = 0; i < cells.length; i++)
+ {
+ this.updatePageLinksForCell(mapping, cells[i]);
+ }
}
}
finally
@@ -7121,7 +7140,7 @@
var temp = document.createElement('div');
var graph = this.editor.graph;
var href = graph.getLinkForCell(cell);
-
+
if (href != null)
{
graph.setLinkForCell(cell, this.updatePageLink(mapping, href));
@@ -9788,25 +9807,25 @@
{
if (graph.isEditing())
{
- this.importFiles([item.getAsFile()], 0, 0, this.maxImageSize, function(data, mimeType, x, y, w, h)
- {
- // Inserts image into current text box
- graph.insertImage(data, w, h);
- }, function()
- {
- // No post processing
- }, function(file)
- {
- // Handles only images
- return file.type.substring(0, 6) == 'image/';
- }, function(queue)
- {
- // Invokes elements of queue in order
- for (var i = 0; i < queue.length; i++)
- {
- queue[i]();
- }
- });
+ this.importFiles([item.getAsFile()], 0, 0, this.maxImageSize, function(data, mimeType, x, y, w, h)
+ {
+ // Inserts image into current text box
+ graph.insertImage(data, w, h);
+ }, function()
+ {
+ // No post processing
+ }, function(file)
+ {
+ // Handles only images
+ return file.type.substring(0, 6) == 'image/';
+ }, function(queue)
+ {
+ // Invokes elements of queue in order
+ for (var i = 0; i < queue.length; i++)
+ {
+ queue[i]();
+ }
+ });
}
else
{
@@ -10166,8 +10185,6 @@
this.addListener('gridColorChanged', mxUtils.bind(this, function(sender, evt)
{
- console.log('gridColorChanged', this.editor.graph.view.gridColor);
-
mxSettings.setGridColor(this.editor.graph.view.gridColor, uiTheme == 'dark');
mxSettings.save();
}));
@@ -10412,15 +10429,15 @@
{
this.hoverIcons.update(graph.view.getState(graph.getSelectionCell()));
}
+ }
- try
- {
- mxEvent.consume(evt);
- }
- catch (e)
- {
- // ignore event no longer exists in async handler in IE8-
- }
+ try
+ {
+ mxEvent.consume(evt);
+ }
+ catch (e)
+ {
+ // ignore event no longer exists in async handler in IE8-
}
}
else if (!useEvent)
diff --git a/src/main/webapp/js/diagramly/Init.js b/src/main/webapp/js/diagramly/Init.js
index 0246f8ec..2b5f50aa 100644
--- a/src/main/webapp/js/diagramly/Init.js
+++ b/src/main/webapp/js/diagramly/Init.js
@@ -17,7 +17,7 @@ window.isSvgBrowser = window.isSvgBrowser || (navigator.userAgent.indexOf('MSIE'
// CUSTOM_PARAMETERS - URLs for save and export
window.EXPORT_URL = window.EXPORT_URL || 'https://exp.draw.io/ImageExport4/export';
-window.PLANT_URL = window.PLANT_URL || 'https://exp-plant.draw.io/plantuml4';
+window.PLANT_URL = window.PLANT_URL || 'https://exp-plant.draw.io/plantuml-1-2019-7';
window.DRAW_MATH_URL = window.DRAW_MATH_URL || 'https://www.draw.io/math';
window.VSD_CONVERT_URL = window.VSD_CONVERT_URL || 'https://convert.draw.io/VsdConverter/api/converter';
window.EMF_CONVERT_URL = window.EMF_CONVERT_URL || 'https://convert.draw.io/emf2png/convertEMF';
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index 8067af6c..6b18f1e3 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -20,7 +20,7 @@ EditorUi.initMinimalTheme = function()
style.innerHTML = '* { -webkit-font-smoothing: antialiased; }' +
'html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }' +
'html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }' +
- 'table.mxWindow * { font-size:13px; }' +
+ 'table.mxWindow * :not(svg *) { font-size:13px; }' +
'html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }' +
'html body button.geBtn:active { opacity: 0.6; }' +
'html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select:none; }' +
@@ -563,6 +563,8 @@ EditorUi.initMinimalTheme = function()
menu.addSeparator();
this.addSubmenu('layout', menu);
this.addSubmenu('view', menu, null, mxResources.get('options'));
+ menu.addSeparator();
+ this.addSubmenu('insert', menu);
this.addMenuItems(menu, ['-', 'exitGroup'], null, evt);
}
else if (graph.isEnabled())
@@ -770,6 +772,15 @@ EditorUi.initMinimalTheme = function()
}
ui.menus.addSubmenu('exportAs', menu, parent);
+
+ if (mxClient.IS_CHROMEAPP || EditorUi.isElectronApp)
+ {
+ ui.menus.addMenuItems(menu, ['import'], parent);
+ }
+ else
+ {
+ ui.menus.addSubmenu('importFrom', menu, parent);
+ }
ui.menus.addMenuItems(menu, ['-', 'outline', 'layers'], parent);
@@ -899,15 +910,7 @@ EditorUi.initMinimalTheme = function()
{
insertMenuFunct.apply(this, arguments);
menu.addSeparator(parent);
-
- if (mxClient.IS_CHROMEAPP || EditorUi.isElectronApp)
- {
- ui.menus.addMenuItems(menu, ['import'], parent);
- }
- else
- {
- ui.menus.addSubmenu('importFrom', menu, parent);
- }
+ ui.menus.addMenuItems(menu, ['-', 'toggleShapes'], parent);
};
}))();
diff --git a/src/main/webapp/js/diagramly/OneDriveClient.js b/src/main/webapp/js/diagramly/OneDriveClient.js
index 71db58aa..9bab84cf 100644
--- a/src/main/webapp/js/diagramly/OneDriveClient.js
+++ b/src/main/webapp/js/diagramly/OneDriveClient.js
@@ -11,7 +11,7 @@ OneDriveClient = function(editorUi)
if (authInfo != null)
{
this.token = authInfo.access_token;
- this.endpointHint = authInfo.endpointHint;
+ this.endpointHint = authInfo.endpointHint.replace('/Documents', '/_layouts/15/onedrive.aspx');
this.tokenExpiresOn = authInfo.expiresOn;
var remainingTime = (this.tokenExpiresOn - Date.now()) / 1000;
@@ -345,7 +345,8 @@ OneDriveClient.prototype.getAccountTypeAndEndpoint = function(success, error)
if (resp.webUrl.indexOf('.sharepoint.com') > 0)
{
- this.endpointHint = resp.webUrl;
+ //TODO Confirm this works with all sharepoint sites
+ this.endpointHint = resp.webUrl.replace('/Documents', '/_layouts/15/onedrive.aspx');
}
else
{
diff --git a/src/main/webapp/js/diagramly/Pages.js b/src/main/webapp/js/diagramly/Pages.js
index 45e32509..94000054 100644
--- a/src/main/webapp/js/diagramly/Pages.js
+++ b/src/main/webapp/js/diagramly/Pages.js
@@ -1649,6 +1649,16 @@ EditorUi.prototype.createPageMenu = function(page, label)
{
this.duplicatePage(page, mxResources.get('copyOf', [page.getName()]));
}), parent);
+
+ if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp && this.getServiceName() == 'draw.io')
+ {
+ menu.addSeparator(parent);
+
+ menu.addItem(mxResources.get('openInNewWindow'), null, mxUtils.bind(this, function()
+ {
+ this.editor.editAsNew(this.getFileData(true, null, null, null, true, true));
+ }), parent);
+ }
});
};
diff --git a/src/main/webapp/js/diagramly/vsdx/importer.js b/src/main/webapp/js/diagramly/vsdx/importer.js
index f6be6970..c236519d 100644
--- a/src/main/webapp/js/diagramly/vsdx/importer.js
+++ b/src/main/webapp/js/diagramly/vsdx/importer.js
@@ -1305,8 +1305,6 @@ var com;
var master = array129[index128];
{
var shapeGraph = this_1.createMxGraph();
- var shapeElem = master.getMasterShape().getShape();
- var shape = new com.mxgraph.io.vsdx.VsdxShape(page, shapeElem, !page.isEdge(shapeElem), masterShapes, null, this_1.vsdxModel);
var scale = 1;
@@ -1329,34 +1327,46 @@ var com;
scale = pScaleV / dScaleV;
}
+
+ var hasCells = false;
- var cell = null;
- if (shape.isVertex()) {
- /* clear */ this_1.edgeShapeMap.entries = [];
- /* clear */ this_1.parentsMap.entries = [];
- cell = this_1.addShape(shapeGraph, shape, shapeGraph.getDefaultParent(), 0, 1169);
- {
- var array131 = (function (m) { if (m.entries == null)
- m.entries = []; return m.entries; })(this_1.edgeShapeMap);
- for (var index130 = 0; index130 < array131.length; index130++) {
- var edgeEntry = array131[index130];
- {
- var parent_1 = (function (m, k) { if (m.entries == null)
- m.entries = []; for (var i = 0; i < m.entries.length; i++)
- if (m.entries[i].key.equals != null && m.entries[i].key.equals(k) || m.entries[i].key === k) {
- return m.entries[i].value;
- } return null; })(this_1.parentsMap, edgeEntry.getKey());
- this_1.addUnconnectedEdge(shapeGraph, parent_1, edgeEntry.getValue(), 1169);
- }
- }
- }
- }
- else {
- cell = this_1.addUnconnectedEdge(shapeGraph, null, shape, 1169);
+ for (var chI = 0; master.firstLevelShapes != null && chI < master.firstLevelShapes.length; chI++)
+ {
+ var shapeElem = master.firstLevelShapes[chI].getShape();
+ var shape = new com.mxgraph.io.vsdx.VsdxShape(page, shapeElem, !page.isEdge(shapeElem), masterShapes, null, this_1.vsdxModel);
+
+ var cell = null;
+ if (shape.isVertex()) {
+ /* clear */ this_1.edgeShapeMap.entries = [];
+ /* clear */ this_1.parentsMap.entries = [];
+ cell = this_1.addShape(shapeGraph, shape, shapeGraph.getDefaultParent(), 0, 1169);
+ {
+ var array131 = (function (m) { if (m.entries == null)
+ m.entries = []; return m.entries; })(this_1.edgeShapeMap);
+ for (var index130 = 0; index130 < array131.length; index130++) {
+ var edgeEntry = array131[index130];
+ {
+ var parent_1 = (function (m, k) { if (m.entries == null)
+ m.entries = []; for (var i = 0; i < m.entries.length; i++)
+ if (m.entries[i].key.equals != null && m.entries[i].key.equals(k) || m.entries[i].key === k) {
+ return m.entries[i].value;
+ } return null; })(this_1.parentsMap, edgeEntry.getKey());
+ this_1.addUnconnectedEdge(shapeGraph, parent_1, edgeEntry.getValue(), 1169);
+ }
+ }
+ }
+ }
+ else {
+ cell = this_1.addUnconnectedEdge(shapeGraph, null, shape, 1169);
+ }
+
+ hasCells |= (cell != null);
}
- if (cell != null) {
+
+ if (hasCells)
+ {
this_1.scaleGraph(shapeGraph, scale);
- var geo_1 = this_1.normalizeGeo(cell);
+ var size = this_1.normalizeGraph(shapeGraph);
this_1.sanitiseGraph(shapeGraph);
if (shapeGraph.getModel().getChildCount(shapeGraph.getDefaultParent()) === 0)
return "continue";
@@ -1365,9 +1375,9 @@ var com;
var shapeXML_1 = _super.prototype.processPage.call(this_1, shapeGraph, null);
/* append */ (function (sb) { return sb.str = sb.str.concat(shapeXML_1); })(shapes_1);
/* append */ (function (sb) { return sb.str = sb.str.concat("\",\"w\":"); })(shapes_1);
- /* append */ (function (sb) { return sb.str = sb.str.concat(geo_1.width); })(shapes_1);
+ /* append */ (function (sb) { return sb.str = sb.str.concat(size.width); })(shapes_1);
/* append */ (function (sb) { return sb.str = sb.str.concat(",\"h\":"); })(shapes_1);
- /* append */ (function (sb) { return sb.str = sb.str.concat(geo_1.height); })(shapes_1);
+ /* append */ (function (sb) { return sb.str = sb.str.concat(size.height); })(shapes_1);
/* append */ (function (sb) { return sb.str = sb.str.concat(",\"title\":"); })(shapes_1);
var shapeName_1 = master.getName();
if (shapeName_1 == null)
@@ -1430,6 +1440,86 @@ var com;
}
return geo;
};
+
+ mxVssxCodec.prototype.normalizeGraph = function (graph)
+ {
+ //Find minX/Y, maxX/Y
+ var minX, minY, maxX, maxY;
+
+ function getDimMinMax(pt)
+ {
+ if (pt != null)
+ {
+ if (minX == null)
+ {
+ minX = pt.x; minY = pt.y; maxX = pt.x + (pt.width || 0); maxY = pt.y + (pt.height || 0);
+ }
+ else
+ {
+ minX = Math.min(pt.x, minX);
+ minY = Math.min(pt.y, minY);
+ maxX = Math.max(pt.x + (pt.width || 0), maxX);
+ maxY = Math.max(pt.y + (pt.height || 0), maxY);
+ }
+ }
+ };
+
+ for (var id in graph.model.cells)
+ {
+ var cell = graph.model.cells[id];
+ var geo = cell.geometry;
+
+ if (geo != null && cell.parent.id == 1)
+ {
+ if (cell.vertex)
+ {
+ getDimMinMax(geo);
+ }
+ else
+ {
+ getDimMinMax(geo.sourcePoint);
+ getDimMinMax(geo.targetPoint);
+ var points = geo.points;
+
+ for (var i = 0; points != null && i < points.length; i++)
+ {
+ getDimMinMax(points[i]);
+ }
+ }
+ }
+ }
+
+ //Remove minX, minY from all geo and fix edges also
+ var srcP = {x: minX, y: minY};
+
+ for (var id in graph.model.cells)
+ {
+ var cell = graph.model.cells[id];
+ var geo = cell.geometry;
+
+ if (geo != null && cell.parent.id == 1)
+ {
+ geo.x -= minX;
+ geo.y -= minY;
+
+ if (cell.isEdge())
+ {
+ this.transPoint(geo.sourcePoint, srcP);
+ this.transPoint(geo.targetPoint, srcP);
+ this.transPoint(geo.offset, srcP);
+ var points = geo.points;
+
+ for (var i = 0; points != null && i < points.length; i++)
+ {
+ this.transPoint(points[i], srcP);
+ }
+ }
+ }
+ }
+
+ return {width: maxX - minX, height: maxY - minY}
+ };
+
mxVssxCodec.prototype.transPoint = function (p, srcP) {
if (p != null) {
p.x = (p.x - srcP.x);
@@ -2700,7 +2790,13 @@ var com;
* @param {*} shapeElem
* @param {com.mxgraph.io.vsdx.mxVsdxModel} model
*/
- mxVsdxMaster.prototype.processMasterShape = function (shapeElem, model) {
+ mxVsdxMaster.prototype.processMasterShape = function (shapeElem, model, internal)
+ {
+ if (!internal)
+ {
+ this.firstLevelShapes = [];
+ }
+
var shapeChild = shapeElem.firstChild;
while ((shapeChild != null)) {
if ((shapeChild != null && (shapeChild.nodeType == 1)) && (function (o1, o2) { if (o1 && o1.equals) {
@@ -2722,13 +2818,36 @@ var com;
var masterShape = new com.mxgraph.io.vsdx.Shape(shape, model);
this.masterShape = (this.masterShape == null) ? masterShape : this.masterShape;
/* put */ (this.childShapes[shapeId] = masterShape);
- this.processMasterShape(shape, model);
+
+ if (!internal)
+ {
+ this.firstLevelShapes.push(masterShape);
+ }
+
+ this.processMasterShape(shape, model, true);
}
shapesChild = shapesChild.nextSibling;
}
;
- break;
}
+ else if (shapeChild != null && shapeChild.nodeType == 1 && shapeChild.nodeName == "Connects")
+ {
+ this.connects = {};
+ var connectsChild = shapeChild.firstChild;
+
+ while (connectsChild != null)
+ {
+ if (connectsChild != null && connectsChild.nodeType == 1 && connectsChild.nodeName == "Connect")
+ {
+ var connectElem = connectsChild;
+ var connect = new com.mxgraph.io.vsdx.mxVsdxConnect(connectElem);
+ this.connects[connect.getFromSheet()] = connect;
+ }
+
+ connectsChild = connectsChild.nextSibling;
+ }
+ }
+
shapeChild = shapeChild.nextSibling;
}
;
diff --git a/src/main/webapp/js/extensions.min.js b/src/main/webapp/js/extensions.min.js
index 75e45d39..5a758f5b 100644
--- a/src/main/webapp/js/extensions.min.js
+++ b/src/main/webapp/js/extensions.min.js
@@ -1,241 +1,241 @@
LucidImporter={};
(function(){function c(a){var b=null!=a.Text?a.Text:null!=a.Value?a.Value:a.Lane_0;null==b&&null!=a.State?null!=a.State.t&&(b=a.State):null==b&&null!=a.Note?null!=a.Note.t&&(b=a.Note):null==b&&null!=a.Title?null!=a.Title.t&&(b=a.Title):null!=a.t&&(b=a);null==b&&null!=a.TextAreas&&null!=a.TextAreas.Text&&null!=a.TextAreas.Text.Value&&null!=a.TextAreas.Text.Value.t&&(b=a.TextAreas.Text.Value);if(null!=b){if(null!=b.t)return b.t=b.t.replace(/</g,"&lt;"),b.t=b.t.replace(/>/g,"&gt;"),b.t;if(null!=b.Value&&
-null!=b.Value.t)return b.Value.t=b.Value.t.replace(/</g,"&lt;"),b.Value.t=b.Value.t.replace(/>/g,"&gt;"),b.Value.t}return""}function n(a){return null!=a.Action?a.Action:a}function m(a){if(null!=a.Text){if(null!=a.Text.m)return a.Text.m}else if(null!=a.TextAreas){if(null!=a.TextAreas.Text&&null!=a.TextAreas.Text.Value&&null!=a.TextAreas.Text.Value.m)return a.TextAreas.Text.Value.m}else if(null!=a.m)return a.m;return null}function k(c){return b(c)+a(c)+d(c)+h(c)+p(c)+y(c)+z(c)+x(c)+C(c)+F(c)}function f(a,
-b,d,h){var p="";null!=a&&""!=a&&";"!=a.charAt(a.length-1)&&(p=";");return p+=e(mxConstants.STYLE_FONTSIZE,a,b,d,h)+e(mxConstants.STYLE_FONTCOLOR,a,b,d,h)+e(mxConstants.STYLE_FONTSTYLE,a,b,d,h)+e(mxConstants.STYLE_ALIGN,a,b,d,h)+e(mxConstants.STYLE_SPACING_LEFT,a,b,d,h)+e(mxConstants.STYLE_SPACING_RIGHT,a,b,d,h)+e(mxConstants.STYLE_SPACING_TOP,a,b,d,h)+e(mxConstants.STYLE_SPACING_BOTTOM,a,b,d,h)+e(mxConstants.STYLE_SPACING,a,b,d,h)+e(mxConstants.STYLE_VERTICAL_ALIGN,a,b,d,h)+e(mxConstants.STYLE_STROKECOLOR,
-a,b,d,h)+e(mxConstants.STYLE_OPACITY,a,b,d,h)+e(mxConstants.STYLE_ROUNDED,a,b,d,h)+e(mxConstants.STYLE_ROTATION,a,b,d,h)+e(mxConstants.STYLE_FLIPH,a,b,d,h)+e(mxConstants.STYLE_FLIPV,a,b,d,h)+e(mxConstants.STYLE_SHADOW,a,b,d,h)+e(mxConstants.STYLE_FILLCOLOR,a,b,d,h)+e(mxConstants.STYLE_DASHED,a,b,d,h)+e(mxConstants.STYLE_STROKEWIDTH,a,b,d,h)+e(mxConstants.STYLE_IMAGE,a,b,d,h)}function e(c,e,f,k,g){a:{if(null!=e&&null!=c){if(e.includes(";"+c+"=")){e=!0;break a}if(e.substring(0,c.length+1)==c+"="){e=
-!0;break a}}e=!1}if(!e)switch(c){case mxConstants.STYLE_FONTSIZE:return b(f);case mxConstants.STYLE_FONTCOLOR:return a(f);case mxConstants.STYLE_FONTSTYLE:return d(f);case mxConstants.STYLE_ALIGN:return h(f);case mxConstants.STYLE_SPACING_LEFT:return p(f);case mxConstants.STYLE_SPACING_RIGHT:return y(f);case mxConstants.STYLE_SPACING_TOP:return z(f);case mxConstants.STYLE_SPACING_BOTTOM:return x(f);case mxConstants.STYLE_SPACING:return C(f);case mxConstants.STYLE_VERTICAL_ALIGN:return F(f);case mxConstants.STYLE_STROKECOLOR:return A(f,
-k);case mxConstants.STYLE_OPACITY:return B(f,k,g);case mxConstants.STYLE_ROUNDED:return k=!g.edge&&null!=f.Rounding&&0<f.Rounding?"rounded=1;absoluteArcSize=1;arcSize="+.6*f.Rounding+";":"",k;case mxConstants.STYLE_ROTATION:a:{if(null!=f.Rotation&&(c=mxUtils.toDegree(parseFloat(f.Rotation)),"AdvancedSwimLaneBlockRotated"==k.Class?(c+=90,g.geometry.rotate90()):0<=mxUtils.indexOf(pb,k.Class)?(c-=90,g.geometry.rotate90(),g.geometry.rotate90(),g.geometry.rotate90()):0<=mxUtils.indexOf(Xb,k.Class)&&(c+=
-180,g.geometry.rotate90(),g.geometry.rotate90()),0!=c)){k="rotation="+c+";";break a}k=""}return k;case mxConstants.STYLE_FLIPH:return k=f.FlipX?"flipH=1;":"",k;case mxConstants.STYLE_FLIPV:return k=f.FlipY?"flipV=1;":"",k;case mxConstants.STYLE_SHADOW:return G(f);case mxConstants.STYLE_FILLCOLOR:return D(f,k);case mxConstants.STYLE_DASHED:return Z(f);case mxConstants.STYLE_STROKEWIDTH:return Y(f);case mxConstants.STYLE_IMAGE:return k="ImageSearchBlock2"==k.Class?"image="+f.URL+";":"UserImage2Block"==
+null!=b.Value.t)return b.Value.t=b.Value.t.replace(/</g,"&lt;"),b.Value.t=b.Value.t.replace(/>/g,"&gt;"),b.Value.t}return""}function n(a){return null!=a.Action?a.Action:a}function m(a){if(null!=a.Text){if(null!=a.Text.m)return a.Text.m}else if(null!=a.TextAreas){if(null!=a.TextAreas.Text&&null!=a.TextAreas.Text.Value&&null!=a.TextAreas.Text.Value.m)return a.TextAreas.Text.Value.m}else if(null!=a.m)return a.m;return null}function k(c){return b(c)+a(c)+d(c)+g(c)+p(c)+y(c)+A(c)+x(c)+z(c)+F(c)}function f(a,
+b,d,g){var p="";null!=a&&""!=a&&";"!=a.charAt(a.length-1)&&(p=";");return p+=e(mxConstants.STYLE_FONTSIZE,a,b,d,g)+e(mxConstants.STYLE_FONTCOLOR,a,b,d,g)+e(mxConstants.STYLE_FONTSTYLE,a,b,d,g)+e(mxConstants.STYLE_ALIGN,a,b,d,g)+e(mxConstants.STYLE_SPACING_LEFT,a,b,d,g)+e(mxConstants.STYLE_SPACING_RIGHT,a,b,d,g)+e(mxConstants.STYLE_SPACING_TOP,a,b,d,g)+e(mxConstants.STYLE_SPACING_BOTTOM,a,b,d,g)+e(mxConstants.STYLE_SPACING,a,b,d,g)+e(mxConstants.STYLE_VERTICAL_ALIGN,a,b,d,g)+e(mxConstants.STYLE_STROKECOLOR,
+a,b,d,g)+e(mxConstants.STYLE_OPACITY,a,b,d,g)+e(mxConstants.STYLE_ROUNDED,a,b,d,g)+e(mxConstants.STYLE_ROTATION,a,b,d,g)+e(mxConstants.STYLE_FLIPH,a,b,d,g)+e(mxConstants.STYLE_FLIPV,a,b,d,g)+e(mxConstants.STYLE_SHADOW,a,b,d,g)+e(mxConstants.STYLE_FILLCOLOR,a,b,d,g)+e(mxConstants.STYLE_DASHED,a,b,d,g)+e(mxConstants.STYLE_STROKEWIDTH,a,b,d,g)+e(mxConstants.STYLE_IMAGE,a,b,d,g)}function e(c,e,f,k,h){a:{if(null!=e&&null!=c){if(e.includes(";"+c+"=")){e=!0;break a}if(e.substring(0,c.length+1)==c+"="){e=
+!0;break a}}e=!1}if(!e)switch(c){case mxConstants.STYLE_FONTSIZE:return b(f);case mxConstants.STYLE_FONTCOLOR:return a(f);case mxConstants.STYLE_FONTSTYLE:return d(f);case mxConstants.STYLE_ALIGN:return g(f);case mxConstants.STYLE_SPACING_LEFT:return p(f);case mxConstants.STYLE_SPACING_RIGHT:return y(f);case mxConstants.STYLE_SPACING_TOP:return A(f);case mxConstants.STYLE_SPACING_BOTTOM:return x(f);case mxConstants.STYLE_SPACING:return z(f);case mxConstants.STYLE_VERTICAL_ALIGN:return F(f);case mxConstants.STYLE_STROKECOLOR:return B(f,
+k);case mxConstants.STYLE_OPACITY:return C(f,k,h);case mxConstants.STYLE_ROUNDED:return k=!h.edge&&null!=f.Rounding&&0<f.Rounding?"rounded=1;absoluteArcSize=1;arcSize="+.6*f.Rounding+";":"",k;case mxConstants.STYLE_ROTATION:a:{if(null!=f.Rotation&&(c=mxUtils.toDegree(parseFloat(f.Rotation)),"AdvancedSwimLaneBlockRotated"==k.Class?(c+=90,h.geometry.rotate90()):0<=mxUtils.indexOf(pb,k.Class)?(c-=90,h.geometry.rotate90(),h.geometry.rotate90(),h.geometry.rotate90()):0<=mxUtils.indexOf(Xb,k.Class)&&(c+=
+180,h.geometry.rotate90(),h.geometry.rotate90()),0!=c)){k="rotation="+c+";";break a}k=""}return k;case mxConstants.STYLE_FLIPH:return k=f.FlipX?"flipH=1;":"",k;case mxConstants.STYLE_FLIPV:return k=f.FlipY?"flipV=1;":"",k;case mxConstants.STYLE_SHADOW:return G(f);case mxConstants.STYLE_FILLCOLOR:return D(f,k);case mxConstants.STYLE_DASHED:return Z(f);case mxConstants.STYLE_STROKEWIDTH:return Y(f);case mxConstants.STYLE_IMAGE:return k="ImageSearchBlock2"==k.Class?"image="+f.URL+";":"UserImage2Block"==
k.Class&&null!=f.ImageFillProps&&null!=f.ImageFillProps.url?"image="+f.ImageFillProps.url+";":"",k}return""}function b(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("s"==d.n&&null!=d.v)return"fontSize="+Math.round(.6*d.v)+";";b++}return"fontSize=11;"}function a(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("c"==d.n&&null!=d.v)return a=d.v,"#"!=a.charAt(0)&&(a="#"+a),a=a.substring(0,7),mxConstants.STYLE_FONTCOLOR+"="+a+";";b++}return""}function d(a){a=m(a);if(null!=a){var b=
-0,d=!1;if(null!=a)for(var h=0;!d&&h<a.length;){var p=a[h];"b"==p.n&&null!=p.v&&p.v&&(d=!0,b+=1);h++}d=!1;if(null!=a)for(h=0;!d&&h<a.length;)p=a[h],"i"==p.n&&null!=p.v&&p.v&&(d=!0,b+=2),h++;d=!1;if(null!=a)for(h=0;!d&&h<a.length;)p=a[h],"u"==p.n&&null!=p.v&&p.v&&(d=!0,b+=4),h++;if(0<b)return"fontStyle="+b+";"}return""}function h(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("a"==d.n&&null!=d.v)return"align="+d.v+";";b++}return""}function p(a){var b=m(a);if(null!=b)for(var d=0;d<b.length;){var p=
-b[d];if(null!=p.v){if("il"==p.n)return"spacingLeft="+.6*p.v+";";h(a)}d++}return""}function y(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("ir"==d.n&&null!=d.v)return"spacingRight="+d.v+";";b++}return""}function z(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("mt"==d.n&&null!=d.v)return"spacingTop="+d.v+";";b++}return""}function x(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("mb"==d.n&&null!=d.v)return"spacingBottom="+d.v+";";b++}return""}function C(a){return"number"===
-typeof a.InsetMargin?"spacing="+parseInt(a.InsetMargin)+";":""}function F(a){return null!=a.Text_VAlign&&"string"===typeof a.Text_VAlign?"verticalAlign="+a.Text_VAlign+";":U(mxConstants.STYLE_VERTICAL_ALIGN,a.TextVAlign,"middle")}function A(a,b){return 0==a.LineWidth?mxConstants.STYLE_STROKECOLOR+"=none;":U(mxConstants.STYLE_STROKECOLOR,a.LineColor.substring(0,7),"#000000")}function B(a,b,d){b="";if("string"===typeof a.LineColor&&7<a.LineColor.length){var h="0x"+a.LineColor.substring(a.LineColor.length-
-2,a.LineColor.length);b+="strokeOpacity="+Math.round(parseInt(h)/2.55)+";"}"string"===typeof a.FillColor&&7<a.FillColor.length&&(a="0x"+a.FillColor.substring(a.FillColor.length-2,a.FillColor.length),d.style.includes("fillOpacity")||(b+="fillOpacity="+Math.round(parseInt(a)/2.55)+";"));return b}function G(a){return null!=a.Shadow?mxConstants.STYLE_SHADOW+"=1;":""}function D(a,b){if(null!=a.FillColor)if("object"===typeof a.FillColor){if(null!=a.FillColor.cs&&1<a.FillColor.cs.length)return U(mxConstants.STYLE_FILLCOLOR,
+0,d=!1;if(null!=a)for(var g=0;!d&&g<a.length;){var p=a[g];"b"==p.n&&null!=p.v&&p.v&&(d=!0,b+=1);g++}d=!1;if(null!=a)for(g=0;!d&&g<a.length;)p=a[g],"i"==p.n&&null!=p.v&&p.v&&(d=!0,b+=2),g++;d=!1;if(null!=a)for(g=0;!d&&g<a.length;)p=a[g],"u"==p.n&&null!=p.v&&p.v&&(d=!0,b+=4),g++;if(0<b)return"fontStyle="+b+";"}return""}function g(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("a"==d.n&&null!=d.v)return"align="+d.v+";";b++}return""}function p(a){var b=m(a);if(null!=b)for(var d=0;d<b.length;){var p=
+b[d];if(null!=p.v){if("il"==p.n)return"spacingLeft="+.6*p.v+";";g(a)}d++}return""}function y(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("ir"==d.n&&null!=d.v)return"spacingRight="+d.v+";";b++}return""}function A(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("mt"==d.n&&null!=d.v)return"spacingTop="+d.v+";";b++}return""}function x(a){a=m(a);if(null!=a)for(var b=0;b<a.length;){var d=a[b];if("mb"==d.n&&null!=d.v)return"spacingBottom="+d.v+";";b++}return""}function z(a){return"number"===
+typeof a.InsetMargin?"spacing="+parseInt(a.InsetMargin)+";":""}function F(a){return null!=a.Text_VAlign&&"string"===typeof a.Text_VAlign?"verticalAlign="+a.Text_VAlign+";":U(mxConstants.STYLE_VERTICAL_ALIGN,a.TextVAlign,"middle")}function B(a,b){return 0==a.LineWidth?mxConstants.STYLE_STROKECOLOR+"=none;":U(mxConstants.STYLE_STROKECOLOR,a.LineColor.substring(0,7),"#000000")}function C(a,b,d){b="";if("string"===typeof a.LineColor&&7<a.LineColor.length){var g="0x"+a.LineColor.substring(a.LineColor.length-
+2,a.LineColor.length);b+="strokeOpacity="+Math.round(parseInt(g)/2.55)+";"}"string"===typeof a.FillColor&&7<a.FillColor.length&&(a="0x"+a.FillColor.substring(a.FillColor.length-2,a.FillColor.length),d.style.includes("fillOpacity")||(b+="fillOpacity="+Math.round(parseInt(a)/2.55)+";"));return b}function G(a){return null!=a.Shadow?mxConstants.STYLE_SHADOW+"=1;":""}function D(a,b){if(null!=a.FillColor)if("object"===typeof a.FillColor){if(null!=a.FillColor.cs&&1<a.FillColor.cs.length)return U(mxConstants.STYLE_FILLCOLOR,
a.FillColor.cs[0].c.substring(0,7))+U(mxConstants.STYLE_GRADIENTCOLOR,a.FillColor.cs[1].c.substring(0,7))}else return"string"===typeof a.FillColor?U(mxConstants.STYLE_FILLCOLOR,a.FillColor.substring(0,7),"#FFFFFF"):U(mxConstants.STYLE_FILLCOLOR,"none");return""}function Z(a){return"dashed"==a.StrokeStyle?"dashed=1;":"dotted"==a.StrokeStyle?"dashed=1;dashPattern=1 4;":"dashdot"==a.StrokeStyle?"dashed=1;dashPattern=10 5 1 5;":"dotdotdot"==a.StrokeStyle?"dashed=1;dashPattern=1 1;":""}function Y(a){return U(mxConstants.STYLE_STROKEWIDTH,
-.6*parseFloat(a.LineWidth),"1")}function aa(a,b,d){b=n(b);if(null!=b){var h=bb[b.Class];null!=h&&(a.style+=h+";");h=null!=b.Properties?b.Properties:b;if(null!=h){a.value=c(h);a.style+=f(a.style,h,b,a);a.style.includes("strokeColor")||(a.style+=A(h,b));for(var p in h)if(h.hasOwnProperty(p)&&p.toString().startsWith("ShapeData_"))try{var e=h[p];d.setAttributeForCell(a,e.Label.replace(/[^a-z0-9]/ig,"_").replace(/^\d*/,"_"),e.Value)}catch(t){window.console&&console.log("Ignored "+p+":",t)}if(a.edge){a.style=
-null!=h.Rounding?a.style+("rounded=1;arcSize="+h.Rounding+";"):a.style+"rounded=0;";if("diagonal"!=h.Shape)if(null!=h.ElbowPoints)for(a.geometry.points=[],d=0;d<h.ElbowPoints.length;d++)a.geometry.points.push(new mxPoint(Math.round(.6*h.ElbowPoints[d].x+0),Math.round(.6*h.ElbowPoints[d].y+0)));else"elbow"==h.Shape?a.style=null!=h.Endpoint1.Block&&null!=h.Endpoint1.Block?a.style+"edgeStyle=orthogonalEdgeStyle;":a.style+"edgeStyle=elbowEdgeStyle;":null!=h.Endpoint1.Block&&null!=h.Endpoint1.Block&&(a.style+=
-"edgeStyle=orthogonalEdgeStyle;","curve"==h.Shape&&(a.style+="curved=1;"));null!=h.Endpoint1.Style&&(a.style+="startArrow="+la[h.Endpoint1.Style]+";");null!=h.Endpoint2.Style&&(a.style+="endArrow="+la[h.Endpoint2.Style].replace(/startSize/g,"endSize")+";");da(a,h.Endpoint1,!0);da(a,h.Endpoint2,!1)}}}}function L(a,b){var d=n(a).Properties.BoundingBox;null==a.Class||"AWS"!==a.Class.substring(0,3)&&"Amazon"!==a.Class.substring(0,6)||a.Class.includes("AWS19")||(d.h-=20);v=new mxCell("",new mxGeometry(Math.round(.6*
-d.x+0),Math.round(.6*d.y+0),Math.round(.6*d.w),Math.round(.6*d.h)),"html=1;whiteSpace=wrap;");v.vertex=!0;aa(v,a,b);return v}function S(a,b,d){d=2*(parseFloat(a.Location)-.5);a=new mxCell(c(a),new mxGeometry(d,0,0,0),"text;html=1;resizable=0;labelBackgroundColor=#ffffff;align=center;verticalAlign=middle;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);return b}function U(a,b,d,h){null!=b&&null!=h&&(b=h(b));return null!=b&&b!=d?a+"="+b+";":""}function da(a,b,d){null!=b&&null!=b.LinkX&&null!=b.LinkY&&
-(a.style+=(d?"exitX":"entryX")+"="+b.LinkX+";"+(d?"exitY":"entryY")+"="+b.LinkY+";"+(d?"exitPerimeter":"entryPerimeter")+"=1;")}function ka(a,b,d,h,p,c){a.getModel().beginUpdate();try{var e=function(b,d){var h=null!=d.Endpoint1.Block?y[d.Endpoint1.Block]:null,p=null!=d.Endpoint2.Block?y[d.Endpoint2.Block]:null,c;c=new mxCell("",new mxGeometry(0,0,100,100),"html=1;jettySize=18;");c.geometry.relative=!0;c.edge=!0;aa(c,b);var e=n(b).Properties,f=null!=e?e.TextAreas:b.TextAreas;if(null!=f){for(var l=
-0;null!=f["t"+l];){var z=f["t"+l];c=S(z,c);l++}for(l=1;null!=f["m"+l];)z=f["m"+l],c=S(z,c,b),l++;null!=f.Text&&(c=S(f,c,b));f=null!=e?e.TextAreas:b.TextAreas;null!=f.Message&&(c=S(f.Message,c,b))}null==h&&null!=d.Endpoint1&&c.geometry.setTerminalPoint(new mxPoint(Math.round(.6*d.Endpoint1.x),Math.round(.6*d.Endpoint1.y)),!0);null==p&&null!=d.Endpoint2&&c.geometry.setTerminalPoint(new mxPoint(Math.round(.6*d.Endpoint2.x),Math.round(.6*d.Endpoint2.y)),!1);g.push(a.addCell(c,null,null,h,p))},g=[],y=
-{},f=[],z=[],x=0;if(null!=b.Groups)for(var k in b.Groups){var m=b.Groups[k];m.id=k;if(1==m.Hidden&&null!=m.Members){0>mxUtils.indexOf(z,k)&&z.push(k);for(var C in m.Members)z=Db(C,b.Groups,z)}}if(null!=b.Blocks)for(k in b.Blocks)m=b.Blocks[k],m.id=k,0>mxUtils.indexOf(z,k)&&(C=!1,null!=bb[m.Class]&&"mxCompositeShape"==bb[m.Class]&&(y[m.id]=qb(m,g,a),f.push(m),C=!0),C||(y[m.id]=L(m),f.push(m)));else for(x=0;x<b.Objects.length;x++)m=b.Objects[x],null!=m.Action&&"mxCompositeShape"==bb[m.Action.Class]?
-y[m.id]=qb(m,g,a):m.IsBlock&&null!=m.Action&&null!=m.Action.Properties&&(y[m.id]=L(m,a)),f.push(m);f.sort(function(a,b){a=n(a);b=n(b);return null!=a.Properties&&null!=b.Properties?a.Properties.ZOrder-b.Properties.ZOrder:0});for(x=0;x<f.length;x++){var m=f[x],u=y[m.id];null!=u?g.push(a.addCell(u)):m.IsLine&&null!=m.Action&&null!=m.Action.Properties&&e(m,m.Action.Properties)}if(null!=b.Lines)for(k in b.Lines)0>mxUtils.indexOf(z,k)&&(m=b.Lines[k],e(m,m));if(p&&null!=d&&null!=h){a.isGridEnabled()&&(d=
-a.snap(d),h=a.snap(h));var l=a.getBoundingBoxFromGeometry(g,!0);null!=l&&a.moveCells(g,d-l.x,h-l.y)}c||a.setSelectionCells(g)}finally{a.getModel().endUpdate()}}function ba(){var a=new Graph;a.setExtendParents(!1);a.setExtendParentsOnAdd(!1);a.setConstrainChildren(!1);a.setHtmlLabels(!0);a.getModel().maintainEdgeParent=!1;return a}function Da(a,b,d,h,p,c,e,y){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;e.insert(a);c=[a];d=d.clone();y.insertEdge(d,!1);a.insertEdge(d,
-!0);c.push(d);h.push(p.addCell(d,null,null,null,null))}function ga(a,b,d,h,p,c,e,y,f){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;f.insert(a);d=new mxCell("",new mxGeometry(d,h,0,0),"strokeColor=none;fillColor=none;");d.vertex=!0;f.insert(d);y=[d];p=p.clone();a.insertEdge(p,!0);d.insertEdge(p,!1);y.push(p);c.push(e.addCell(p,null,null,null,null))}function ea(a,b,d,h,p,e){h.style="rounded=1;absoluteArcSize=1;fillColor=#ffffff;arcSize=2;strokeColor=#dddddd;";
-h.style+=f(h.style,p,e,h);b=c(p);h.vertex=!0;a=new mxCell(b,new mxGeometry(0,.5,24,24),"dashed=0;connectable=0;html=1;strokeColor=none;"+mxConstants.STYLE_SHAPE+"=mxgraph.gcp2."+a+";part=1;shadow=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;");a.style+=f(a.style,p,e,a);a.geometry.relative=!0;a.geometry.offset=new mxPoint(5,-12);a.vertex=!0;h.insert(a)}function ia(a,b,d,h,p,e,y,z){p="transparent"!=a?mxConstants.STYLE_SHAPE+"=mxgraph.gcp2.":mxConstants.STYLE_SHAPE+
-"=";e.style="rounded=1;absoluteArcSize=1;arcSize=2;verticalAlign=bottom;fillColor=#ffffff;strokeColor=#dddddd;whiteSpace=wrap;";e.style+=f(e.style,y,z,e);e.value=c(y);e.vertex=!0;a=new mxCell(null,new mxGeometry(.5,0,.7*h*b,.7*h*d),p+a+";part=1;dashed=0;connectable=0;html=1;strokeColor=none;shadow=0;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(-b*h*.35,10+(1-d)*h*.35);a.vertex=!0;a.style+=f(a.style,y,z,a);e.insert(a)}function qb(e,m,L){var u=n(e),g=u.Properties,S=g.BoundingBox,t=Math.round(.6*
+.6*parseFloat(a.LineWidth),"1")}function aa(a,b,d){b=n(b);if(null!=b){var g=bb[b.Class];null!=g&&(a.style+=g+";");g=null!=b.Properties?b.Properties:b;if(null!=g){a.value=c(g);a.style+=f(a.style,g,b,a);a.style.includes("strokeColor")||(a.style+=B(g,b));for(var p in g)if(g.hasOwnProperty(p)&&p.toString().startsWith("ShapeData_"))try{var e=g[p];d.setAttributeForCell(a,e.Label.replace(/[^a-z0-9]/ig,"_").replace(/^\d*/,"_"),e.Value)}catch(t){window.console&&console.log("Ignored "+p+":",t)}if(a.edge){a.style=
+null!=g.Rounding?a.style+("rounded=1;arcSize="+g.Rounding+";"):a.style+"rounded=0;";if("diagonal"!=g.Shape)if(null!=g.ElbowPoints)for(a.geometry.points=[],d=0;d<g.ElbowPoints.length;d++)a.geometry.points.push(new mxPoint(Math.round(.6*g.ElbowPoints[d].x+0),Math.round(.6*g.ElbowPoints[d].y+0)));else"elbow"==g.Shape?a.style=null!=g.Endpoint1.Block&&null!=g.Endpoint1.Block?a.style+"edgeStyle=orthogonalEdgeStyle;":a.style+"edgeStyle=elbowEdgeStyle;":null!=g.Endpoint1.Block&&null!=g.Endpoint1.Block&&(a.style+=
+"edgeStyle=orthogonalEdgeStyle;","curve"==g.Shape&&(a.style+="curved=1;"));null!=g.Endpoint1.Style&&(a.style+="startArrow="+la[g.Endpoint1.Style]+";");null!=g.Endpoint2.Style&&(a.style+="endArrow="+la[g.Endpoint2.Style].replace(/startSize/g,"endSize")+";");da(a,g.Endpoint1,!0);da(a,g.Endpoint2,!1)}}}}function L(a,b){var d=n(a).Properties.BoundingBox;null==a.Class||"AWS"!==a.Class.substring(0,3)&&"Amazon"!==a.Class.substring(0,6)||a.Class.includes("AWS19")||(d.h-=20);v=new mxCell("",new mxGeometry(Math.round(.6*
+d.x+0),Math.round(.6*d.y+0),Math.round(.6*d.w),Math.round(.6*d.h)),"html=1;whiteSpace=wrap;");v.vertex=!0;aa(v,a,b);return v}function S(a,b,d){d=2*(parseFloat(a.Location)-.5);a=new mxCell(c(a),new mxGeometry(d,0,0,0),"text;html=1;resizable=0;labelBackgroundColor=#ffffff;align=center;verticalAlign=middle;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);return b}function U(a,b,d,g){null!=b&&null!=g&&(b=g(b));return null!=b&&b!=d?a+"="+b+";":""}function da(a,b,d){null!=b&&null!=b.LinkX&&null!=b.LinkY&&
+(a.style+=(d?"exitX":"entryX")+"="+b.LinkX+";"+(d?"exitY":"entryY")+"="+b.LinkY+";"+(d?"exitPerimeter":"entryPerimeter")+"=1;")}function ba(a,b,d,g,p,c){a.getModel().beginUpdate();try{var e=function(b,d){var g=null!=d.Endpoint1.Block?y[d.Endpoint1.Block]:null,p=null!=d.Endpoint2.Block?y[d.Endpoint2.Block]:null,c;c=new mxCell("",new mxGeometry(0,0,100,100),"html=1;jettySize=18;");c.geometry.relative=!0;c.edge=!0;aa(c,b);var e=n(b).Properties,f=null!=e?e.TextAreas:b.TextAreas;if(null!=f){for(var l=
+0;null!=f["t"+l];){var x=f["t"+l];c=S(x,c);l++}for(l=1;null!=f["m"+l];)x=f["m"+l],c=S(x,c,b),l++;null!=f.Text&&(c=S(f,c,b));f=null!=e?e.TextAreas:b.TextAreas;null!=f.Message&&(c=S(f.Message,c,b))}null==g&&null!=d.Endpoint1&&c.geometry.setTerminalPoint(new mxPoint(Math.round(.6*d.Endpoint1.x),Math.round(.6*d.Endpoint1.y)),!0);null==p&&null!=d.Endpoint2&&c.geometry.setTerminalPoint(new mxPoint(Math.round(.6*d.Endpoint2.x),Math.round(.6*d.Endpoint2.y)),!1);h.push(a.addCell(c,null,null,g,p))},h=[],y=
+{},f=[],x=[],A=0;if(null!=b.Groups)for(var k in b.Groups){var z=b.Groups[k];z.id=k;if(1==z.Hidden&&null!=z.Members){0>mxUtils.indexOf(x,k)&&x.push(k);for(var m in z.Members)x=Db(m,b.Groups,x)}}if(null!=b.Blocks)for(k in b.Blocks)z=b.Blocks[k],z.id=k,0>mxUtils.indexOf(x,k)&&(m=!1,null!=bb[z.Class]&&"mxCompositeShape"==bb[z.Class]&&(y[z.id]=qb(z,h,a),f.push(z),m=!0),m||(y[z.id]=L(z),f.push(z)));else for(A=0;A<b.Objects.length;A++)z=b.Objects[A],null!=z.Action&&"mxCompositeShape"==bb[z.Action.Class]?
+y[z.id]=qb(z,h,a):z.IsBlock&&null!=z.Action&&null!=z.Action.Properties&&(y[z.id]=L(z,a)),f.push(z);f.sort(function(a,b){a=n(a);b=n(b);return null!=a.Properties&&null!=b.Properties?a.Properties.ZOrder-b.Properties.ZOrder:0});for(A=0;A<f.length;A++){var z=f[A],F=y[z.id];null!=F?h.push(a.addCell(F)):z.IsLine&&null!=z.Action&&null!=z.Action.Properties&&e(z,z.Action.Properties)}if(null!=b.Lines)for(k in b.Lines)0>mxUtils.indexOf(x,k)&&(z=b.Lines[k],e(z,z));if(p&&null!=d&&null!=g){a.isGridEnabled()&&(d=
+a.snap(d),g=a.snap(g));var l=a.getBoundingBoxFromGeometry(h,!0);null!=l&&a.moveCells(h,d-l.x,g-l.y)}c||a.setSelectionCells(h)}finally{a.getModel().endUpdate()}}function ia(){var a=new Graph;a.setExtendParents(!1);a.setExtendParentsOnAdd(!1);a.setConstrainChildren(!1);a.setHtmlLabels(!0);a.getModel().maintainEdgeParent=!1;return a}function Da(a,b,d,g,p,c,e,y){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;e.insert(a);c=[a];d=d.clone();y.insertEdge(d,!1);a.insertEdge(d,
+!0);c.push(d);g.push(p.addCell(d,null,null,null,null))}function ga(a,b,d,g,p,c,e,y,f){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;f.insert(a);d=new mxCell("",new mxGeometry(d,g,0,0),"strokeColor=none;fillColor=none;");d.vertex=!0;f.insert(d);y=[d];p=p.clone();a.insertEdge(p,!0);d.insertEdge(p,!1);y.push(p);c.push(e.addCell(p,null,null,null,null))}function ea(a,b,d,g,p,e){g.style="rounded=1;absoluteArcSize=1;fillColor=#ffffff;arcSize=2;strokeColor=#dddddd;";
+g.style+=f(g.style,p,e,g);b=c(p);g.vertex=!0;a=new mxCell(b,new mxGeometry(0,.5,24,24),"dashed=0;connectable=0;html=1;strokeColor=none;"+mxConstants.STYLE_SHAPE+"=mxgraph.gcp2."+a+";part=1;shadow=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;");a.style+=f(a.style,p,e,a);a.geometry.relative=!0;a.geometry.offset=new mxPoint(5,-12);a.vertex=!0;g.insert(a)}function ja(a,b,d,g,p,e,y,x){p="transparent"!=a?mxConstants.STYLE_SHAPE+"=mxgraph.gcp2.":mxConstants.STYLE_SHAPE+
+"=";e.style="rounded=1;absoluteArcSize=1;arcSize=2;verticalAlign=bottom;fillColor=#ffffff;strokeColor=#dddddd;whiteSpace=wrap;";e.style+=f(e.style,y,x,e);e.value=c(y);e.vertex=!0;a=new mxCell(null,new mxGeometry(.5,0,.7*g*b,.7*g*d),p+a+";part=1;dashed=0;connectable=0;html=1;strokeColor=none;shadow=0;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(-b*g*.35,10+(1-d)*g*.35);a.vertex=!0;a.style+=f(a.style,y,x,a);e.insert(a)}function qb(e,m,L){var u=n(e),h=u.Properties,S=h.BoundingBox,t=Math.round(.6*
S.w),r=Math.round(.6*S.h),U=Math.round(.6*S.x+0),ba=Math.round(.6*S.y+0);null==e.Class||"GCPInputDatabase"!==e.Class&&"GCPInputRecord"!==e.Class&&"GCPInputPayment"!==e.Class&&"GCPInputGateway"!==e.Class&&"GCPInputLocalCompute"!==e.Class&&"GCPInputBeacon"!==e.Class&&"GCPInputStorage"!==e.Class&&"GCPInputList"!==e.Class&&"GCPInputStream"!==e.Class&&"GCPInputMobileDevices"!==e.Class&&"GCPInputCircuitBoard"!==e.Class&&"GCPInputLive"!==e.Class&&"GCPInputUsers"!==e.Class&&"GCPInputLaptop"!==e.Class&&"GCPInputApplication"!==
-e.Class&&"GCPInputLightbulb"!==e.Class&&"GCPInputGame"!==e.Class&&"GCPInputDesktop"!==e.Class&&"GCPInputDesktopAndMobile"!==e.Class&&"GCPInputWebcam"!==e.Class&&"GCPInputSpeaker"!==e.Class&&"GCPInputRetail"!==e.Class&&"GCPInputReport"!==e.Class&&"GCPInputPhone"!==e.Class&&"GCPInputBlank"!==e.Class||(r+=20);v=new mxCell("",new mxGeometry(U,ba,t,r),"html=1;whiteSpace=wrap;");v.vertex=!0;switch(null!=e.Class?e.Class:null!=u?u.Class:null){case "BraceNoteBlock":case "UI2BraceNoteBlock":var ka=!1;null!=
-g.BraceDirection&&"Right"==g.BraceDirection&&(ka=!0);var da=null,la=null;ka?(da=new mxCell("",new mxGeometry(t-.125*r,0,.125*r,r),"shape=curlyBracket;rounded=1;"),la=new mxCell("",new mxGeometry(0,0,t-.125*r,r),"strokeColor=none;fillColor=none;")):(da=new mxCell("",new mxGeometry(0,0,.125*r,r),"shape=curlyBracket;rounded=1;flipH=1;"),la=new mxCell("",new mxGeometry(.125*r,0,t-.125*r,r),"strokeColor=none;fillColor=none;"));v.style="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);da.vertex=
-!0;v.insert(da);da.style+=f(da.style,g,u,da);la.vertex=!0;la.value=c(g);v.insert(la);la.style+=f(la.style,g,u,la);break;case "AdvancedSwimLaneBlockRotated":case "AdvancedSwimLaneBlock":var pb=0;null!=g.Lanes&&(pb=g.Lanes.length);v.style="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);for(var qb=0,db=[],l=0;l<pb;l++){var Xb=parseFloat(g.Lanes[l].p);db.push(new mxCell("",new mxGeometry(t*qb,0,t*Xb,r),"shape=swimlane;startSize=25;"));db[l].vertex=!0;v.insert(db[l]);db[l].value=c(g["Lane_"+
-l]);db[l].style+=b(g["Lane_"+l])+a(g["Lane_"+l])+d(g["Lane_"+l])+h(g["Lane_"+l],db[l])+p(g["Lane_"+l])+y(g["Lane_"+l])+z(g["Lane_"+l])+x(g["Lane_"+l])+C(g["Lane_"+l])+F(g["Lane_"+l]);f(db[l].style,g,u,db[l]);qb+=Xb}break;case "AndroidDevice":if(null!=g.AndroidDeviceName){v.style="fillColor=#000000;strokeColor=#000000;";var ib=null,Bb=null,bb=null;if("Tablet"==g.AndroidDeviceName||"Mini Tablet"==g.AndroidDeviceName)v.style+="shape=mxgraph.android.tab2;",ib=new mxCell("",new mxGeometry(.112*t,.077*
-r,.77*t,.85*r),""),g.KeyboardShown&&(Bb=new mxCell("",new mxGeometry(.112*t,.727*r,.77*t,.2*r),"shape=mxgraph.android.keyboard;")),g.FullScreen||(bb=new mxCell("",new mxGeometry(.112*t,.077*r,.77*t,.03*r),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*r+";"));else if("Large Phone"==g.AndroidDeviceName||"Phone"==g.AndroidDeviceName)v.style+="shape=mxgraph.android.phone2;",ib=new mxCell("",new mxGeometry(.04*t,.092*r,.92*t,.816*r),""),g.KeyboardShown&&
-(Bb=new mxCell("",new mxGeometry(.04*t,.708*r,.92*t,.2*r),"shape=mxgraph.android.keyboard;")),g.FullScreen||(bb=new mxCell("",new mxGeometry(.04*t,.092*r,.92*t,.03*r),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*r+";"));ib.vertex=!0;v.insert(ib);"Dark"==g.Scheme?ib.style+="fillColor=#111111;":"Light"==g.Scheme&&(ib.style+="fillColor=#ffffff;");null!=Bb&&(Bb.vertex=!0,v.insert(Bb));null!=bb&&(bb.vertex=!0,v.insert(bb))}v.style+=f(v.style,
-g,u,v);break;case "AndroidAlertDialog":var La=new mxCell("",new mxGeometry(0,0,t,30),"strokeColor=none;fillColor=none;spacingLeft=9;");La.vertex=!0;v.insert(La);var na=new mxCell("",new mxGeometry(0,25,t,10),"shape=line;strokeColor=#33B5E5;");na.vertex=!0;v.insert(na);var Cb=new mxCell("",new mxGeometry(0,30,t,r-30),"strokeColor=none;fillColor=none;verticalAlign=top;");Cb.vertex=!0;v.insert(Cb);var qa=new mxCell("",new mxGeometry(0,r-25,.5*t,25),"fillColor=none;");qa.vertex=!0;v.insert(qa);var ra=
-new mxCell("",new mxGeometry(.5*t,r-25,.5*t,25),"fillColor=none;");ra.vertex=!0;v.insert(ra);La.value=c(g.DialogTitle);La.style+=k(g.DialogTitle);Cb.value=c(g.DialogText);Cb.style+=k(g.DialogText);qa.value=c(g.Button_0);qa.style+=k(g.Button_0);ra.value=c(g.Button_1);ra.style+=k(g.Button_1);"Dark"==g.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",qa.style+="strokeColor=#353535;",ra.style+="strokeColor=#353535;"):(v.style+="strokeColor=none;fillColor=#ffffff;shadow=1;",qa.style+=
-"strokeColor=#E2E2E2;",ra.style+="strokeColor=#E2E2E2;");v.style+=f(v.style,g,u,v);break;case "AndroidDateDialog":case "AndroidTimeDialog":La=new mxCell("",new mxGeometry(0,0,t,30),"strokeColor=none;fillColor=none;spacingLeft=9;");La.vertex=!0;v.insert(La);La.value=c(g.DialogTitle);La.style+=k(g.DialogTitle);na=new mxCell("",new mxGeometry(0,25,t,10),"shape=line;strokeColor=#33B5E5;");na.vertex=!0;v.insert(na);qa=new mxCell("",new mxGeometry(0,r-25,.5*t,25),"fillColor=none;");qa.vertex=!0;v.insert(qa);
-qa.value=c(g.Button_0);qa.style+=k(g.Button_0);ra=new mxCell("",new mxGeometry(.5*t,r-25,.5*t,25),"fillColor=none;");ra.vertex=!0;v.insert(ra);ra.value=c(g.Button_1);ra.style+=k(g.Button_1);var rb=new mxCell("",new mxGeometry(.5*t-4,41,8,4),"shape=triangle;direction=north;");rb.vertex=!0;v.insert(rb);var sb=new mxCell("",new mxGeometry(.25*t-4,41,8,4),"shape=triangle;direction=north;");sb.vertex=!0;v.insert(sb);var tb=new mxCell("",new mxGeometry(.75*t-4,41,8,4),"shape=triangle;direction=north;");
-tb.vertex=!0;v.insert(tb);var Eb=new mxCell("",new mxGeometry(.375*t,50,.2*t,15),"strokeColor=none;fillColor=none;");Eb.vertex=!0;v.insert(Eb);Eb.value=c(g.Label_1);Eb.style+=k(g.Label_1);var Fb=new mxCell("",new mxGeometry(.125*t,50,.2*t,15),"strokeColor=none;fillColor=none;");Fb.vertex=!0;v.insert(Fb);Fb.value=c(g.Label_0);Fb.style+=k(g.Label_0);var ub=null;"AndroidDateDialog"==e.Class&&(ub=new mxCell("",new mxGeometry(.625*t,50,.2*t,15),"strokeColor=none;fillColor=none;"),ub.vertex=!0,v.insert(ub),
-ub.value=c(g.Label_2),ub.style+=k(g.Label_2));var Ma=new mxCell("",new mxGeometry(.43*t,60,.14*t,10),"shape=line;strokeColor=#33B5E5;");Ma.vertex=!0;v.insert(Ma);var Na=new mxCell("",new mxGeometry(.18*t,60,.14*t,10),"shape=line;strokeColor=#33B5E5;");Na.vertex=!0;v.insert(Na);var Db=new mxCell("",new mxGeometry(.68*t,60,.14*t,10),"shape=line;strokeColor=#33B5E5;");Db.vertex=!0;v.insert(Db);var Gb=new mxCell("",new mxGeometry(.375*t,65,.2*t,15),"strokeColor=none;fillColor=none;");Gb.vertex=!0;v.insert(Gb);
-Gb.value=c(g.Label_4);Gb.style+=k(g.Label_4);var vb=null;"AndroidTimeDialog"==e.Class&&(vb=new mxCell("",new mxGeometry(.3*t,65,.1*t,15),"strokeColor=none;fillColor=none;"),vb.vertex=!0,v.insert(vb),vb.value=c(g.Label_Colon),vb.style+=k(g.Label_Colon));var Hb=new mxCell("",new mxGeometry(.125*t,65,.2*t,15),"strokeColor=none;fillColor=none;");Hb.vertex=!0;v.insert(Hb);Hb.value=c(g.Label_3);Hb.style+=k(g.Label_3);var Ib=new mxCell("",new mxGeometry(.625*t,65,.2*t,15),"strokeColor=none;fillColor=none;");
-Ib.vertex=!0;v.insert(Ib);Ib.value=c(g.Label_5);Ib.style+=k(g.Label_5);var jc=new mxCell("",new mxGeometry(.43*t,75,.14*t,10),"shape=line;strokeColor=#33B5E5;");jc.vertex=!0;v.insert(jc);var kc=new mxCell("",new mxGeometry(.18*t,75,.14*t,10),"shape=line;strokeColor=#33B5E5;");kc.vertex=!0;v.insert(kc);var lc=new mxCell("",new mxGeometry(.68*t,75,.14*t,10),"shape=line;strokeColor=#33B5E5;");lc.vertex=!0;v.insert(lc);var Jb=new mxCell("",new mxGeometry(.375*t,80,.2*t,15),"strokeColor=none;fillColor=none;");
-Jb.vertex=!0;v.insert(Jb);Jb.value=c(g.Label_7);Jb.style+=k(g.Label_7);var Kb=new mxCell("",new mxGeometry(.125*t,80,.2*t,15),"strokeColor=none;fillColor=none;");Kb.vertex=!0;v.insert(Kb);Kb.value=c(g.Label_6);Kb.style+=k(g.Label_6);var Lb=new mxCell("",new mxGeometry(.625*t,80,.2*t,15),"strokeColor=none;fillColor=none;");Lb.vertex=!0;v.insert(Lb);Lb.value=c(g.Label_8);Lb.style+=k(g.Label_8);var wb=new mxCell("",new mxGeometry(.5*t-4,99,8,4),"shape=triangle;direction=south;");wb.vertex=!0;v.insert(wb);
-var xb=new mxCell("",new mxGeometry(.25*t-4,99,8,4),"shape=triangle;direction=south;");xb.vertex=!0;v.insert(xb);var yb=new mxCell("",new mxGeometry(.75*t-4,99,8,4),"shape=triangle;direction=south;");yb.vertex=!0;v.insert(yb);"Dark"==g.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",qa.style+="strokeColor=#353535;",ra.style+="strokeColor=#353535;",rb.style+="strokeColor=none;fillColor=#7E7E7E;",sb.style+="strokeColor=none;fillColor=#7E7E7E;",tb.style+="strokeColor=none;fillColor=#7E7E7E;",
+e.Class&&"GCPInputLightbulb"!==e.Class&&"GCPInputGame"!==e.Class&&"GCPInputDesktop"!==e.Class&&"GCPInputDesktopAndMobile"!==e.Class&&"GCPInputWebcam"!==e.Class&&"GCPInputSpeaker"!==e.Class&&"GCPInputRetail"!==e.Class&&"GCPInputReport"!==e.Class&&"GCPInputPhone"!==e.Class&&"GCPInputBlank"!==e.Class||(r+=20);v=new mxCell("",new mxGeometry(U,ba,t,r),"html=1;whiteSpace=wrap;");v.vertex=!0;switch(null!=e.Class?e.Class:null!=u?u.Class:null){case "BraceNoteBlock":case "UI2BraceNoteBlock":var ia=!1;null!=
+h.BraceDirection&&"Right"==h.BraceDirection&&(ia=!0);var da=null,la=null;ia?(da=new mxCell("",new mxGeometry(t-.125*r,0,.125*r,r),"shape=curlyBracket;rounded=1;"),la=new mxCell("",new mxGeometry(0,0,t-.125*r,r),"strokeColor=none;fillColor=none;")):(da=new mxCell("",new mxGeometry(0,0,.125*r,r),"shape=curlyBracket;rounded=1;flipH=1;"),la=new mxCell("",new mxGeometry(.125*r,0,t-.125*r,r),"strokeColor=none;fillColor=none;"));v.style="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);da.vertex=
+!0;v.insert(da);da.style+=f(da.style,h,u,da);la.vertex=!0;la.value=c(h);v.insert(la);la.style+=f(la.style,h,u,la);break;case "AdvancedSwimLaneBlockRotated":case "AdvancedSwimLaneBlock":var pb=0;null!=h.Lanes&&(pb=h.Lanes.length);v.style="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);for(var qb=0,db=[],l=0;l<pb;l++){var Xb=parseFloat(h.Lanes[l].p);db.push(new mxCell("",new mxGeometry(t*qb,0,t*Xb,r),"shape=swimlane;startSize=25;"));db[l].vertex=!0;v.insert(db[l]);db[l].value=c(h["Lane_"+
+l]);db[l].style+=b(h["Lane_"+l])+a(h["Lane_"+l])+d(h["Lane_"+l])+g(h["Lane_"+l],db[l])+p(h["Lane_"+l])+y(h["Lane_"+l])+A(h["Lane_"+l])+x(h["Lane_"+l])+z(h["Lane_"+l])+F(h["Lane_"+l]);f(db[l].style,h,u,db[l]);qb+=Xb}break;case "AndroidDevice":if(null!=h.AndroidDeviceName){v.style="fillColor=#000000;strokeColor=#000000;";var ib=null,Bb=null,bb=null;if("Tablet"==h.AndroidDeviceName||"Mini Tablet"==h.AndroidDeviceName)v.style+="shape=mxgraph.android.tab2;",ib=new mxCell("",new mxGeometry(.112*t,.077*
+r,.77*t,.85*r),""),h.KeyboardShown&&(Bb=new mxCell("",new mxGeometry(.112*t,.727*r,.77*t,.2*r),"shape=mxgraph.android.keyboard;")),h.FullScreen||(bb=new mxCell("",new mxGeometry(.112*t,.077*r,.77*t,.03*r),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*r+";"));else if("Large Phone"==h.AndroidDeviceName||"Phone"==h.AndroidDeviceName)v.style+="shape=mxgraph.android.phone2;",ib=new mxCell("",new mxGeometry(.04*t,.092*r,.92*t,.816*r),""),h.KeyboardShown&&
+(Bb=new mxCell("",new mxGeometry(.04*t,.708*r,.92*t,.2*r),"shape=mxgraph.android.keyboard;")),h.FullScreen||(bb=new mxCell("",new mxGeometry(.04*t,.092*r,.92*t,.03*r),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*r+";"));ib.vertex=!0;v.insert(ib);"Dark"==h.Scheme?ib.style+="fillColor=#111111;":"Light"==h.Scheme&&(ib.style+="fillColor=#ffffff;");null!=Bb&&(Bb.vertex=!0,v.insert(Bb));null!=bb&&(bb.vertex=!0,v.insert(bb))}v.style+=f(v.style,
+h,u,v);break;case "AndroidAlertDialog":var La=new mxCell("",new mxGeometry(0,0,t,30),"strokeColor=none;fillColor=none;spacingLeft=9;");La.vertex=!0;v.insert(La);var na=new mxCell("",new mxGeometry(0,25,t,10),"shape=line;strokeColor=#33B5E5;");na.vertex=!0;v.insert(na);var Cb=new mxCell("",new mxGeometry(0,30,t,r-30),"strokeColor=none;fillColor=none;verticalAlign=top;");Cb.vertex=!0;v.insert(Cb);var qa=new mxCell("",new mxGeometry(0,r-25,.5*t,25),"fillColor=none;");qa.vertex=!0;v.insert(qa);var ra=
+new mxCell("",new mxGeometry(.5*t,r-25,.5*t,25),"fillColor=none;");ra.vertex=!0;v.insert(ra);La.value=c(h.DialogTitle);La.style+=k(h.DialogTitle);Cb.value=c(h.DialogText);Cb.style+=k(h.DialogText);qa.value=c(h.Button_0);qa.style+=k(h.Button_0);ra.value=c(h.Button_1);ra.style+=k(h.Button_1);"Dark"==h.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",qa.style+="strokeColor=#353535;",ra.style+="strokeColor=#353535;"):(v.style+="strokeColor=none;fillColor=#ffffff;shadow=1;",qa.style+=
+"strokeColor=#E2E2E2;",ra.style+="strokeColor=#E2E2E2;");v.style+=f(v.style,h,u,v);break;case "AndroidDateDialog":case "AndroidTimeDialog":La=new mxCell("",new mxGeometry(0,0,t,30),"strokeColor=none;fillColor=none;spacingLeft=9;");La.vertex=!0;v.insert(La);La.value=c(h.DialogTitle);La.style+=k(h.DialogTitle);na=new mxCell("",new mxGeometry(0,25,t,10),"shape=line;strokeColor=#33B5E5;");na.vertex=!0;v.insert(na);qa=new mxCell("",new mxGeometry(0,r-25,.5*t,25),"fillColor=none;");qa.vertex=!0;v.insert(qa);
+qa.value=c(h.Button_0);qa.style+=k(h.Button_0);ra=new mxCell("",new mxGeometry(.5*t,r-25,.5*t,25),"fillColor=none;");ra.vertex=!0;v.insert(ra);ra.value=c(h.Button_1);ra.style+=k(h.Button_1);var rb=new mxCell("",new mxGeometry(.5*t-4,41,8,4),"shape=triangle;direction=north;");rb.vertex=!0;v.insert(rb);var sb=new mxCell("",new mxGeometry(.25*t-4,41,8,4),"shape=triangle;direction=north;");sb.vertex=!0;v.insert(sb);var tb=new mxCell("",new mxGeometry(.75*t-4,41,8,4),"shape=triangle;direction=north;");
+tb.vertex=!0;v.insert(tb);var Eb=new mxCell("",new mxGeometry(.375*t,50,.2*t,15),"strokeColor=none;fillColor=none;");Eb.vertex=!0;v.insert(Eb);Eb.value=c(h.Label_1);Eb.style+=k(h.Label_1);var Fb=new mxCell("",new mxGeometry(.125*t,50,.2*t,15),"strokeColor=none;fillColor=none;");Fb.vertex=!0;v.insert(Fb);Fb.value=c(h.Label_0);Fb.style+=k(h.Label_0);var ub=null;"AndroidDateDialog"==e.Class&&(ub=new mxCell("",new mxGeometry(.625*t,50,.2*t,15),"strokeColor=none;fillColor=none;"),ub.vertex=!0,v.insert(ub),
+ub.value=c(h.Label_2),ub.style+=k(h.Label_2));var Ma=new mxCell("",new mxGeometry(.43*t,60,.14*t,10),"shape=line;strokeColor=#33B5E5;");Ma.vertex=!0;v.insert(Ma);var Na=new mxCell("",new mxGeometry(.18*t,60,.14*t,10),"shape=line;strokeColor=#33B5E5;");Na.vertex=!0;v.insert(Na);var Db=new mxCell("",new mxGeometry(.68*t,60,.14*t,10),"shape=line;strokeColor=#33B5E5;");Db.vertex=!0;v.insert(Db);var Gb=new mxCell("",new mxGeometry(.375*t,65,.2*t,15),"strokeColor=none;fillColor=none;");Gb.vertex=!0;v.insert(Gb);
+Gb.value=c(h.Label_4);Gb.style+=k(h.Label_4);var vb=null;"AndroidTimeDialog"==e.Class&&(vb=new mxCell("",new mxGeometry(.3*t,65,.1*t,15),"strokeColor=none;fillColor=none;"),vb.vertex=!0,v.insert(vb),vb.value=c(h.Label_Colon),vb.style+=k(h.Label_Colon));var Hb=new mxCell("",new mxGeometry(.125*t,65,.2*t,15),"strokeColor=none;fillColor=none;");Hb.vertex=!0;v.insert(Hb);Hb.value=c(h.Label_3);Hb.style+=k(h.Label_3);var Ib=new mxCell("",new mxGeometry(.625*t,65,.2*t,15),"strokeColor=none;fillColor=none;");
+Ib.vertex=!0;v.insert(Ib);Ib.value=c(h.Label_5);Ib.style+=k(h.Label_5);var jc=new mxCell("",new mxGeometry(.43*t,75,.14*t,10),"shape=line;strokeColor=#33B5E5;");jc.vertex=!0;v.insert(jc);var kc=new mxCell("",new mxGeometry(.18*t,75,.14*t,10),"shape=line;strokeColor=#33B5E5;");kc.vertex=!0;v.insert(kc);var lc=new mxCell("",new mxGeometry(.68*t,75,.14*t,10),"shape=line;strokeColor=#33B5E5;");lc.vertex=!0;v.insert(lc);var Jb=new mxCell("",new mxGeometry(.375*t,80,.2*t,15),"strokeColor=none;fillColor=none;");
+Jb.vertex=!0;v.insert(Jb);Jb.value=c(h.Label_7);Jb.style+=k(h.Label_7);var Kb=new mxCell("",new mxGeometry(.125*t,80,.2*t,15),"strokeColor=none;fillColor=none;");Kb.vertex=!0;v.insert(Kb);Kb.value=c(h.Label_6);Kb.style+=k(h.Label_6);var Lb=new mxCell("",new mxGeometry(.625*t,80,.2*t,15),"strokeColor=none;fillColor=none;");Lb.vertex=!0;v.insert(Lb);Lb.value=c(h.Label_8);Lb.style+=k(h.Label_8);var wb=new mxCell("",new mxGeometry(.5*t-4,99,8,4),"shape=triangle;direction=south;");wb.vertex=!0;v.insert(wb);
+var xb=new mxCell("",new mxGeometry(.25*t-4,99,8,4),"shape=triangle;direction=south;");xb.vertex=!0;v.insert(xb);var yb=new mxCell("",new mxGeometry(.75*t-4,99,8,4),"shape=triangle;direction=south;");yb.vertex=!0;v.insert(yb);"Dark"==h.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",qa.style+="strokeColor=#353535;",ra.style+="strokeColor=#353535;",rb.style+="strokeColor=none;fillColor=#7E7E7E;",sb.style+="strokeColor=none;fillColor=#7E7E7E;",tb.style+="strokeColor=none;fillColor=#7E7E7E;",
wb.style+="strokeColor=none;fillColor=#7E7E7E;",xb.style+="strokeColor=none;fillColor=#7E7E7E;",yb.style+="strokeColor=none;fillColor=#7E7E7E;"):(v.style+="strokeColor=none;fillColor=#ffffff;shadow=1;",qa.style+="strokeColor=#E2E2E2;",ra.style+="strokeColor=#E2E2E2;",rb.style+="strokeColor=none;fillColor=#939393;",sb.style+="strokeColor=none;fillColor=#939393;",tb.style+="strokeColor=none;fillColor=#939393;",wb.style+="strokeColor=none;fillColor=#939393;",xb.style+="strokeColor=none;fillColor=#939393;",
-yb.style+="strokeColor=none;fillColor=#939393;");v.style+=f(v.style,g,u,v);break;case "AndroidListItems":var xa=r,eb=0;if(g.ShowHeader){var eb=8,Mb=new mxCell("",new mxGeometry(0,0,t,eb),"strokeColor=none;fillColor=none;");Mb.vertex=!0;v.insert(Mb);Mb.value=c(g.Header);Mb.style+=k(g.Header);var xa=xa-eb,mc=new mxCell("",new mxGeometry(0,eb-2,t,4),"shape=line;strokeColor=#999999;");mc.vertex=!0;v.insert(mc)}var Oa=parseInt(g.Items);0<Oa&&(xa/=Oa);for(var H=[],na=[],l=0;l<Oa;l++)H[l]=new mxCell("",
-new mxGeometry(0,eb+l*xa,t,xa),"strokeColor=none;fillColor=none;"),H[l].vertex=!0,v.insert(H[l]),H[l].value=c(g["Item_"+l]),H[l].style+=k(g["Item_"+l]),0<l&&(na[l]=new mxCell("",new mxGeometry(0,eb+l*xa-2,t,4),"shape=line;"),na[l].vertex=!0,v.insert(na[l]),na[l].style="Dark"==g.Scheme?na[l].style+"strokeColor=#ffffff;":na[l].style+"strokeColor=#D9D9D9;");v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#111111;":v.style+"strokeColor=none;fillColor=#ffffff;";v.style+=f(v.style,g,u,v);break;
-case "AndroidTabs":var Pa=parseInt(g.Tabs),Ea=t;0<Pa&&(Ea/=Pa);for(var fa=[],na=[],l=0;l<Pa;l++)fa[l]=new mxCell("",new mxGeometry(l*Ea,0,Ea,r),"strokeColor=none;fillColor=none;"),fa[l].vertex=!0,v.insert(fa[l]),fa[l].value=c(g["Tab_"+l]),fa[l].style+=k(g["Tab_"+l]),0<l&&(na[l]=new mxCell("",new mxGeometry(l*Ea-2,.2*r,4,.6*r),"shape=line;direction=north;"),na[l].vertex=!0,v.insert(na[l]),na[l].style="Dark"==g.Scheme?na[l].style+"strokeColor=#484848;":na[l].style+"strokeColor=#CCCCCC;");var nc=new mxCell("",
-new mxGeometry(g.Selected*Ea+2,r-3,Ea-4,3),"strokeColor=none;fillColor=#33B5E5;");nc.vertex=!0;v.insert(nc);v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#333333;":v.style+"strokeColor=none;fillColor=#DDDDDD;";v.style+=f(v.style,g,u,v);break;case "AndroidProgressBar":v=new mxCell("",new mxGeometry(Math.round(U),Math.round(ba+.25*r),Math.round(t),Math.round(.5*r)),"html=1;whiteSpace=wrap;");v.vertex=!0;var Nb=new mxCell("",new mxGeometry(0,0,t*g.BarPosition,Math.round(.5*r)),"strokeColor=none;fillColor=#33B5E5;");
-Nb.vertex=!0;v.insert(Nb);v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#474747;":v.style+"strokeColor=none;fillColor=#BBBBBB;";v.style+=f(v.style,g,u,v);break;case "AndroidImageBlock":v.style="Dark"==g.Scheme?v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#7E7E7E;fillColor=#111111;":v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#939393;fillColor=#ffffff;";v.style+=f(v.style,g,u,v);break;case "AndroidTextBlock":v.style="Dark"==g.Scheme?g.ShowBorder?v.style+
-"fillColor=#111111;strokeColor=#ffffff;":v.style+"fillColor=#111111;strokeColor=none;":g.ShowBorder?v.style+"fillColor=#ffffff;strokeColor=#000000;":v.style+"fillColor=#ffffff;strokeColor=none;";v.value=c(g.Label);v.style+=k(g.Label);v.style+=f(v.style,g,u,v);break;case "AndroidActionBar":v.style+="strokeColor=none;";switch(g.BarBackground){case "Blue":v.style+="fillColor=#002E3E;";break;case "Gray":v.style+="fillColor=#DDDDDD;";break;case "Dark Gray":v.style+="fillColor=#474747;";break;case "White":v.style+=
-"fillColor=#ffffff;"}if(g.HighlightShow){var fb=null,fb=g.HighlightTop?new mxCell("",new mxGeometry(0,0,t,2),"strokeColor=none;"):new mxCell("",new mxGeometry(0,r-2,t,2),"strokeColor=none;");fb.vertex=!0;v.insert(fb);switch(g.HighlightColor){case "Blue":fb.style+="fillColor=#33B5E5;";break;case "Dark Gray":fb.style+="fillColor=#B0B0B0;";break;case "White":fb.style+="fillColor=#ffffff;"}}if(g.VlignShow){var zb=new mxCell("",new mxGeometry(20,5,2,r-10),"shape=line;direction=north;");zb.vertex=!0;v.insert(zb);
-switch(g.VlignColor){case "Blue":zb.style+="strokeColor=#244C5A;";break;case "White":zb.style+="strokeColor=#ffffff;"}}v.style+=f(v.style,g,u,v);break;case "AndroidButton":v.value=c(g.Label);v.style+=k(g.Label)+"shape=partialRectangle;left=0;right=0;";v.style="Dark"==g.Scheme?v.style+"fillColor=#474747;strokeColor=#C6C5C6;bottom=0;":v.style+"fillColor=#DFE0DF;strokeColor=#C6C5C6;top=0;";v.style+=f(v.style,g,u,v);break;case "AndroidTextBox":v.value=c(g.Label);v.style+=k(g.Label);var Ob=new mxCell("",
-new mxGeometry(2,r-6,t-4,4),"shape=partialRectangle;top=0;fillColor=none;");Ob.vertex=!0;v.insert(Ob);v.style="Dark"==g.Scheme?v.style+"fillColor=#111111;strokeColor=none;":v.style+"fillColor=#ffffff;strokeColor=none;";Ob.style=g.TextFocused?Ob.style+"strokeColor=#33B5E5;":Ob.style+"strokeColor=#A9A9A9;";v.style+=f(v.style,g,u,v);break;case "AndroidRadioButton":var nb=null;g.Checked&&(nb=new mxCell("",new mxGeometry(.15*t,.15*r,.7*t,.7*r),"shape=ellipse;fillColor=#33B5E5;strokeWidth=0.6;"),nb.vertex=
-!0,v.insert(nb));"Dark"==g.Scheme?(v.style+="shape=ellipse;strokeWidth=0.6;strokeColor=#272727;",g.Checked?(nb.style+="strokeColor=#1F5C73;",v.style+="fillColor=#193C49;"):v.style+="fillColor=#111111;"):(v.style+="shape=ellipse;strokeWidth=0.6;fillColor=#ffffff;strokeColor=#5C5C5C;",g.Checked&&(nb.style+="strokeColor=#999999;"));v.style+=f(v.style,g,u,v);break;case "AndroidCheckBox":var cc=null;g.Checked&&(cc=new mxCell("",new mxGeometry(.25*t,.05*-r,t,.8*r),"shape=mxgraph.ios7.misc.check;strokeColor=#33B5E5;strokeWidth=2;"),
-cc.vertex=!0,v.insert(cc));v.style="Dark"==g.Scheme?v.style+"strokeWidth=0.6;strokeColor=#272727;fillColor=#111111;":v.style+"strokeWidth=0.6;strokeColor=#5C5C5C;fillColor=#ffffff;";v.style+=f(v.style,g,u,v);break;case "AndroidToggle":v.style="Dark"==g.Scheme?g.Checked?v.style+"shape=mxgraph.android.switch_on;fillColor=#666666;":v.style+"shape=mxgraph.android.switch_off;fillColor=#666666;":g.Checked?v.style+"shape=mxgraph.android.switch_on;fillColor=#E6E6E6;":v.style+"shape=mxgraph.android.switch_off;fillColor=#E6E6E6;";
-v.style+=f(v.style,g,u,v);break;case "AndroidSlider":v.style+="shape=mxgraph.android.progressScrubberFocused;dx="+g.BarPosition+";fillColor=#33b5e5;";v.style+=f(v.style,g,u,v);break;case "iOSSegmentedControl":Pa=parseInt(g.Tabs);Ea=t;v.style+="strokeColor=none;fillColor=none;";0<Pa&&(Ea/=Pa);fa=[];na=[];for(l=0;l<Pa;l++)fa[l]=new mxCell("",new mxGeometry(l*Ea,0,Ea,r),"strokeColor="+g.FillColor+";"),fa[l].vertex=!0,v.insert(fa[l]),fa[l].value=c(g["Tab_"+l]),fa[l].style+=k(g["Tab_"+l]),fa[l].style=
-g.Selected==l?fa[l].style+D(g,u):fa[l].style+"fillColor=none;";v.style+=f(v.style,g,u,v);break;case "iOSSlider":v.style+="shape=mxgraph.ios7ui.slider;strokeColor="+g.FillColor+";fillColor=#ffffff;strokeWidth=2;barPos="+100*g.BarPosition+";";v.style+=f(v.style,g,u,v);break;case "iOSProgressBar":v=new mxCell("",new mxGeometry(Math.round(U),Math.round(ba+.25*r),Math.round(t),Math.round(.5*r)),"html=1;whiteSpace=wrap;strokeColor=none;fillColor=#B5B5B5;");v.vertex=!0;Nb=new mxCell("",new mxGeometry(0,
-0,t*g.BarPosition,Math.round(.5*r)),"strokeColor=none;"+D(g,u));Nb.vertex=!0;v.insert(Nb);v.style+=f(v.style,g,u,v);break;case "iOSPageControls":v.style+="shape=mxgraph.ios7ui.pageControl;strokeColor=#D6D6D6;";v.style+=f(v.style,g,u,v);break;case "iOSStatusBar":v.style+="shape=mxgraph.ios7ui.appBar;strokeColor=#000000;";var Q=new mxCell(c(g.Text),new mxGeometry(.35*t,0,.3*t,r),"strokeColor=none;fillColor=none;");Q.vertex=!0;v.insert(Q);Q.style+=k(g.Text);var za=new mxCell(c(g.Carrier),new mxGeometry(.09*
-t,0,.2*t,r),"strokeColor=none;fillColor=none;");za.vertex=!0;v.insert(za);za.style+=k(g.Carrier);v.style+=f(v.style,g,u,v);break;case "iOSSearchBar":v.style+="strokeColor=none;";v.style+=f(v.style,g,u,v)+k(g.Search);v.value=c(g.Search);var V=new mxCell("",new mxGeometry(.3*t,.3*r,.4*r,.4*r),"shape=mxgraph.ios7.icons.looking_glass;strokeColor=#000000;fillColor=none;");V.vertex=!0;v.insert(V);break;case "iOSNavBar":v.style+="shape=partialRectangle;top=0;right=0;left=0;strokeColor=#979797;";+k(g.Title);
-v.style+=f(v.style,g,u,v);v.value=c(g.Title);Q=new mxCell(c(g.LeftText),new mxGeometry(.03*t,0,.3*t,r),"strokeColor=none;fillColor=none;");Q.vertex=!0;v.insert(Q);Q.style+=k(g.LeftText);za=new mxCell(c(g.RightText),new mxGeometry(.65*t,0,.3*t,r),"strokeColor=none;fillColor=none;");za.vertex=!0;v.insert(za);za.style+=k(g.RightText);V=new mxCell("",new mxGeometry(.02*t,.2*r,.3*r,.5*r),"shape=mxgraph.ios7.misc.left;strokeColor=#007AFF;strokeWidth=2;");V.vertex=!0;v.insert(V);break;case "iOSTabs":Pa=
-parseInt(g.Tabs);Ea=t;v.style+="shape=partialRectangle;right=0;left=0;bottom=0;strokeColor=#979797;";v.style+=f(v.style,g,u,v);0<Pa&&(Ea/=Pa);fa=[];na=[];for(l=0;l<Pa;l++)fa[l]=new mxCell("",new mxGeometry(l*Ea,0,Ea,r),"strokeColor=none;"),fa[l].vertex=!0,v.insert(fa[l]),fa[l].value=c(g["Tab_"+l]),fa[l].style+=b(g["Tab_"+l]),fa[l].style+=a(g["Tab_"+l])+d(g["Tab_"+l])+h(g["Tab_"+l])+p(g["Tab_"+l])+y(g["Tab_"+l])+z(g["Tab_"+l])+x(g["Tab_"+l])+C(g["Tab_"+l]),fa[l].style+="verticalAlign=bottom;",fa[l].style=
-g.Selected==l?fa[l].style+"fillColor=#BBBBBB;":fa[l].style+"fillColor=none;";break;case "iOSDatePicker":var Qa=new mxCell("",new mxGeometry(0,0,.5*t,.2*r),"strokeColor=none;fillColor=none;");Qa.vertex=!0;v.insert(Qa);Qa.value=c(g.Option11);Qa.style+=k(g.Option11);var Ra=new mxCell("",new mxGeometry(.5*t,0,.15*t,.2*r),"strokeColor=none;fillColor=none;");Ra.vertex=!0;v.insert(Ra);Ra.value=c(g.Option21);Ra.style+=k(g.Option21);var Sa=new mxCell("",new mxGeometry(.65*t,0,.15*t,.2*r),"strokeColor=none;fillColor=none;");
-Sa.vertex=!0;v.insert(Sa);Sa.value=c(g.Option31);Sa.style+=k(g.Option31);var Ta=new mxCell("",new mxGeometry(0,.2*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");Ta.vertex=!0;v.insert(Ta);Ta.value=c(g.Option12);Ta.style+=k(g.Option12);var Ua=new mxCell("",new mxGeometry(.5*t,.2*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Ua.vertex=!0;v.insert(Ua);Ua.value=c(g.Option22);Ua.style+=k(g.Option22);var Va=new mxCell("",new mxGeometry(.65*t,.2*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Va.vertex=
-!0;v.insert(Va);Va.value=c(g.Option32);Va.style+=k(g.Option32);var sa=new mxCell("",new mxGeometry(0,.4*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");sa.vertex=!0;v.insert(sa);sa.value=c(g.Option13);sa.style+=k(g.Option13);var ta=new mxCell("",new mxGeometry(.5*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ta.vertex=!0;v.insert(ta);ta.value=c(g.Option23);ta.style+=k(g.Option23);var Wa=new mxCell("",new mxGeometry(.65*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Wa.vertex=!0;
-v.insert(Wa);Wa.value=c(g.Option33);Wa.style+=k(g.Option33);var ua=new mxCell("",new mxGeometry(.8*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ua.vertex=!0;v.insert(ua);ua.value=c(g.Option43);ua.style+=k(g.Option43);var va=new mxCell("",new mxGeometry(0,.6*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");va.vertex=!0;v.insert(va);va.value=c(g.Option14);va.style+=k(g.Option14);var Xa=new mxCell("",new mxGeometry(.5*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Xa.vertex=!0;v.insert(Xa);
-Xa.value=c(g.Option24);Xa.style+=k(g.Option24);var Ya=new mxCell("",new mxGeometry(.65*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Ya.vertex=!0;v.insert(Ya);Ya.value=c(g.Option34);Ya.style+=k(g.Option34);var Za=new mxCell("",new mxGeometry(.8*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Za.vertex=!0;v.insert(Za);Za.value=c(g.Option44);Za.style+=k(g.Option44);var wa=new mxCell("",new mxGeometry(0,.8*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");wa.vertex=!0;v.insert(wa);wa.value=
-c(g.Option15);wa.style+=k(g.Option15);var $a=new mxCell("",new mxGeometry(.5*t,.8*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");$a.vertex=!0;v.insert($a);$a.value=c(g.Option25);$a.style+=k(g.Option25);var ab=new mxCell("",new mxGeometry(.65*t,.8*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ab.vertex=!0;v.insert(ab);ab.value=c(g.Option35);ab.style+=k(g.Option35);Ma=new mxCell("",new mxGeometry(0,.4*r-2,t,4),"shape=line;strokeColor=#888888;");Ma.vertex=!0;v.insert(Ma);Na=new mxCell("",new mxGeometry(0,
-.6*r-2,t,4),"shape=line;strokeColor=#888888;");Na.vertex=!0;v.insert(Na);v.style+="strokeColor=none;";v.style+=f(v.style,g,u,v);break;case "iOSTimePicker":Qa=new mxCell("",new mxGeometry(0,0,.25*t,.2*r),"strokeColor=none;fillColor=none;");Qa.vertex=!0;v.insert(Qa);Qa.value=c(g.Option11);Qa.style+=k(g.Option11);Ra=new mxCell("",new mxGeometry(.25*t,0,.3*t,.2*r),"strokeColor=none;fillColor=none;");Ra.vertex=!0;v.insert(Ra);Ra.value=c(g.Option21);Ra.style+=k(g.Option21);Ta=new mxCell("",new mxGeometry(0,
-.2*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");Ta.vertex=!0;v.insert(Ta);Ta.value=c(g.Option12);Ta.style+=k(g.Option12);Ua=new mxCell("",new mxGeometry(.25*t,.2*r,.3*t,.2*r),"strokeColor=none;fillColor=none;");Ua.vertex=!0;v.insert(Ua);Ua.value=c(g.Option22);Ua.style+=k(g.Option22);sa=new mxCell("",new mxGeometry(0,.4*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");sa.vertex=!0;v.insert(sa);sa.value=c(g.Option13);sa.style+=k(g.Option13);ta=new mxCell("",new mxGeometry(.25*t,.4*r,.3*t,.2*r),
-"strokeColor=none;fillColor=none;");ta.vertex=!0;v.insert(ta);ta.value=c(g.Option23);ta.style+=k(g.Option23);ua=new mxCell("",new mxGeometry(.7*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ua.vertex=!0;v.insert(ua);ua.value=c(g.Option33);ua.style+=k(g.Option33);va=new mxCell("",new mxGeometry(0,.6*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");va.vertex=!0;v.insert(va);va.value=c(g.Option14);va.style+=k(g.Option14);Xa=new mxCell("",new mxGeometry(.25*t,.6*r,.3*t,.2*r),"strokeColor=none;fillColor=none;");
-Xa.vertex=!0;v.insert(Xa);Xa.value=c(g.Option24);Xa.style+=k(g.Option24);Za=new mxCell("",new mxGeometry(.7*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Za.vertex=!0;v.insert(Za);Za.value=c(g.Option34);Za.style+=k(g.Option34);wa=new mxCell("",new mxGeometry(0,.8*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");wa.vertex=!0;v.insert(wa);wa.value=c(g.Option15);wa.style+=k(g.Option15);$a=new mxCell("",new mxGeometry(.25*t,.8*r,.3*t,.2*r),"strokeColor=none;fillColor=none;");$a.vertex=!0;v.insert($a);
-$a.value=c(g.Option25);$a.style+=k(g.Option25);Ma=new mxCell("",new mxGeometry(0,.4*r-2,t,4),"shape=line;strokeColor=#888888;");Ma.vertex=!0;v.insert(Ma);Na=new mxCell("",new mxGeometry(0,.6*r-2,t,4),"shape=line;strokeColor=#888888;");Na.vertex=!0;v.insert(Na);v.style+="strokeColor=none;";v.style+=f(v.style,g,u,v);break;case "iOSCountdownPicker":Sa=new mxCell("",new mxGeometry(.45*t,0,.2*t,.2*r),"strokeColor=none;fillColor=none;");Sa.vertex=!0;v.insert(Sa);Sa.value=c(g.Option31);Sa.style+=k(g.Option31);
-Va=new mxCell("",new mxGeometry(.45*t,.2*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");Va.vertex=!0;v.insert(Va);Va.value=c(g.Option32);Va.style+=k(g.Option32);sa=new mxCell("",new mxGeometry(0,.4*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");sa.vertex=!0;v.insert(sa);sa.value=c(g.Option13);sa.style+=k(g.Option13);ta=new mxCell("",new mxGeometry(.2*t,.4*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");ta.vertex=!0;v.insert(ta);ta.value=c(g.Option23);ta.style+=k(g.Option23);Wa=new mxCell("",
-new mxGeometry(.45*t,.4*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");Wa.vertex=!0;v.insert(Wa);Wa.value=c(g.Option33);Wa.style+=k(g.Option33);ua=new mxCell("",new mxGeometry(.6*t,.4*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");ua.vertex=!0;v.insert(ua);ua.value=c(g.Option43);ua.style+=k(g.Option43);va=new mxCell("",new mxGeometry(0,.6*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");va.vertex=!0;v.insert(va);va.value=c(g.Option14);va.style+=k(g.Option14);Ya=new mxCell("",new mxGeometry(.45*
-t,.6*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");Ya.vertex=!0;v.insert(Ya);Ya.value=c(g.Option34);Ya.style+=k(g.Option34);wa=new mxCell("",new mxGeometry(0,.8*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");wa.vertex=!0;v.insert(wa);wa.value=c(g.Option15);wa.style+=k(g.Option15);ab=new mxCell("",new mxGeometry(.45*t,.8*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");ab.vertex=!0;v.insert(ab);ab.value=c(g.Option35);ab.style+=k(g.Option35);Ma=new mxCell("",new mxGeometry(0,.4*r-2,t,4),"shape=line;strokeColor=#888888;");
-Ma.vertex=!0;v.insert(Ma);Na=new mxCell("",new mxGeometry(0,.6*r-2,t,4),"shape=line;strokeColor=#888888;");Na.vertex=!0;v.insert(Na);v.style+="strokeColor=none;";v.style+=f(v.style,g,u,v);break;case "iOSBasicCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;spacing=0;align=left;spacingLeft="+.6*g.SeparatorInset+";";v.style+=b(g.text)+a(g.text)+d(g.text)+F(g.text);v.style+=f(v.style,g,u,v);v.value=c(g.text);switch(g.AccessoryIndicatorType){case "Disclosure":V=
+yb.style+="strokeColor=none;fillColor=#939393;");v.style+=f(v.style,h,u,v);break;case "AndroidListItems":var xa=r,eb=0;if(h.ShowHeader){var eb=8,Mb=new mxCell("",new mxGeometry(0,0,t,eb),"strokeColor=none;fillColor=none;");Mb.vertex=!0;v.insert(Mb);Mb.value=c(h.Header);Mb.style+=k(h.Header);var xa=xa-eb,mc=new mxCell("",new mxGeometry(0,eb-2,t,4),"shape=line;strokeColor=#999999;");mc.vertex=!0;v.insert(mc)}var Oa=parseInt(h.Items);0<Oa&&(xa/=Oa);for(var H=[],na=[],l=0;l<Oa;l++)H[l]=new mxCell("",
+new mxGeometry(0,eb+l*xa,t,xa),"strokeColor=none;fillColor=none;"),H[l].vertex=!0,v.insert(H[l]),H[l].value=c(h["Item_"+l]),H[l].style+=k(h["Item_"+l]),0<l&&(na[l]=new mxCell("",new mxGeometry(0,eb+l*xa-2,t,4),"shape=line;"),na[l].vertex=!0,v.insert(na[l]),na[l].style="Dark"==h.Scheme?na[l].style+"strokeColor=#ffffff;":na[l].style+"strokeColor=#D9D9D9;");v.style="Dark"==h.Scheme?v.style+"strokeColor=none;fillColor=#111111;":v.style+"strokeColor=none;fillColor=#ffffff;";v.style+=f(v.style,h,u,v);break;
+case "AndroidTabs":var Pa=parseInt(h.Tabs),Ea=t;0<Pa&&(Ea/=Pa);for(var fa=[],na=[],l=0;l<Pa;l++)fa[l]=new mxCell("",new mxGeometry(l*Ea,0,Ea,r),"strokeColor=none;fillColor=none;"),fa[l].vertex=!0,v.insert(fa[l]),fa[l].value=c(h["Tab_"+l]),fa[l].style+=k(h["Tab_"+l]),0<l&&(na[l]=new mxCell("",new mxGeometry(l*Ea-2,.2*r,4,.6*r),"shape=line;direction=north;"),na[l].vertex=!0,v.insert(na[l]),na[l].style="Dark"==h.Scheme?na[l].style+"strokeColor=#484848;":na[l].style+"strokeColor=#CCCCCC;");var nc=new mxCell("",
+new mxGeometry(h.Selected*Ea+2,r-3,Ea-4,3),"strokeColor=none;fillColor=#33B5E5;");nc.vertex=!0;v.insert(nc);v.style="Dark"==h.Scheme?v.style+"strokeColor=none;fillColor=#333333;":v.style+"strokeColor=none;fillColor=#DDDDDD;";v.style+=f(v.style,h,u,v);break;case "AndroidProgressBar":v=new mxCell("",new mxGeometry(Math.round(U),Math.round(ba+.25*r),Math.round(t),Math.round(.5*r)),"html=1;whiteSpace=wrap;");v.vertex=!0;var Nb=new mxCell("",new mxGeometry(0,0,t*h.BarPosition,Math.round(.5*r)),"strokeColor=none;fillColor=#33B5E5;");
+Nb.vertex=!0;v.insert(Nb);v.style="Dark"==h.Scheme?v.style+"strokeColor=none;fillColor=#474747;":v.style+"strokeColor=none;fillColor=#BBBBBB;";v.style+=f(v.style,h,u,v);break;case "AndroidImageBlock":v.style="Dark"==h.Scheme?v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#7E7E7E;fillColor=#111111;":v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#939393;fillColor=#ffffff;";v.style+=f(v.style,h,u,v);break;case "AndroidTextBlock":v.style="Dark"==h.Scheme?h.ShowBorder?v.style+
+"fillColor=#111111;strokeColor=#ffffff;":v.style+"fillColor=#111111;strokeColor=none;":h.ShowBorder?v.style+"fillColor=#ffffff;strokeColor=#000000;":v.style+"fillColor=#ffffff;strokeColor=none;";v.value=c(h.Label);v.style+=k(h.Label);v.style+=f(v.style,h,u,v);break;case "AndroidActionBar":v.style+="strokeColor=none;";switch(h.BarBackground){case "Blue":v.style+="fillColor=#002E3E;";break;case "Gray":v.style+="fillColor=#DDDDDD;";break;case "Dark Gray":v.style+="fillColor=#474747;";break;case "White":v.style+=
+"fillColor=#ffffff;"}if(h.HighlightShow){var fb=null,fb=h.HighlightTop?new mxCell("",new mxGeometry(0,0,t,2),"strokeColor=none;"):new mxCell("",new mxGeometry(0,r-2,t,2),"strokeColor=none;");fb.vertex=!0;v.insert(fb);switch(h.HighlightColor){case "Blue":fb.style+="fillColor=#33B5E5;";break;case "Dark Gray":fb.style+="fillColor=#B0B0B0;";break;case "White":fb.style+="fillColor=#ffffff;"}}if(h.VlignShow){var zb=new mxCell("",new mxGeometry(20,5,2,r-10),"shape=line;direction=north;");zb.vertex=!0;v.insert(zb);
+switch(h.VlignColor){case "Blue":zb.style+="strokeColor=#244C5A;";break;case "White":zb.style+="strokeColor=#ffffff;"}}v.style+=f(v.style,h,u,v);break;case "AndroidButton":v.value=c(h.Label);v.style+=k(h.Label)+"shape=partialRectangle;left=0;right=0;";v.style="Dark"==h.Scheme?v.style+"fillColor=#474747;strokeColor=#C6C5C6;bottom=0;":v.style+"fillColor=#DFE0DF;strokeColor=#C6C5C6;top=0;";v.style+=f(v.style,h,u,v);break;case "AndroidTextBox":v.value=c(h.Label);v.style+=k(h.Label);var Ob=new mxCell("",
+new mxGeometry(2,r-6,t-4,4),"shape=partialRectangle;top=0;fillColor=none;");Ob.vertex=!0;v.insert(Ob);v.style="Dark"==h.Scheme?v.style+"fillColor=#111111;strokeColor=none;":v.style+"fillColor=#ffffff;strokeColor=none;";Ob.style=h.TextFocused?Ob.style+"strokeColor=#33B5E5;":Ob.style+"strokeColor=#A9A9A9;";v.style+=f(v.style,h,u,v);break;case "AndroidRadioButton":var nb=null;h.Checked&&(nb=new mxCell("",new mxGeometry(.15*t,.15*r,.7*t,.7*r),"shape=ellipse;fillColor=#33B5E5;strokeWidth=0.6;"),nb.vertex=
+!0,v.insert(nb));"Dark"==h.Scheme?(v.style+="shape=ellipse;strokeWidth=0.6;strokeColor=#272727;",h.Checked?(nb.style+="strokeColor=#1F5C73;",v.style+="fillColor=#193C49;"):v.style+="fillColor=#111111;"):(v.style+="shape=ellipse;strokeWidth=0.6;fillColor=#ffffff;strokeColor=#5C5C5C;",h.Checked&&(nb.style+="strokeColor=#999999;"));v.style+=f(v.style,h,u,v);break;case "AndroidCheckBox":var cc=null;h.Checked&&(cc=new mxCell("",new mxGeometry(.25*t,.05*-r,t,.8*r),"shape=mxgraph.ios7.misc.check;strokeColor=#33B5E5;strokeWidth=2;"),
+cc.vertex=!0,v.insert(cc));v.style="Dark"==h.Scheme?v.style+"strokeWidth=0.6;strokeColor=#272727;fillColor=#111111;":v.style+"strokeWidth=0.6;strokeColor=#5C5C5C;fillColor=#ffffff;";v.style+=f(v.style,h,u,v);break;case "AndroidToggle":v.style="Dark"==h.Scheme?h.Checked?v.style+"shape=mxgraph.android.switch_on;fillColor=#666666;":v.style+"shape=mxgraph.android.switch_off;fillColor=#666666;":h.Checked?v.style+"shape=mxgraph.android.switch_on;fillColor=#E6E6E6;":v.style+"shape=mxgraph.android.switch_off;fillColor=#E6E6E6;";
+v.style+=f(v.style,h,u,v);break;case "AndroidSlider":v.style+="shape=mxgraph.android.progressScrubberFocused;dx="+h.BarPosition+";fillColor=#33b5e5;";v.style+=f(v.style,h,u,v);break;case "iOSSegmentedControl":Pa=parseInt(h.Tabs);Ea=t;v.style+="strokeColor=none;fillColor=none;";0<Pa&&(Ea/=Pa);fa=[];na=[];for(l=0;l<Pa;l++)fa[l]=new mxCell("",new mxGeometry(l*Ea,0,Ea,r),"strokeColor="+h.FillColor+";"),fa[l].vertex=!0,v.insert(fa[l]),fa[l].value=c(h["Tab_"+l]),fa[l].style+=k(h["Tab_"+l]),fa[l].style=
+h.Selected==l?fa[l].style+D(h,u):fa[l].style+"fillColor=none;";v.style+=f(v.style,h,u,v);break;case "iOSSlider":v.style+="shape=mxgraph.ios7ui.slider;strokeColor="+h.FillColor+";fillColor=#ffffff;strokeWidth=2;barPos="+100*h.BarPosition+";";v.style+=f(v.style,h,u,v);break;case "iOSProgressBar":v=new mxCell("",new mxGeometry(Math.round(U),Math.round(ba+.25*r),Math.round(t),Math.round(.5*r)),"html=1;whiteSpace=wrap;strokeColor=none;fillColor=#B5B5B5;");v.vertex=!0;Nb=new mxCell("",new mxGeometry(0,
+0,t*h.BarPosition,Math.round(.5*r)),"strokeColor=none;"+D(h,u));Nb.vertex=!0;v.insert(Nb);v.style+=f(v.style,h,u,v);break;case "iOSPageControls":v.style+="shape=mxgraph.ios7ui.pageControl;strokeColor=#D6D6D6;";v.style+=f(v.style,h,u,v);break;case "iOSStatusBar":v.style+="shape=mxgraph.ios7ui.appBar;strokeColor=#000000;";var Q=new mxCell(c(h.Text),new mxGeometry(.35*t,0,.3*t,r),"strokeColor=none;fillColor=none;");Q.vertex=!0;v.insert(Q);Q.style+=k(h.Text);var za=new mxCell(c(h.Carrier),new mxGeometry(.09*
+t,0,.2*t,r),"strokeColor=none;fillColor=none;");za.vertex=!0;v.insert(za);za.style+=k(h.Carrier);v.style+=f(v.style,h,u,v);break;case "iOSSearchBar":v.style+="strokeColor=none;";v.style+=f(v.style,h,u,v)+k(h.Search);v.value=c(h.Search);var V=new mxCell("",new mxGeometry(.3*t,.3*r,.4*r,.4*r),"shape=mxgraph.ios7.icons.looking_glass;strokeColor=#000000;fillColor=none;");V.vertex=!0;v.insert(V);break;case "iOSNavBar":v.style+="shape=partialRectangle;top=0;right=0;left=0;strokeColor=#979797;";+k(h.Title);
+v.style+=f(v.style,h,u,v);v.value=c(h.Title);Q=new mxCell(c(h.LeftText),new mxGeometry(.03*t,0,.3*t,r),"strokeColor=none;fillColor=none;");Q.vertex=!0;v.insert(Q);Q.style+=k(h.LeftText);za=new mxCell(c(h.RightText),new mxGeometry(.65*t,0,.3*t,r),"strokeColor=none;fillColor=none;");za.vertex=!0;v.insert(za);za.style+=k(h.RightText);V=new mxCell("",new mxGeometry(.02*t,.2*r,.3*r,.5*r),"shape=mxgraph.ios7.misc.left;strokeColor=#007AFF;strokeWidth=2;");V.vertex=!0;v.insert(V);break;case "iOSTabs":Pa=
+parseInt(h.Tabs);Ea=t;v.style+="shape=partialRectangle;right=0;left=0;bottom=0;strokeColor=#979797;";v.style+=f(v.style,h,u,v);0<Pa&&(Ea/=Pa);fa=[];na=[];for(l=0;l<Pa;l++)fa[l]=new mxCell("",new mxGeometry(l*Ea,0,Ea,r),"strokeColor=none;"),fa[l].vertex=!0,v.insert(fa[l]),fa[l].value=c(h["Tab_"+l]),fa[l].style+=b(h["Tab_"+l]),fa[l].style+=a(h["Tab_"+l])+d(h["Tab_"+l])+g(h["Tab_"+l])+p(h["Tab_"+l])+y(h["Tab_"+l])+A(h["Tab_"+l])+x(h["Tab_"+l])+z(h["Tab_"+l]),fa[l].style+="verticalAlign=bottom;",fa[l].style=
+h.Selected==l?fa[l].style+"fillColor=#BBBBBB;":fa[l].style+"fillColor=none;";break;case "iOSDatePicker":var Qa=new mxCell("",new mxGeometry(0,0,.5*t,.2*r),"strokeColor=none;fillColor=none;");Qa.vertex=!0;v.insert(Qa);Qa.value=c(h.Option11);Qa.style+=k(h.Option11);var Ra=new mxCell("",new mxGeometry(.5*t,0,.15*t,.2*r),"strokeColor=none;fillColor=none;");Ra.vertex=!0;v.insert(Ra);Ra.value=c(h.Option21);Ra.style+=k(h.Option21);var Sa=new mxCell("",new mxGeometry(.65*t,0,.15*t,.2*r),"strokeColor=none;fillColor=none;");
+Sa.vertex=!0;v.insert(Sa);Sa.value=c(h.Option31);Sa.style+=k(h.Option31);var Ta=new mxCell("",new mxGeometry(0,.2*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");Ta.vertex=!0;v.insert(Ta);Ta.value=c(h.Option12);Ta.style+=k(h.Option12);var Ua=new mxCell("",new mxGeometry(.5*t,.2*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Ua.vertex=!0;v.insert(Ua);Ua.value=c(h.Option22);Ua.style+=k(h.Option22);var Va=new mxCell("",new mxGeometry(.65*t,.2*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Va.vertex=
+!0;v.insert(Va);Va.value=c(h.Option32);Va.style+=k(h.Option32);var sa=new mxCell("",new mxGeometry(0,.4*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");sa.vertex=!0;v.insert(sa);sa.value=c(h.Option13);sa.style+=k(h.Option13);var ta=new mxCell("",new mxGeometry(.5*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ta.vertex=!0;v.insert(ta);ta.value=c(h.Option23);ta.style+=k(h.Option23);var Wa=new mxCell("",new mxGeometry(.65*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Wa.vertex=!0;
+v.insert(Wa);Wa.value=c(h.Option33);Wa.style+=k(h.Option33);var ua=new mxCell("",new mxGeometry(.8*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ua.vertex=!0;v.insert(ua);ua.value=c(h.Option43);ua.style+=k(h.Option43);var va=new mxCell("",new mxGeometry(0,.6*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");va.vertex=!0;v.insert(va);va.value=c(h.Option14);va.style+=k(h.Option14);var Xa=new mxCell("",new mxGeometry(.5*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Xa.vertex=!0;v.insert(Xa);
+Xa.value=c(h.Option24);Xa.style+=k(h.Option24);var Ya=new mxCell("",new mxGeometry(.65*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Ya.vertex=!0;v.insert(Ya);Ya.value=c(h.Option34);Ya.style+=k(h.Option34);var Za=new mxCell("",new mxGeometry(.8*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Za.vertex=!0;v.insert(Za);Za.value=c(h.Option44);Za.style+=k(h.Option44);var wa=new mxCell("",new mxGeometry(0,.8*r,.5*t,.2*r),"strokeColor=none;fillColor=none;");wa.vertex=!0;v.insert(wa);wa.value=
+c(h.Option15);wa.style+=k(h.Option15);var $a=new mxCell("",new mxGeometry(.5*t,.8*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");$a.vertex=!0;v.insert($a);$a.value=c(h.Option25);$a.style+=k(h.Option25);var ab=new mxCell("",new mxGeometry(.65*t,.8*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ab.vertex=!0;v.insert(ab);ab.value=c(h.Option35);ab.style+=k(h.Option35);Ma=new mxCell("",new mxGeometry(0,.4*r-2,t,4),"shape=line;strokeColor=#888888;");Ma.vertex=!0;v.insert(Ma);Na=new mxCell("",new mxGeometry(0,
+.6*r-2,t,4),"shape=line;strokeColor=#888888;");Na.vertex=!0;v.insert(Na);v.style+="strokeColor=none;";v.style+=f(v.style,h,u,v);break;case "iOSTimePicker":Qa=new mxCell("",new mxGeometry(0,0,.25*t,.2*r),"strokeColor=none;fillColor=none;");Qa.vertex=!0;v.insert(Qa);Qa.value=c(h.Option11);Qa.style+=k(h.Option11);Ra=new mxCell("",new mxGeometry(.25*t,0,.3*t,.2*r),"strokeColor=none;fillColor=none;");Ra.vertex=!0;v.insert(Ra);Ra.value=c(h.Option21);Ra.style+=k(h.Option21);Ta=new mxCell("",new mxGeometry(0,
+.2*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");Ta.vertex=!0;v.insert(Ta);Ta.value=c(h.Option12);Ta.style+=k(h.Option12);Ua=new mxCell("",new mxGeometry(.25*t,.2*r,.3*t,.2*r),"strokeColor=none;fillColor=none;");Ua.vertex=!0;v.insert(Ua);Ua.value=c(h.Option22);Ua.style+=k(h.Option22);sa=new mxCell("",new mxGeometry(0,.4*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");sa.vertex=!0;v.insert(sa);sa.value=c(h.Option13);sa.style+=k(h.Option13);ta=new mxCell("",new mxGeometry(.25*t,.4*r,.3*t,.2*r),
+"strokeColor=none;fillColor=none;");ta.vertex=!0;v.insert(ta);ta.value=c(h.Option23);ta.style+=k(h.Option23);ua=new mxCell("",new mxGeometry(.7*t,.4*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");ua.vertex=!0;v.insert(ua);ua.value=c(h.Option33);ua.style+=k(h.Option33);va=new mxCell("",new mxGeometry(0,.6*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");va.vertex=!0;v.insert(va);va.value=c(h.Option14);va.style+=k(h.Option14);Xa=new mxCell("",new mxGeometry(.25*t,.6*r,.3*t,.2*r),"strokeColor=none;fillColor=none;");
+Xa.vertex=!0;v.insert(Xa);Xa.value=c(h.Option24);Xa.style+=k(h.Option24);Za=new mxCell("",new mxGeometry(.7*t,.6*r,.15*t,.2*r),"strokeColor=none;fillColor=none;");Za.vertex=!0;v.insert(Za);Za.value=c(h.Option34);Za.style+=k(h.Option34);wa=new mxCell("",new mxGeometry(0,.8*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");wa.vertex=!0;v.insert(wa);wa.value=c(h.Option15);wa.style+=k(h.Option15);$a=new mxCell("",new mxGeometry(.25*t,.8*r,.3*t,.2*r),"strokeColor=none;fillColor=none;");$a.vertex=!0;v.insert($a);
+$a.value=c(h.Option25);$a.style+=k(h.Option25);Ma=new mxCell("",new mxGeometry(0,.4*r-2,t,4),"shape=line;strokeColor=#888888;");Ma.vertex=!0;v.insert(Ma);Na=new mxCell("",new mxGeometry(0,.6*r-2,t,4),"shape=line;strokeColor=#888888;");Na.vertex=!0;v.insert(Na);v.style+="strokeColor=none;";v.style+=f(v.style,h,u,v);break;case "iOSCountdownPicker":Sa=new mxCell("",new mxGeometry(.45*t,0,.2*t,.2*r),"strokeColor=none;fillColor=none;");Sa.vertex=!0;v.insert(Sa);Sa.value=c(h.Option31);Sa.style+=k(h.Option31);
+Va=new mxCell("",new mxGeometry(.45*t,.2*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");Va.vertex=!0;v.insert(Va);Va.value=c(h.Option32);Va.style+=k(h.Option32);sa=new mxCell("",new mxGeometry(0,.4*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");sa.vertex=!0;v.insert(sa);sa.value=c(h.Option13);sa.style+=k(h.Option13);ta=new mxCell("",new mxGeometry(.2*t,.4*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");ta.vertex=!0;v.insert(ta);ta.value=c(h.Option23);ta.style+=k(h.Option23);Wa=new mxCell("",
+new mxGeometry(.45*t,.4*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");Wa.vertex=!0;v.insert(Wa);Wa.value=c(h.Option33);Wa.style+=k(h.Option33);ua=new mxCell("",new mxGeometry(.6*t,.4*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");ua.vertex=!0;v.insert(ua);ua.value=c(h.Option43);ua.style+=k(h.Option43);va=new mxCell("",new mxGeometry(0,.6*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");va.vertex=!0;v.insert(va);va.value=c(h.Option14);va.style+=k(h.Option14);Ya=new mxCell("",new mxGeometry(.45*
+t,.6*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");Ya.vertex=!0;v.insert(Ya);Ya.value=c(h.Option34);Ya.style+=k(h.Option34);wa=new mxCell("",new mxGeometry(0,.8*r,.25*t,.2*r),"strokeColor=none;fillColor=none;");wa.vertex=!0;v.insert(wa);wa.value=c(h.Option15);wa.style+=k(h.Option15);ab=new mxCell("",new mxGeometry(.45*t,.8*r,.2*t,.2*r),"strokeColor=none;fillColor=none;");ab.vertex=!0;v.insert(ab);ab.value=c(h.Option35);ab.style+=k(h.Option35);Ma=new mxCell("",new mxGeometry(0,.4*r-2,t,4),"shape=line;strokeColor=#888888;");
+Ma.vertex=!0;v.insert(Ma);Na=new mxCell("",new mxGeometry(0,.6*r-2,t,4),"shape=line;strokeColor=#888888;");Na.vertex=!0;v.insert(Na);v.style+="strokeColor=none;";v.style+=f(v.style,h,u,v);break;case "iOSBasicCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;spacing=0;align=left;spacingLeft="+.6*h.SeparatorInset+";";v.style+=b(h.text)+a(h.text)+d(h.text)+F(h.text);v.style+=f(v.style,h,u,v);v.value=c(h.text);switch(h.AccessoryIndicatorType){case "Disclosure":V=
new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);break;case "DetailDisclosure":V=new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);var ma=new mxCell("",new mxGeometry(.79*t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);break;case "DetailIndicator":ma=new mxCell("",new mxGeometry(.87*
-t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);break;case "CheckMark":V=new mxCell("",new mxGeometry(.89*t,.37*r,.4*r,.26*r),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),V.vertex=!0,v.insert(V)}break;case "iOSSubtitleCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=top;spacingLeft="+.6*g.SeparatorInset+";";v.style+=b(g.subtext)+
-a(g.subtext)+d(g.subtext);v.style+=f(v.style,g,u,v);v.value=c(g.subtext);var oa=new mxCell("",new mxGeometry(0,.4*r,t,.6*r),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=bottom;spacingLeft="+.6*g.SeparatorInset+";");oa.vertex=!0;v.insert(oa);oa.style+=b(g.text)+a(g.text)+d(g.text);oa.value=c(g.text);switch(g.AccessoryIndicatorType){case "Disclosure":V=new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);
+t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);break;case "CheckMark":V=new mxCell("",new mxGeometry(.89*t,.37*r,.4*r,.26*r),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),V.vertex=!0,v.insert(V)}break;case "iOSSubtitleCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=top;spacingLeft="+.6*h.SeparatorInset+";";v.style+=b(h.subtext)+
+a(h.subtext)+d(h.subtext);v.style+=f(v.style,h,u,v);v.value=c(h.subtext);var oa=new mxCell("",new mxGeometry(0,.4*r,t,.6*r),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=bottom;spacingLeft="+.6*h.SeparatorInset+";");oa.vertex=!0;v.insert(oa);oa.style+=b(h.text)+a(h.text)+d(h.text);oa.value=c(h.text);switch(h.AccessoryIndicatorType){case "Disclosure":V=new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);
break;case "DetailDisclosure":V=new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);ma=new mxCell("",new mxGeometry(.79*t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);break;case "DetailIndicator":ma=new mxCell("",new mxGeometry(.87*t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);break;
-case "CheckMark":V=new mxCell("",new mxGeometry(.89*t,.37*r,.4*r,.26*r),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),V.vertex=!0,v.insert(V)}break;case "iOSRightDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=middle;spacingLeft="+.6*g.SeparatorInset+";";v.style+=b(g.subtext)+a(g.subtext)+d(g.subtext);v.style+=f(v.style,g,u,v);v.value=c(g.subtext);oa=null;switch(g.AccessoryIndicatorType){case "Disclosure":V=
+case "CheckMark":V=new mxCell("",new mxGeometry(.89*t,.37*r,.4*r,.26*r),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),V.vertex=!0,v.insert(V)}break;case "iOSRightDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=middle;spacingLeft="+.6*h.SeparatorInset+";";v.style+=b(h.subtext)+a(h.subtext)+d(h.subtext);v.style+=f(v.style,h,u,v);v.value=c(h.subtext);oa=null;switch(h.AccessoryIndicatorType){case "Disclosure":V=
new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);oa=new mxCell("",new mxGeometry(.55*t,0,.3*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;case "DetailDisclosure":V=new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);ma=new mxCell("",new mxGeometry(.79*t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");
ma.vertex=!0;v.insert(ma);oa=new mxCell("",new mxGeometry(.45*t,0,.3*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;case "DetailIndicator":ma=new mxCell("",new mxGeometry(.87*t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);oa=new mxCell("",new mxGeometry(.52*t,0,.3*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;case "CheckMark":V=new mxCell("",new mxGeometry(.89*t,.37*r,.4*r,.26*r),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;");
-V.vertex=!0;v.insert(V);oa=new mxCell("",new mxGeometry(.55*t,0,.3*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;default:oa=new mxCell("",new mxGeometry(.65*t,0,.3*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;")}oa.vertex=!0;v.insert(oa);oa.style+=b(g.text)+a(g.text)+d(g.text);oa.value=c(g.text);break;case "iOSLeftDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;";v.style+=f(v.style,g,u,v);var Ja=new mxCell("",
-new mxGeometry(0,0,.25*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;verticalAlign=middle;spacingRight=3;");Ja.vertex=!0;v.insert(Ja);Ja.style+=b(g.subtext)+a(g.subtext)+d(g.subtext);Ja.value=c(g.subtext);oa=new mxCell("",new mxGeometry(.25*t,0,.5*t,r),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=middle;spacingLeft=3;");oa.vertex=!0;v.insert(oa);oa.style+=b(g.text)+a(g.text)+d(g.text);oa.value=c(g.text);switch(g.AccessoryIndicatorType){case "Disclosure":V=new mxCell("",
+V.vertex=!0;v.insert(V);oa=new mxCell("",new mxGeometry(.55*t,0,.3*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;default:oa=new mxCell("",new mxGeometry(.65*t,0,.3*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;")}oa.vertex=!0;v.insert(oa);oa.style+=b(h.text)+a(h.text)+d(h.text);oa.value=c(h.text);break;case "iOSLeftDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;";v.style+=f(v.style,h,u,v);var Ja=new mxCell("",
+new mxGeometry(0,0,.25*t,r),"fillColor=none;strokeColor=none;spacing=0;align=right;verticalAlign=middle;spacingRight=3;");Ja.vertex=!0;v.insert(Ja);Ja.style+=b(h.subtext)+a(h.subtext)+d(h.subtext);Ja.value=c(h.subtext);oa=new mxCell("",new mxGeometry(.25*t,0,.5*t,r),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=middle;spacingLeft=3;");oa.vertex=!0;v.insert(oa);oa.style+=b(h.text)+a(h.text)+d(h.text);oa.value=c(h.text);switch(h.AccessoryIndicatorType){case "Disclosure":V=new mxCell("",
new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);break;case "DetailDisclosure":V=new mxCell("",new mxGeometry(.91*t,.35*r,.15*r,.3*r),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");V.vertex=!0;v.insert(V);ma=new mxCell("",new mxGeometry(.79*t,.25*r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);break;case "DetailIndicator":ma=new mxCell("",new mxGeometry(.87*t,.25*
r,.5*r,.5*r),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ma.vertex=!0;v.insert(ma);break;case "CheckMark":V=new mxCell("",new mxGeometry(.89*t,.37*r,.4*r,.26*r),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),V.vertex=!0,v.insert(V)}break;case "iOSTableGroupedSectionBreak":v.style+="shape=partialRectangle;left=0;right=0;fillColor=#EFEFF4;strokeColor=#C8C7CC;";Q=new mxCell("",new mxGeometry(0,0,t,.4*r),"fillColor=none;strokeColor=none;spacing=10;align=left;");
-Q.vertex=!0;v.insert(Q);Q.style+=b(g.text)+a(g.text)+d(g.text);Q.value=c(g.text);za=new mxCell("",new mxGeometry(0,.6*r,t,.4*r),"fillColor=none;strokeColor=none;spacing=10;align=left;");za.vertex=!0;v.insert(za);za.style+=b(g["bottom-text"])+a(g["bottom-text"])+d(g["bottom-text"]);za.value=c(g["bottom-text"]);break;case "iOSTablePlainHeaderFooter":v.style+="fillColor=#F7F7F7;strokeColor=none;align=left;spacingLeft=5;spacing=0;";v.style+=b(g.text)+a(g.text)+d(g.text);v.value=c(g.text);v.style+=f(v.style,
-g,u,v);break;case "SMPage":if(g.Group){v.style+="strokeColor=none;fillColor=none;";var q=new mxCell("",new mxGeometry(0,0,.9*t,.9*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=A(g,u)+D(g,u)+B(g,u,q)+G(g)+Y(g);var w=new mxCell("",new mxGeometry(.1*t,.1*r,.9*t,.9*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=A(g,u)+D(g,u)+B(g,u,w)+G(g)+Y(g)+k(g);w.value=c(g.Text);g.Future&&(q.style+="dashed=1;",w.style+="dashed=1;")}else g.Future&&(v.style+="dashed=1;"),v.style+=A(g,u)+D(g,u)+B(g,u,v)+G(g)+Y(g)+k(g),
-v.value=c(g.Text);v.style+=f(v.style,g,u,v);break;case "SMHome":case "SMPrint":case "SMSearch":case "SMSettings":case "SMSitemap":case "SMSuccess":case "SMVideo":case "SMAudio":case "SMCalendar":case "SMChart":case "SMCloud":case "SMDocument":case "SMForm":case "SMGame":case "SMUpload":q=null;switch(e.Class){case "SMHome":q=new mxCell("",new mxGeometry(.5*t-.4*r,.1*r,.8*r,.8*r),"part=1;shape=mxgraph.office.concepts.home;flipH=1;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMPrint":q=
+Q.vertex=!0;v.insert(Q);Q.style+=b(h.text)+a(h.text)+d(h.text);Q.value=c(h.text);za=new mxCell("",new mxGeometry(0,.6*r,t,.4*r),"fillColor=none;strokeColor=none;spacing=10;align=left;");za.vertex=!0;v.insert(za);za.style+=b(h["bottom-text"])+a(h["bottom-text"])+d(h["bottom-text"]);za.value=c(h["bottom-text"]);break;case "iOSTablePlainHeaderFooter":v.style+="fillColor=#F7F7F7;strokeColor=none;align=left;spacingLeft=5;spacing=0;";v.style+=b(h.text)+a(h.text)+d(h.text);v.value=c(h.text);v.style+=f(v.style,
+h,u,v);break;case "SMPage":if(h.Group){v.style+="strokeColor=none;fillColor=none;";var q=new mxCell("",new mxGeometry(0,0,.9*t,.9*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=B(h,u)+D(h,u)+C(h,u,q)+G(h)+Y(h);var w=new mxCell("",new mxGeometry(.1*t,.1*r,.9*t,.9*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=B(h,u)+D(h,u)+C(h,u,w)+G(h)+Y(h)+k(h);w.value=c(h.Text);h.Future&&(q.style+="dashed=1;",w.style+="dashed=1;")}else h.Future&&(v.style+="dashed=1;"),v.style+=B(h,u)+D(h,u)+C(h,u,v)+G(h)+Y(h)+k(h),
+v.value=c(h.Text);v.style+=f(v.style,h,u,v);break;case "SMHome":case "SMPrint":case "SMSearch":case "SMSettings":case "SMSitemap":case "SMSuccess":case "SMVideo":case "SMAudio":case "SMCalendar":case "SMChart":case "SMCloud":case "SMDocument":case "SMForm":case "SMGame":case "SMUpload":q=null;switch(e.Class){case "SMHome":q=new mxCell("",new mxGeometry(.5*t-.4*r,.1*r,.8*r,.8*r),"part=1;shape=mxgraph.office.concepts.home;flipH=1;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMPrint":q=
new mxCell("",new mxGeometry(.5*t-.4*r,.19*r,.8*r,.62*r),"part=1;shape=mxgraph.office.devices.printer;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMSearch":q=new mxCell("",new mxGeometry(.5*t-.4*r,.1*r,.8*r,.8*r),"part=1;shape=mxgraph.office.concepts.search;flipH=1;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMSettings":q=new mxCell("",new mxGeometry(.5*t-.35*r,.15*r,.7*r,.7*r),"part=1;shape=mxgraph.mscae.enterprise.settings;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
break;case "SMSitemap":q=new mxCell("",new mxGeometry(.5*t-.35*r,.2*r,.7*r,.6*r),"part=1;shape=mxgraph.office.sites.site_collection;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMSuccess":q=new mxCell("",new mxGeometry(.5*t-.3*r,.25*r,.6*r,.5*r),"part=1;shape=mxgraph.mscae.general.checkmark;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMVideo":q=new mxCell("",new mxGeometry(.5*t-.4*r,.2*r,.8*r,.6*r),"part=1;shape=mxgraph.office.concepts.video_play;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
-break;case "SMAudio":q=new mxCell("",new mxGeometry(.5*t-.3*r,.2*r,.6*r,.6*r),"part=1;shape=mxgraph.mscae.general.audio;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMCalendar":q=new mxCell("",new mxGeometry(.5*t-.4*r,.15*r,.8*r,.7*r),"part=1;shape=mxgraph.office.concepts.form;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMChart":var I=D(g,u),I=""==I?"#ffffff;":I.replace("fillColor=",""),q=new mxCell("",new mxGeometry(.5*t-.35*r,.15*r,.7*r,.7*r),"part=1;shape=mxgraph.ios7.icons.pie_chart;fillColor=#e6e6e6;fillOpacity=50;strokeWidth=4;strokeColor="+
+break;case "SMAudio":q=new mxCell("",new mxGeometry(.5*t-.3*r,.2*r,.6*r,.6*r),"part=1;shape=mxgraph.mscae.general.audio;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMCalendar":q=new mxCell("",new mxGeometry(.5*t-.4*r,.15*r,.8*r,.7*r),"part=1;shape=mxgraph.office.concepts.form;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMChart":var I=D(h,u),I=""==I?"#ffffff;":I.replace("fillColor=",""),q=new mxCell("",new mxGeometry(.5*t-.35*r,.15*r,.7*r,.7*r),"part=1;shape=mxgraph.ios7.icons.pie_chart;fillColor=#e6e6e6;fillOpacity=50;strokeWidth=4;strokeColor="+
I);break;case "SMCloud":q=new mxCell("",new mxGeometry(.5*t-.4*r,.27*r,.8*r,.46*r),"part=1;shape=mxgraph.networks.cloud;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMDocument":q=new mxCell("",new mxGeometry(.5*t-.25*r,.15*r,.5*r,.7*r),"part=1;shape=mxgraph.mscae.enterprise.document;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMForm":q=new mxCell("",new mxGeometry(.5*t-.4*r,.15*r,.8*r,.7*r),"part=1;shape=mxgraph.office.concepts.form;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
-break;case "SMGame":q=new mxCell("",new mxGeometry(.5*t-.4*r,.2*r,.8*r,.6*r),"part=1;shape=mxgraph.mscae.general.game_controller;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMUpload":q=new mxCell("",new mxGeometry(.5*t-.4*r,.2*r,.8*r,.6*r),"part=1;shape=mxgraph.mscae.enterprise.backup_online;fillColor=#e6e6e6;opacity=50;strokeColor=none;")}q.vertex=!0;v.insert(q);q.style+=k(g);q.value=c(g.Text);v.style+=f(v.style,g,u,v);break;case "UMLMultiplicityBlock":v.style+="strokeColor=none;fillColor=none;";
-q=new mxCell("",new mxGeometry(.1*t,0,.9*t,.9*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);w=new mxCell("",new mxGeometry(0,.1*r,.9*t,.9*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=k(g.Text);w.style+=f(w.style,g,u,w);w.value=c(g.Text);break;case "UMLConstraintBlock":var gb=new mxCell("",new mxGeometry(0,0,.25*r,r),"shape=curlyBracket;rounded=1;");gb.vertex=!0;v.insert(gb);var hb=new mxCell("",new mxGeometry(t-.25*r,0,.25*r,r),"shape=curlyBracket;rounded=1;flipH=1;");hb.vertex=
-!0;v.insert(hb);la=new mxCell("",new mxGeometry(.25*r,0,t-.5*r,r),"strokeColor=none;fillColor=none;");la.vertex=!0;la.value=c(g);v.insert(la);v.style="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);gb.style+=B(g,u,gb);hb.style+=B(g,u,hb);la.style+=a(g,la);gb.style+=f(gb.style,g,u,gb);hb.style+=f(hb.style,g,u,hb);la.style+=f(la.style,g,u,la);break;case "UMLTextBlock":v.style+="strokeColor=none;"+k(g.Text);v.style+=f(v.style,g,u,v);v.value=c(g.Text);break;case "BPMNActivity":switch(g.bpmnActivityType){case 1:v.style+=
-k(g.Text);v.value=c(g.Text);break;case 2:v.style+="shape=ext;double=1;"+k(g.Text);v.value=c(g.Text);break;case 3:v.style+="shape=ext;dashed=1;dashPattern=2 1;"+k(g.Text);v.value=c(g.Text);break;case 4:v.style+="shape=ext;strokeWidth=2;"+k(g.Text),v.value=c(g.Text)}if(0!=g.bpmnTaskType){switch(g.bpmnTaskType){case 1:q=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");q.geometry.offset=new mxPoint(4,7);break;case 2:q=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");q.geometry.offset=
+break;case "SMGame":q=new mxCell("",new mxGeometry(.5*t-.4*r,.2*r,.8*r,.6*r),"part=1;shape=mxgraph.mscae.general.game_controller;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMUpload":q=new mxCell("",new mxGeometry(.5*t-.4*r,.2*r,.8*r,.6*r),"part=1;shape=mxgraph.mscae.enterprise.backup_online;fillColor=#e6e6e6;opacity=50;strokeColor=none;")}q.vertex=!0;v.insert(q);q.style+=k(h);q.value=c(h.Text);v.style+=f(v.style,h,u,v);break;case "UMLMultiplicityBlock":v.style+="strokeColor=none;fillColor=none;";
+q=new mxCell("",new mxGeometry(.1*t,0,.9*t,.9*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);w=new mxCell("",new mxGeometry(0,.1*r,.9*t,.9*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=k(h.Text);w.style+=f(w.style,h,u,w);w.value=c(h.Text);break;case "UMLConstraintBlock":var gb=new mxCell("",new mxGeometry(0,0,.25*r,r),"shape=curlyBracket;rounded=1;");gb.vertex=!0;v.insert(gb);var hb=new mxCell("",new mxGeometry(t-.25*r,0,.25*r,r),"shape=curlyBracket;rounded=1;flipH=1;");hb.vertex=
+!0;v.insert(hb);la=new mxCell("",new mxGeometry(.25*r,0,t-.5*r,r),"strokeColor=none;fillColor=none;");la.vertex=!0;la.value=c(h);v.insert(la);v.style="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);gb.style+=C(h,u,gb);hb.style+=C(h,u,hb);la.style+=a(h,la);gb.style+=f(gb.style,h,u,gb);hb.style+=f(hb.style,h,u,hb);la.style+=f(la.style,h,u,la);break;case "UMLTextBlock":v.style+="strokeColor=none;"+k(h.Text);v.style+=f(v.style,h,u,v);v.value=c(h.Text);break;case "BPMNActivity":switch(h.bpmnActivityType){case 1:v.style+=
+k(h.Text);v.value=c(h.Text);break;case 2:v.style+="shape=ext;double=1;"+k(h.Text);v.value=c(h.Text);break;case 3:v.style+="shape=ext;dashed=1;dashPattern=2 1;"+k(h.Text);v.value=c(h.Text);break;case 4:v.style+="shape=ext;strokeWidth=2;"+k(h.Text),v.value=c(h.Text)}if(0!=h.bpmnTaskType){switch(h.bpmnTaskType){case 1:q=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");q.geometry.offset=new mxPoint(4,7);break;case 2:q=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");q.geometry.offset=
new mxPoint(4,7);break;case 3:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.user_task;");q.geometry.offset=new mxPoint(4,5);break;case 4:q=new mxCell("",new mxGeometry(0,0,15,10),"shape=mxgraph.bpmn.manual_task;");q.geometry.offset=new mxPoint(4,7);break;case 5:q=new mxCell("",new mxGeometry(0,0,18,13),"shape=mxgraph.bpmn.business_rule_task;");q.geometry.offset=new mxPoint(4,7);break;case 6:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.service_task;");q.geometry.offset=
-new mxPoint(4,5);break;case 7:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.script_task;"),q.geometry.offset=new mxPoint(4,5)}if(1==g.bpmnTaskType){var Pb=D(g,u),I=A(g,u),I=I.replace("strokeColor","fillColor"),Pb=Pb.replace("fillColor","strokeColor");""==I&&(I="fillColor=#000000;");""==Pb&&(Pb="strokeColor=#ffffff;");q.style+=Pb+I+"part=1;"}else q.style+=D(g,u)+A(g,u)+"part=1;";q.geometry.relative=!0;q.vertex=!0;v.insert(q)}var Qb=0;0!=g.bpmnActivityMarker1&&Qb++;0!=g.bpmnActivityMarker2&&
-Qb++;var Aa=0;1==Qb?Aa=-7.5:2==Qb&&(Aa=-19);if(0!=g.bpmnActivityMarker1){switch(g.bpmnActivityMarker1){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(g,u)+A(g,u);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(g,u)+A(g,u);break;case 3:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(Aa,
--20);q.style+=D(g,u)+A(g,u);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(g,u)+A(g,u);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Aa,-17);I=A(g,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");q.style+=I;break;case 6:q=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),
-q.geometry.offset=new mxPoint(Aa,-18),q.style+=D(g,u)+A(g,u)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}2==Qb&&(Aa=5);if(0!=g.bpmnActivityMarker2){switch(g.bpmnActivityMarker2){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(g,u)+A(g,u);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(g,u)+A(g,u);break;case 3:q=new mxCell("",new mxGeometry(.5,
-1,15,15),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(g,u)+A(g,u);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(g,u)+A(g,u);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Aa,-17);I=A(g,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");
-q.style+=I;break;case 6:q=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),q.geometry.offset=new mxPoint(Aa,-18),q.style+=D(g,u)+A(g,u)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}v.style+=f(v.style,g,u,v);break;case "BPMNEvent":v.style+="shape=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;";v.value=c(g.Text);if(1==g.bpmnDashed)switch(g.bpmnEventGroup){case 0:v.style+="outline=eventNonint;";break;case 1:v.style+="outline=boundNonint;";break;
-case 2:v.style+="outline=end;"}else switch(g.bpmnEventGroup){case 0:v.style+="outline=standard;";break;case 1:v.style+="outline=throwing;";break;case 2:v.style+="outline=end;"}switch(g.bpmnEventType){case 1:v.style+="symbol=message;";break;case 2:v.style+="symbol=timer;";break;case 3:v.style+="symbol=escalation;";break;case 4:v.style+="symbol=conditional;";break;case 5:v.style+="symbol=link;";break;case 6:v.style+="symbol=error;";break;case 7:v.style+="symbol=cancel;";break;case 8:v.style+="symbol=compensation;";
-break;case 9:v.style+="symbol=signal;";break;case 10:v.style+="symbol=multiple;";break;case 11:v.style+="symbol=parallelMultiple;";break;case 12:v.style+="symbol=terminate;"}v.style+=f(v.style,g,u,v);break;case "BPMNConversation":v.style+="shape=hexagon;perimeter=hexagonPerimeter2;";v.value=c(g.Text);v.style=0==g.bpmnConversationType?v.style+Y(g):v.style+"strokeWidth=2;";g.bpmnIsSubConversation&&(q=new mxCell("",new mxGeometry(.5,1,12,12),"shape=plus;part=1;"),q.geometry.offset=new mxPoint(-6,-17),
-q.style+=D(g,u)+A(g,u),q.geometry.relative=!0,q.vertex=!0,v.insert(q));v.style+=f(v.style,g,u,v);break;case "BPMNGateway":v.style+="shape=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;";switch(g.bpmnGatewayType){case 0:v.style+="outline=none;symbol=general;";break;case 1:v.style+="outline=none;symbol=exclusiveGw;";break;case 2:v.style+="outline=catching;symbol=multiple;";break;case 3:v.style+="outline=none;symbol=parallelGw;";break;case 4:v.style+="outline=end;symbol=general;";
-break;case 5:v.style+="outline=standard;symbol=multiple;";break;case 6:v.style+="outline=none;symbol=complexGw;";break;case 7:v.style+="outline=standard;symbol=parallelMultiple;"}v.style+=f(v.style,g,u,v);break;case "BPMNData":v.style+="shape=note;size=14;";switch(g.bpmnDataType){case 1:q=new mxCell("",new mxGeometry(.5,1,12,10),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(-6,-15);q.style+=D(g,u)+A(g,u);q.geometry.relative=!0;q.vertex=!0;v.insert(q);break;case 2:q=new mxCell("",new mxGeometry(0,
-0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;");q.geometry.offset=new mxPoint(3,3);q.style+=D(g,u)+A(g,u);q.geometry.relative=!0;q.vertex=!0;v.insert(q);v.style+="verticalLabelPosition=bottom;verticalAlign=top;";Q=new mxCell("",new mxGeometry(0,0,t,20),"strokeColor=none;fillColor=none;");Q.geometry.offset=new mxPoint(0,14);Q.geometry.relative=!0;Q.vertex=!0;v.insert(Q);Q.value=c(g.Text);Q.style+=k(g);break;case 3:q=new mxCell("",new mxGeometry(0,0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;"),
-q.geometry.offset=new mxPoint(3,3),q.style+=A(g,u),q.geometry.relative=!0,q.vertex=!0,v.insert(q),I=A(g,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),q.style+=I,Q=new mxCell("",new mxGeometry(0,0,t,20),"strokeColor=none;fillColor=none;"),Q.geometry.offset=new mxPoint(0,14),Q.geometry.relative=!0,Q.vertex=!0,v.insert(Q),Q.value=c(g.Text),Q.style+=k(g)}v.style+=f(v.style,g,u,v);break;case "BPMNBlackPool":v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(0,
-0,t,r),"fillColor=#000000;strokeColor=none;opacity=30;");q.vertex=!0;v.insert(q);break;case "DFDExternalEntityBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);q=new mxCell("",new mxGeometry(0,0,.95*t,.95*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);w=new mxCell("",new mxGeometry(.05*t,.05*r,.95*t,.95*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=k(g.Text);w.style+=f(w.style,g,u,w);w.value=c(g.Text);break;case "GSDFDDataStoreBlock":v.style+="shape=partialRectangle;right=0;"+
-k(g.Text);v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(0,0,.2*t,r),"part=1;");q.vertex=!0;v.insert(q);q.style+=k(g.Number);q.style+=f(q.style,g,u,q);q.value=c(g.Number);break;case "VSMDedicatedProcessBlock":case "VSMProductionControlBlock":v.style+="shape=mxgraph.lean_mapping.manufacturing_process;spacingTop=15;";"VSMDedicatedProcessBlock"==e.Class?v.value=c(g.Text):"VSMProductionControlBlock"==e.Class&&(v.value=c(g.Resources));v.style+=f(v.style,g,u,v);"VSMDedicatedProcessBlock"==
-e.Class&&(q=new mxCell("",new mxGeometry(0,1,11,9),"part=1;shape=mxgraph.lean_mapping.operator;"),q.geometry.relative=!0,q.geometry.offset=new mxPoint(4,-13),q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q));Q=new mxCell("",new mxGeometry(0,0,t,15),"strokeColor=none;fillColor=none;part=1;");Q.vertex=!0;v.insert(Q);Q.value=c(g.Title);Q.style+=k(g.Title);break;case "VSMSharedProcessBlock":v.style+="shape=mxgraph.lean_mapping.manufacturing_process_shared;spacingTop=-5;verticalAlign=top;";v.value=c(g.Text);
-v.style+=f(v.style,g,u,v);Q=new mxCell("",new mxGeometry(.1*t,.3*r,.8*t,.6*r),"part=1;");Q.vertex=!0;v.insert(Q);Q.value=c(g.Resource);Q.style+=k(g.Resource);Q.style+=f(Q.style,g,u,Q);break;case "VSMWorkcellBlock":v.style+="shape=mxgraph.lean_mapping.work_cell;verticalAlign=top;spacingTop=-2;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);break;case "VSMSafetyBufferStockBlock":case "VSMDatacellBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);var xa=r,Oa=parseInt(g.Cells),
-N=f("part=1;",g,u,v);0<Oa&&(xa/=Oa);H=[];na=[];for(l=1;l<=Oa;l++)H[l]=new mxCell("",new mxGeometry(0,(l-1)*xa,t,xa),N),H[l].vertex=!0,v.insert(H[l]),H[l].value=c(g["cell_"+l]),H[l].style+=k(g["cell_"+l]);break;case "VSMInventoryBlock":v.style+="shape=mxgraph.lean_mapping.inventory_box;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);break;case "VSMSupermarketBlock":v.style+="strokeColor=none;";v.style+=f(v.style,g,u,v);xa=r;Oa=parseInt(g.Cells);N=f("part=1;fillColor=none;",
-g,u,v);0<Oa&&(xa/=Oa);H=[];Ja=[];for(l=1;l<=Oa;l++)H[l]=new mxCell("",new mxGeometry(.5*t,(l-1)*xa,.5*t,xa),"shape=partialRectangle;left=0;"+N),H[l].vertex=!0,v.insert(H[l]),Ja[l]=new mxCell("",new mxGeometry(0,(l-1)*xa,t,xa),"strokeColor=none;fillColor=none;part=1;"),Ja[l].vertex=!0,v.insert(Ja[l]),Ja[l].value=c(g["cell_"+l]),Ja[l].style+=k(g["cell_"+l]);break;case "VSMFIFOLaneBlock":v.style+="shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=18";v.style+=f(v.style,g,u,v);v.value=
-"FIFO";break;case "VSMGoSeeProductionBlock":v.style+="shape=ellipse;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(.17*t,.2*r,13,6),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);break;case "VSMProductionKanbanBatchBlock":v.style+="strokeColor=none;fillColor=none;";N="shape=card;size=18;flipH=1;part=1;";q=new mxCell("",new mxGeometry(.1*t,0,.9*t,.8*r),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+
-N);q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);w=new mxCell("",new mxGeometry(.05*t,.1*r,.9*t,.8*r),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+N);w.vertex=!0;v.insert(w);w.style+=f(w.style,g,u,w);var E=new mxCell("",new mxGeometry(0,.2*r,.9*t,.8*r),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;spacing=2;"+N);E.vertex=!0;v.insert(E);E.style+=f(E.style,g,u,E);E.value=c(g.Text);break;case "AWSRoundedRectangleContainerBlock2":v.style+=
-"strokeColor=none;fillColor=none;";g.Spotfleet?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q),q.value=c(g.Title),w=new mxCell("",new mxGeometry(0,0,35,40),"strokeColor=none;shape=mxgraph.aws3.spot_instance;fillColor=#f58536;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,
-0),w.vertex=!0,v.insert(w)):g.Beanstalk?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q),q.value=c(g.Title),w=new mxCell("",new mxGeometry(0,0,30,40),"strokeColor=none;shape=mxgraph.aws3.elastic_beanstalk;fillColor=#759C3E;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),
-w.vertex=!0,v.insert(w)):g.EC2?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q),q.value=c(g.Title),w=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.ec2;fillColor=#F58534;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):
-g.Subnet?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q),q.value=c(g.Title),w=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.permissions;fillColor=#146EB4;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):g.VPC?(q=new mxCell("",
-new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q),q.value=c(g.Title),w=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.virtual_private_cloud;fillColor=#146EB4;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):g.AWS?(q=new mxCell("",new mxGeometry(0,
-0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q),q.value=c(g.Title),w=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.cloud;fillColor=#F58534;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):g.Corporate?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),
-q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,g,u,q),q.value=c(g.Title),w=new mxCell("",new mxGeometry(0,0,25,40),"strokeColor=none;shape=mxgraph.aws3.corporate_data_center;fillColor=#7D7C7C;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):(v.style="resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;",v.style+=f(v.style,g,u,v),v.value=c(g.Title));
-break;case "AWSElasticComputeCloudBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.ec2;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Title);break;case "AWSRoute53Block2":v.style+="strokeColor=none;shape=mxgraph.aws3.route_53;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Title);break;case "AWSRDBSBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.rds;verticalLabelPosition=bottom;align=center;verticalAlign=top;";
-v.style+=f(v.style,g,u,v);v.value=c(g.Title);break;case "NET_RingNetwork":v.style+="strokeColor=none;fillColor=none;";var W=new mxCell("",new mxGeometry(.25*t,.25*r,.5*t,.5*r),"html=1;shape=ellipse;perimeter=ellipsePerimeter;strokeColor=#29AAE1;strokeWidth=2;");W.vertex=!0;v.insert(W);var ca=[W];W.style+=D(g,u);var R=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=none;dashed=0;html=1;strokeColor=#29AAE1;strokeWidth=2;");R.geometry.relative=!0;R.edge=!0;Da(.5*t,0,R,m,L,ca,
+new mxPoint(4,5);break;case 7:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.script_task;"),q.geometry.offset=new mxPoint(4,5)}if(1==h.bpmnTaskType){var Pb=D(h,u),I=B(h,u),I=I.replace("strokeColor","fillColor"),Pb=Pb.replace("fillColor","strokeColor");""==I&&(I="fillColor=#000000;");""==Pb&&(Pb="strokeColor=#ffffff;");q.style+=Pb+I+"part=1;"}else q.style+=D(h,u)+B(h,u)+"part=1;";q.geometry.relative=!0;q.vertex=!0;v.insert(q)}var Qb=0;0!=h.bpmnActivityMarker1&&Qb++;0!=h.bpmnActivityMarker2&&
+Qb++;var Aa=0;1==Qb?Aa=-7.5:2==Qb&&(Aa=-19);if(0!=h.bpmnActivityMarker1){switch(h.bpmnActivityMarker1){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(h,u)+B(h,u);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(h,u)+B(h,u);break;case 3:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(Aa,
+-20);q.style+=D(h,u)+B(h,u);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(h,u)+B(h,u);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Aa,-17);I=B(h,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");q.style+=I;break;case 6:q=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),
+q.geometry.offset=new mxPoint(Aa,-18),q.style+=D(h,u)+B(h,u)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}2==Qb&&(Aa=5);if(0!=h.bpmnActivityMarker2){switch(h.bpmnActivityMarker2){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(h,u)+B(h,u);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(h,u)+B(h,u);break;case 3:q=new mxCell("",new mxGeometry(.5,
+1,15,15),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(h,u)+B(h,u);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Aa,-20);q.style+=D(h,u)+B(h,u);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Aa,-17);I=B(h,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");
+q.style+=I;break;case 6:q=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),q.geometry.offset=new mxPoint(Aa,-18),q.style+=D(h,u)+B(h,u)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}v.style+=f(v.style,h,u,v);break;case "BPMNEvent":v.style+="shape=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;";v.value=c(h.Text);if(1==h.bpmnDashed)switch(h.bpmnEventGroup){case 0:v.style+="outline=eventNonint;";break;case 1:v.style+="outline=boundNonint;";break;
+case 2:v.style+="outline=end;"}else switch(h.bpmnEventGroup){case 0:v.style+="outline=standard;";break;case 1:v.style+="outline=throwing;";break;case 2:v.style+="outline=end;"}switch(h.bpmnEventType){case 1:v.style+="symbol=message;";break;case 2:v.style+="symbol=timer;";break;case 3:v.style+="symbol=escalation;";break;case 4:v.style+="symbol=conditional;";break;case 5:v.style+="symbol=link;";break;case 6:v.style+="symbol=error;";break;case 7:v.style+="symbol=cancel;";break;case 8:v.style+="symbol=compensation;";
+break;case 9:v.style+="symbol=signal;";break;case 10:v.style+="symbol=multiple;";break;case 11:v.style+="symbol=parallelMultiple;";break;case 12:v.style+="symbol=terminate;"}v.style+=f(v.style,h,u,v);break;case "BPMNConversation":v.style+="shape=hexagon;perimeter=hexagonPerimeter2;";v.value=c(h.Text);v.style=0==h.bpmnConversationType?v.style+Y(h):v.style+"strokeWidth=2;";h.bpmnIsSubConversation&&(q=new mxCell("",new mxGeometry(.5,1,12,12),"shape=plus;part=1;"),q.geometry.offset=new mxPoint(-6,-17),
+q.style+=D(h,u)+B(h,u),q.geometry.relative=!0,q.vertex=!0,v.insert(q));v.style+=f(v.style,h,u,v);break;case "BPMNGateway":v.style+="shape=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;";switch(h.bpmnGatewayType){case 0:v.style+="outline=none;symbol=general;";break;case 1:v.style+="outline=none;symbol=exclusiveGw;";break;case 2:v.style+="outline=catching;symbol=multiple;";break;case 3:v.style+="outline=none;symbol=parallelGw;";break;case 4:v.style+="outline=end;symbol=general;";
+break;case 5:v.style+="outline=standard;symbol=multiple;";break;case 6:v.style+="outline=none;symbol=complexGw;";break;case 7:v.style+="outline=standard;symbol=parallelMultiple;"}v.style+=f(v.style,h,u,v);break;case "BPMNData":v.style+="shape=note;size=14;";switch(h.bpmnDataType){case 1:q=new mxCell("",new mxGeometry(.5,1,12,10),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(-6,-15);q.style+=D(h,u)+B(h,u);q.geometry.relative=!0;q.vertex=!0;v.insert(q);break;case 2:q=new mxCell("",new mxGeometry(0,
+0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;");q.geometry.offset=new mxPoint(3,3);q.style+=D(h,u)+B(h,u);q.geometry.relative=!0;q.vertex=!0;v.insert(q);v.style+="verticalLabelPosition=bottom;verticalAlign=top;";Q=new mxCell("",new mxGeometry(0,0,t,20),"strokeColor=none;fillColor=none;");Q.geometry.offset=new mxPoint(0,14);Q.geometry.relative=!0;Q.vertex=!0;v.insert(Q);Q.value=c(h.Text);Q.style+=k(h);break;case 3:q=new mxCell("",new mxGeometry(0,0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;"),
+q.geometry.offset=new mxPoint(3,3),q.style+=B(h,u),q.geometry.relative=!0,q.vertex=!0,v.insert(q),I=B(h,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),q.style+=I,Q=new mxCell("",new mxGeometry(0,0,t,20),"strokeColor=none;fillColor=none;"),Q.geometry.offset=new mxPoint(0,14),Q.geometry.relative=!0,Q.vertex=!0,v.insert(Q),Q.value=c(h.Text),Q.style+=k(h)}v.style+=f(v.style,h,u,v);break;case "BPMNBlackPool":v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(0,
+0,t,r),"fillColor=#000000;strokeColor=none;opacity=30;");q.vertex=!0;v.insert(q);break;case "DFDExternalEntityBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);q=new mxCell("",new mxGeometry(0,0,.95*t,.95*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);w=new mxCell("",new mxGeometry(.05*t,.05*r,.95*t,.95*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=k(h.Text);w.style+=f(w.style,h,u,w);w.value=c(h.Text);break;case "GSDFDDataStoreBlock":v.style+="shape=partialRectangle;right=0;"+
+k(h.Text);v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(0,0,.2*t,r),"part=1;");q.vertex=!0;v.insert(q);q.style+=k(h.Number);q.style+=f(q.style,h,u,q);q.value=c(h.Number);break;case "VSMDedicatedProcessBlock":case "VSMProductionControlBlock":v.style+="shape=mxgraph.lean_mapping.manufacturing_process;spacingTop=15;";"VSMDedicatedProcessBlock"==e.Class?v.value=c(h.Text):"VSMProductionControlBlock"==e.Class&&(v.value=c(h.Resources));v.style+=f(v.style,h,u,v);"VSMDedicatedProcessBlock"==
+e.Class&&(q=new mxCell("",new mxGeometry(0,1,11,9),"part=1;shape=mxgraph.lean_mapping.operator;"),q.geometry.relative=!0,q.geometry.offset=new mxPoint(4,-13),q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q));Q=new mxCell("",new mxGeometry(0,0,t,15),"strokeColor=none;fillColor=none;part=1;");Q.vertex=!0;v.insert(Q);Q.value=c(h.Title);Q.style+=k(h.Title);break;case "VSMSharedProcessBlock":v.style+="shape=mxgraph.lean_mapping.manufacturing_process_shared;spacingTop=-5;verticalAlign=top;";v.value=c(h.Text);
+v.style+=f(v.style,h,u,v);Q=new mxCell("",new mxGeometry(.1*t,.3*r,.8*t,.6*r),"part=1;");Q.vertex=!0;v.insert(Q);Q.value=c(h.Resource);Q.style+=k(h.Resource);Q.style+=f(Q.style,h,u,Q);break;case "VSMWorkcellBlock":v.style+="shape=mxgraph.lean_mapping.work_cell;verticalAlign=top;spacingTop=-2;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);break;case "VSMSafetyBufferStockBlock":case "VSMDatacellBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);var xa=r,Oa=parseInt(h.Cells),
+N=f("part=1;",h,u,v);0<Oa&&(xa/=Oa);H=[];na=[];for(l=1;l<=Oa;l++)H[l]=new mxCell("",new mxGeometry(0,(l-1)*xa,t,xa),N),H[l].vertex=!0,v.insert(H[l]),H[l].value=c(h["cell_"+l]),H[l].style+=k(h["cell_"+l]);break;case "VSMInventoryBlock":v.style+="shape=mxgraph.lean_mapping.inventory_box;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);break;case "VSMSupermarketBlock":v.style+="strokeColor=none;";v.style+=f(v.style,h,u,v);xa=r;Oa=parseInt(h.Cells);N=f("part=1;fillColor=none;",
+h,u,v);0<Oa&&(xa/=Oa);H=[];Ja=[];for(l=1;l<=Oa;l++)H[l]=new mxCell("",new mxGeometry(.5*t,(l-1)*xa,.5*t,xa),"shape=partialRectangle;left=0;"+N),H[l].vertex=!0,v.insert(H[l]),Ja[l]=new mxCell("",new mxGeometry(0,(l-1)*xa,t,xa),"strokeColor=none;fillColor=none;part=1;"),Ja[l].vertex=!0,v.insert(Ja[l]),Ja[l].value=c(h["cell_"+l]),Ja[l].style+=k(h["cell_"+l]);break;case "VSMFIFOLaneBlock":v.style+="shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=18";v.style+=f(v.style,h,u,v);v.value=
+"FIFO";break;case "VSMGoSeeProductionBlock":v.style+="shape=ellipse;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(.17*t,.2*r,13,6),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);break;case "VSMProductionKanbanBatchBlock":v.style+="strokeColor=none;fillColor=none;";N="shape=card;size=18;flipH=1;part=1;";q=new mxCell("",new mxGeometry(.1*t,0,.9*t,.8*r),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+
+N);q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);w=new mxCell("",new mxGeometry(.05*t,.1*r,.9*t,.8*r),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+N);w.vertex=!0;v.insert(w);w.style+=f(w.style,h,u,w);var E=new mxCell("",new mxGeometry(0,.2*r,.9*t,.8*r),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;spacing=2;"+N);E.vertex=!0;v.insert(E);E.style+=f(E.style,h,u,E);E.value=c(h.Text);break;case "AWSRoundedRectangleContainerBlock2":v.style+=
+"strokeColor=none;fillColor=none;";h.Spotfleet?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q),q.value=c(h.Title),w=new mxCell("",new mxGeometry(0,0,35,40),"strokeColor=none;shape=mxgraph.aws3.spot_instance;fillColor=#f58536;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,
+0),w.vertex=!0,v.insert(w)):h.Beanstalk?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q),q.value=c(h.Title),w=new mxCell("",new mxGeometry(0,0,30,40),"strokeColor=none;shape=mxgraph.aws3.elastic_beanstalk;fillColor=#759C3E;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),
+w.vertex=!0,v.insert(w)):h.EC2?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q),q.value=c(h.Title),w=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.ec2;fillColor=#F58534;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):
+h.Subnet?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q),q.value=c(h.Title),w=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.permissions;fillColor=#146EB4;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):h.VPC?(q=new mxCell("",
+new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q),q.value=c(h.Title),w=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.virtual_private_cloud;fillColor=#146EB4;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):h.AWS?(q=new mxCell("",new mxGeometry(0,
+0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q),q.value=c(h.Title),w=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.cloud;fillColor=#F58534;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):h.Corporate?(q=new mxCell("",new mxGeometry(0,0,t,r-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),
+q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.style+=f(q.style,h,u,q),q.value=c(h.Title),w=new mxCell("",new mxGeometry(0,0,25,40),"strokeColor=none;shape=mxgraph.aws3.corporate_data_center;fillColor=#7D7C7C;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(30,0),w.vertex=!0,v.insert(w)):(v.style="resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;",v.style+=f(v.style,h,u,v),v.value=c(h.Title));
+break;case "AWSElasticComputeCloudBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.ec2;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Title);break;case "AWSRoute53Block2":v.style+="strokeColor=none;shape=mxgraph.aws3.route_53;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Title);break;case "AWSRDBSBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.rds;verticalLabelPosition=bottom;align=center;verticalAlign=top;";
+v.style+=f(v.style,h,u,v);v.value=c(h.Title);break;case "NET_RingNetwork":v.style+="strokeColor=none;fillColor=none;";var W=new mxCell("",new mxGeometry(.25*t,.25*r,.5*t,.5*r),"html=1;shape=ellipse;perimeter=ellipsePerimeter;strokeColor=#29AAE1;strokeWidth=2;");W.vertex=!0;v.insert(W);var ca=[W];W.style+=D(h,u);var R=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=none;dashed=0;html=1;strokeColor=#29AAE1;strokeWidth=2;");R.geometry.relative=!0;R.edge=!0;Da(.5*t,0,R,m,L,ca,
v,W);Da(.855*t,.145*r,R,m,L,ca,v,W);Da(t,.5*r,R,m,L,ca,v,W);Da(.855*t,.855*r,R,m,L,ca,v,W);Da(.5*t,r,R,m,L,ca,v,W);Da(.145*t,.855*r,R,m,L,ca,v,W);Da(0,.5*r,R,m,L,ca,v,W);Da(.145*t,.145*r,R,m,L,ca,v,W);break;case "NET_Ethernet":v.style+="strokeColor=none;fillColor=none;";W=new mxCell("",new mxGeometry(0,.5*r-10,t,20),"shape=mxgraph.networks.bus;gradientColor=none;gradientDirection=north;fontColor=#ffffff;perimeter=backbonePerimeter;backboneSize=20;fillColor=#29AAE1;strokeColor=#29AAE1;");W.vertex=
-!0;v.insert(W);ca=[W];R=new mxCell("",new mxGeometry(0,0,0,0),"strokeColor=#29AAE1;edgeStyle=none;rounded=0;endArrow=none;html=1;strokeWidth=2;");R.geometry.relative=!0;R.edge=!0;for(var ca=[W],Rb=t/g.NumTopNodes,l=0;l<g.NumTopNodes;l++)Da(.5*Rb+l*Rb,0,R,m,L,ca,v,W);Rb=t/g.NumBottomNodes;for(l=0;l<g.NumBottomNodes;l++)Da(.5*Rb+l*Rb,r,R,m,L,ca,v,W);break;case "EE_OpAmp":v.style+="shape=mxgraph.electrical.abstract.operational_amp_1;";v.style+=f(v.style,g,u,v);v.value=c(g.Title);g.ToggleCharge&&(v.style+=
-"flipV=1;");break;case "EIMessageChannelBlock":case "EIDatatypeChannelBlock":case "EIInvalidMessageChannelBlock":case "EIDeadLetterChannelBlock":case "EIGuaranteedDeliveryBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);"EIMessageChannelBlock"==e.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*t,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-t,0)):"EIDatatypeChannelBlock"==e.Class?(q=
+!0;v.insert(W);ca=[W];R=new mxCell("",new mxGeometry(0,0,0,0),"strokeColor=#29AAE1;edgeStyle=none;rounded=0;endArrow=none;html=1;strokeWidth=2;");R.geometry.relative=!0;R.edge=!0;for(var ca=[W],Rb=t/h.NumTopNodes,l=0;l<h.NumTopNodes;l++)Da(.5*Rb+l*Rb,0,R,m,L,ca,v,W);Rb=t/h.NumBottomNodes;for(l=0;l<h.NumBottomNodes;l++)Da(.5*Rb+l*Rb,r,R,m,L,ca,v,W);break;case "EE_OpAmp":v.style+="shape=mxgraph.electrical.abstract.operational_amp_1;";v.style+=f(v.style,h,u,v);v.value=c(h.Title);h.ToggleCharge&&(v.style+=
+"flipV=1;");break;case "EIMessageChannelBlock":case "EIDatatypeChannelBlock":case "EIInvalidMessageChannelBlock":case "EIDeadLetterChannelBlock":case "EIGuaranteedDeliveryBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);"EIMessageChannelBlock"==e.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*t,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-t,0)):"EIDatatypeChannelBlock"==e.Class?(q=
new mxCell("",new mxGeometry(.5,.5,.9*t,20),"shape=mxgraph.eip.dataChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-t,0)):"EIInvalidMessageChannelBlock"==e.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*t,20),"shape=mxgraph.eip.invalidMessageChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-t,0)):"EIDeadLetterChannelBlock"==e.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*t,20),"shape=mxgraph.eip.deadLetterChannel;fillColor=#818181;part=1;"),q.geometry.offset=
-new mxPoint(.45*-t,0)):"EIGuaranteedDeliveryBlock"==e.Class&&(q=new mxCell("",new mxGeometry(.5,.5,20,27),"shape=cylinder;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(-10,-7));q.geometry.relative=!0;q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);R=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");R.geometry.relative=!0;R.edge=!0;ga(.15*t,.25*r,.85*t,.25*r,R,m,L,ca,v,W);break;case "EIChannelAdapterBlock":v.style+=
-"verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(0,.07*r,.21*t,.86*r),"fillColor=#FFFF33;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);w=new mxCell("",new mxGeometry(.26*t,.09*r,.2*t,.82*r),"shape=mxgraph.eip.channel_adapter;fillColor=#4CA3D9;part=1;");w.vertex=!0;v.insert(w);w.style+=f(w.style,g,u,w);E=new mxCell("",new mxGeometry(1,.5,.35*t,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;");
-E.geometry.relative=!0;E.geometry.offset=new mxPoint(.4*-t,-10);E.vertex=!0;v.insert(E);E.style+=f(E.style,g,u,E);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=none;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=2;");K.geometry.relative=!0;K.edge=!0;q.insertEdge(K,!0);w.insertEdge(K,!1);K.style+=A(g,u);m.push(L.addCell(K,null,null,null,null));J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=block;startArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=2;startFill=1;startSize=2;");
-J.geometry.relative=!0;J.edge=!0;w.insertEdge(J,!0);E.insertEdge(J,!1);m.push(L.addCell(J,null,null,null,null));break;case "EIMessageBlock":case "EICommandMessageBlock":case "EIDocumentMessageBlock":case "EIEventMessageBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(0,0,17,17),"shape=ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);for(var Sb=
-g.Messages,dc=(r-17)/Sb,w=[],R=[],l=0;l<Sb;l++){var Tb=dc*(l+1)-3;w[l]=new mxCell("",new mxGeometry(t-20,Tb,20,20),"part=1;");w[l].vertex=!0;v.insert(w[l]);switch(e.Class){case "EIMessageBlock":w[l].value=c(g["message_"+(l+1)]);w.style+=k(g["message_"+(l+1)]);break;case "EICommandMessageBlock":w[l].value="C";w[l].style+="fontStyle=1;fontSize=11;";break;case "EIDocumentMessageBlock":w[l].value="D";w[l].style+="fontStyle=1;fontSize=11;";break;case "EIEventMessageBlock":w[l].value="E",w[l].style+="fontStyle=1;fontSize=11;"}w[l].style+=
-f(w[l].style,g,u,w[l]);R[l]=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");R[l].geometry.relative=!0;R[l].edge=!0;q.insertEdge(R[l],!1);w[l].insertEdge(R[l],!0);R[l].style+=f(R[l].style,g,u,R[l]);var jb=[];jb.push(new mxPoint(U+8.5,ba+Tb+10));R[l].geometry.points=jb;m.push(L.addCell(R[l],null,null,null,null))}break;case "EIMessageEndpointBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,
-g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(.45*t,.25*r,.3*t,.5*r),"part=1;fillColor=#ffffff");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);R=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");R.geometry.relative=!0;R.edge=!0;ga(0,.5*r,.4*t,.5*r,R,m,L,ca,v,W);break;case "EIPublishSubscribeChannelBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,
-u,v);v.value=c(g.Text);var K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");K.geometry.relative=!0;K.edge=!0;ga(.05*t,.5*r,.85*t,.5*r,K,m,L,ca,v,W);var J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");J.geometry.relative=!0;J.edge=!0;ga(.05*t,.5*r,.85*t,.15*r,J,m,L,ca,v,W);var P=new mxCell("",
-new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");P.geometry.relative=!0;P.edge=!0;ga(.05*t,.5*r,.85*t,.85*r,P,m,L,ca,v,W);break;case "EIMessageBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
-K.geometry.relative=!0;K.edge=!0;K.style+=A(g,u);ga(.05*t,.5*r,.95*t,.5*r,K,m,L,ca,v,W);J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");J.geometry.relative=!0;J.edge=!0;J.style+=A(g,u);ga(.3*t,.1*r,.3*t,.5*r,J,m,L,ca,v,W);P=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
-P.geometry.relative=!0;P.edge=!0;P.style+=A(g,u);ga(.7*t,.1*r,.7*t,.5*r,P,m,L,ca,v,W);var ja=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");ja.geometry.relative=!0;ja.edge=!0;ja.style+=A(g,u);ga(.5*t,.5*r,.5*t,.9*r,ja,m,L,ca,v,W);break;case "EIRequestReplyBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);
-q=new mxCell("",new mxGeometry(.2*t,.21*r,.16*t,.24*r),"part=1;fillColor=#ffffff;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");K.geometry.relative=!0;K.edge=!0;ga(.45*t,.33*r,.8*t,.33*r,K,m,L,ca,v,W);w=new mxCell("",new mxGeometry(.64*t,.55*r,.16*t,.24*r),"part=1;fillColor=#ffffff;");w.vertex=!0;v.insert(w);w.style+=f(w.style,g,u,w);J=new mxCell("",
-new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");J.geometry.relative=!0;J.edge=!0;ga(.55*t,.67*r,.2*t,.67*r,J,m,L,ca,v,W);break;case "EIReturnAddressBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(.1*t,.15*r,.8*t,.7*r),"part=1;shape=mxgraph.eip.retAddr;fillColor=#FFE040;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,
-u,q);break;case "EICorrelationIDBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(.04*t,.06*r,.18*t,.28*r),"shape=ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);w=new mxCell("",new mxGeometry(.2*t,.56*r,.2*t,.32*r),"part=1;");w.vertex=!0;v.insert(w);w.value="A";w.style+="fontStyle=1;fontSize=11;";q.style+=f(q.style,g,u,q);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");
-K.geometry.relative=!0;K.edge=!0;q.insertEdge(K,!1);w.insertEdge(K,!0);K.style+=f(K.style,g,u,K);jb=[];jb.push(new mxPoint(U+.13*t,ba+.72*r));K.geometry.points=jb;m.push(L.addCell(K,null,null,null,null));E=new mxCell("",new mxGeometry(.6*t,.06*r,.18*t,.28*r),"shape=ellipse;fillColor=#808080;part=1;");E.vertex=!0;v.insert(E);E.style+=A(g,u)+Y(g);E.style+=f(E.style,g,u,E);O=new mxCell("",new mxGeometry(.76*t,.56*r,.2*t,.32*r),"part=1;");O.vertex=!0;v.insert(O);O.style+=A(g,u)+B(g,u,O)+Y(g)+Z(g);O.value=
-"B";O.style+="fontStyle=1;fontSize=11;fillColor=#ffffff;";O.style+=f(O.style,g,u,O);J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");J.geometry.relative=!0;J.edge=!0;E.insertEdge(J,!1);O.insertEdge(J,!0);J.style+=f(J.style,g,u,J);var oc=[];oc.push(new mxPoint(U+.69*t,ba+.72*r));J.geometry.points=oc;m.push(L.addCell(J,null,null,null,null));P=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;endSize=6;part=1;");
-P.geometry.relative=!0;P.edge=!0;q.insertEdge(P,!1);E.insertEdge(P,!0);P.style+=f(P.style,g,u,P);m.push(L.addCell(P,null,null,null,null));break;case "EIMessageSequenceBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("1",new mxGeometry(.2*t,.4*r,.1*t,.19*r),"fontStyle=1;fillColor=#ffffff;fontSize=11;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);w=new mxCell("2",new mxGeometry(.45*t,.4*r,.1*t,.19*r),"fontStyle=1;fillColor=#ffffff;fontSize=11;part=1;");
-w.vertex=!0;v.insert(w);w.style+=f(w.style,g,u,w);E=new mxCell("3",new mxGeometry(.7*t,.4*r,.1*t,.19*r),"fontStyle=1;fillColor=#ffffff;fontSize=11;part=1;");E.vertex=!0;v.insert(E);E.style+=f(E.style,g,u,E);K=new mxCell("",new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");q.insertEdge(K,!1);w.insertEdge(K,!0);K.geometry.points=[new mxPoint(U+.375*t,ba+.15*r)];K.geometry.relative=!0;K.edge=!0;K.style+=f(K.style,g,u,K);m.push(L.addCell(K,null,null,null,null));J=new mxCell("",
-new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");w.insertEdge(J,!1);E.insertEdge(J,!0);J.geometry.points=[new mxPoint(U+.675*t,ba+.15*r)];J.geometry.relative=!0;J.edge=!0;J.style+=f(J.style,g,u,J);m.push(L.addCell(J,null,null,null,null));break;case "EIMessageExpirationBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(.3*t,.2*r,.4*t,.6*r),"shape=mxgraph.ios7.icons.clock;fillColor=#ffffff;flipH=1;part=1;");
-q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);break;case "EIMessageBrokerBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(.38*t,.42*r,.24*t,.16*r),"part=1;fillColor=#aefe7d;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);w=new mxCell("",new mxGeometry(.38*t,0,.24*t,.16*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=f(w.style,g,u,w);E=new mxCell("",new mxGeometry(.76*
+new mxPoint(.45*-t,0)):"EIGuaranteedDeliveryBlock"==e.Class&&(q=new mxCell("",new mxGeometry(.5,.5,20,27),"shape=cylinder;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(-10,-7));q.geometry.relative=!0;q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);R=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");R.geometry.relative=!0;R.edge=!0;ga(.15*t,.25*r,.85*t,.25*r,R,m,L,ca,v,W);break;case "EIChannelAdapterBlock":v.style+=
+"verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(0,.07*r,.21*t,.86*r),"fillColor=#FFFF33;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);w=new mxCell("",new mxGeometry(.26*t,.09*r,.2*t,.82*r),"shape=mxgraph.eip.channel_adapter;fillColor=#4CA3D9;part=1;");w.vertex=!0;v.insert(w);w.style+=f(w.style,h,u,w);E=new mxCell("",new mxGeometry(1,.5,.35*t,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;");
+E.geometry.relative=!0;E.geometry.offset=new mxPoint(.4*-t,-10);E.vertex=!0;v.insert(E);E.style+=f(E.style,h,u,E);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=none;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=2;");K.geometry.relative=!0;K.edge=!0;q.insertEdge(K,!0);w.insertEdge(K,!1);K.style+=B(h,u);m.push(L.addCell(K,null,null,null,null));J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=block;startArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=2;startFill=1;startSize=2;");
+J.geometry.relative=!0;J.edge=!0;w.insertEdge(J,!0);E.insertEdge(J,!1);m.push(L.addCell(J,null,null,null,null));break;case "EIMessageBlock":case "EICommandMessageBlock":case "EIDocumentMessageBlock":case "EIEventMessageBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(0,0,17,17),"shape=ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);for(var Sb=
+h.Messages,dc=(r-17)/Sb,w=[],R=[],l=0;l<Sb;l++){var Tb=dc*(l+1)-3;w[l]=new mxCell("",new mxGeometry(t-20,Tb,20,20),"part=1;");w[l].vertex=!0;v.insert(w[l]);switch(e.Class){case "EIMessageBlock":w[l].value=c(h["message_"+(l+1)]);w.style+=k(h["message_"+(l+1)]);break;case "EICommandMessageBlock":w[l].value="C";w[l].style+="fontStyle=1;fontSize=11;";break;case "EIDocumentMessageBlock":w[l].value="D";w[l].style+="fontStyle=1;fontSize=11;";break;case "EIEventMessageBlock":w[l].value="E",w[l].style+="fontStyle=1;fontSize=11;"}w[l].style+=
+f(w[l].style,h,u,w[l]);R[l]=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");R[l].geometry.relative=!0;R[l].edge=!0;q.insertEdge(R[l],!1);w[l].insertEdge(R[l],!0);R[l].style+=f(R[l].style,h,u,R[l]);var jb=[];jb.push(new mxPoint(U+8.5,ba+Tb+10));R[l].geometry.points=jb;m.push(L.addCell(R[l],null,null,null,null))}break;case "EIMessageEndpointBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,
+h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(.45*t,.25*r,.3*t,.5*r),"part=1;fillColor=#ffffff");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);R=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");R.geometry.relative=!0;R.edge=!0;ga(0,.5*r,.4*t,.5*r,R,m,L,ca,v,W);break;case "EIPublishSubscribeChannelBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,
+u,v);v.value=c(h.Text);var K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");K.geometry.relative=!0;K.edge=!0;ga(.05*t,.5*r,.85*t,.5*r,K,m,L,ca,v,W);var J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");J.geometry.relative=!0;J.edge=!0;ga(.05*t,.5*r,.85*t,.15*r,J,m,L,ca,v,W);var P=new mxCell("",
+new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");P.geometry.relative=!0;P.edge=!0;ga(.05*t,.5*r,.85*t,.85*r,P,m,L,ca,v,W);break;case "EIMessageBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
+K.geometry.relative=!0;K.edge=!0;K.style+=B(h,u);ga(.05*t,.5*r,.95*t,.5*r,K,m,L,ca,v,W);J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");J.geometry.relative=!0;J.edge=!0;J.style+=B(h,u);ga(.3*t,.1*r,.3*t,.5*r,J,m,L,ca,v,W);P=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
+P.geometry.relative=!0;P.edge=!0;P.style+=B(h,u);ga(.7*t,.1*r,.7*t,.5*r,P,m,L,ca,v,W);var ka=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");ka.geometry.relative=!0;ka.edge=!0;ka.style+=B(h,u);ga(.5*t,.5*r,.5*t,.9*r,ka,m,L,ca,v,W);break;case "EIRequestReplyBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);
+q=new mxCell("",new mxGeometry(.2*t,.21*r,.16*t,.24*r),"part=1;fillColor=#ffffff;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");K.geometry.relative=!0;K.edge=!0;ga(.45*t,.33*r,.8*t,.33*r,K,m,L,ca,v,W);w=new mxCell("",new mxGeometry(.64*t,.55*r,.16*t,.24*r),"part=1;fillColor=#ffffff;");w.vertex=!0;v.insert(w);w.style+=f(w.style,h,u,w);J=new mxCell("",
+new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");J.geometry.relative=!0;J.edge=!0;ga(.55*t,.67*r,.2*t,.67*r,J,m,L,ca,v,W);break;case "EIReturnAddressBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(.1*t,.15*r,.8*t,.7*r),"part=1;shape=mxgraph.eip.retAddr;fillColor=#FFE040;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,
+u,q);break;case "EICorrelationIDBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(.04*t,.06*r,.18*t,.28*r),"shape=ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);w=new mxCell("",new mxGeometry(.2*t,.56*r,.2*t,.32*r),"part=1;");w.vertex=!0;v.insert(w);w.value="A";w.style+="fontStyle=1;fontSize=11;";q.style+=f(q.style,h,u,q);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");
+K.geometry.relative=!0;K.edge=!0;q.insertEdge(K,!1);w.insertEdge(K,!0);K.style+=f(K.style,h,u,K);jb=[];jb.push(new mxPoint(U+.13*t,ba+.72*r));K.geometry.points=jb;m.push(L.addCell(K,null,null,null,null));E=new mxCell("",new mxGeometry(.6*t,.06*r,.18*t,.28*r),"shape=ellipse;fillColor=#808080;part=1;");E.vertex=!0;v.insert(E);E.style+=B(h,u)+Y(h);E.style+=f(E.style,h,u,E);O=new mxCell("",new mxGeometry(.76*t,.56*r,.2*t,.32*r),"part=1;");O.vertex=!0;v.insert(O);O.style+=B(h,u)+C(h,u,O)+Y(h)+Z(h);O.value=
+"B";O.style+="fontStyle=1;fontSize=11;fillColor=#ffffff;";O.style+=f(O.style,h,u,O);J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");J.geometry.relative=!0;J.edge=!0;E.insertEdge(J,!1);O.insertEdge(J,!0);J.style+=f(J.style,h,u,J);var oc=[];oc.push(new mxPoint(U+.69*t,ba+.72*r));J.geometry.points=oc;m.push(L.addCell(J,null,null,null,null));P=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;endSize=6;part=1;");
+P.geometry.relative=!0;P.edge=!0;q.insertEdge(P,!1);E.insertEdge(P,!0);P.style+=f(P.style,h,u,P);m.push(L.addCell(P,null,null,null,null));break;case "EIMessageSequenceBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("1",new mxGeometry(.2*t,.4*r,.1*t,.19*r),"fontStyle=1;fillColor=#ffffff;fontSize=11;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);w=new mxCell("2",new mxGeometry(.45*t,.4*r,.1*t,.19*r),"fontStyle=1;fillColor=#ffffff;fontSize=11;part=1;");
+w.vertex=!0;v.insert(w);w.style+=f(w.style,h,u,w);E=new mxCell("3",new mxGeometry(.7*t,.4*r,.1*t,.19*r),"fontStyle=1;fillColor=#ffffff;fontSize=11;part=1;");E.vertex=!0;v.insert(E);E.style+=f(E.style,h,u,E);K=new mxCell("",new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");q.insertEdge(K,!1);w.insertEdge(K,!0);K.geometry.points=[new mxPoint(U+.375*t,ba+.15*r)];K.geometry.relative=!0;K.edge=!0;K.style+=f(K.style,h,u,K);m.push(L.addCell(K,null,null,null,null));J=new mxCell("",
+new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");w.insertEdge(J,!1);E.insertEdge(J,!0);J.geometry.points=[new mxPoint(U+.675*t,ba+.15*r)];J.geometry.relative=!0;J.edge=!0;J.style+=f(J.style,h,u,J);m.push(L.addCell(J,null,null,null,null));break;case "EIMessageExpirationBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(.3*t,.2*r,.4*t,.6*r),"shape=mxgraph.ios7.icons.clock;fillColor=#ffffff;flipH=1;part=1;");
+q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);break;case "EIMessageBrokerBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(.38*t,.42*r,.24*t,.16*r),"part=1;fillColor=#aefe7d;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);w=new mxCell("",new mxGeometry(.38*t,0,.24*t,.16*r),"part=1;");w.vertex=!0;v.insert(w);w.style+=f(w.style,h,u,w);E=new mxCell("",new mxGeometry(.76*
t,.23*r,.24*t,.16*r),"");E.vertex=!0;v.insert(E);E.style=w.style;var O=new mxCell("",new mxGeometry(.76*t,.61*r,.24*t,.16*r),"");O.vertex=!0;v.insert(O);O.style=w.style;var Yb=new mxCell("",new mxGeometry(.38*t,.84*r,.24*t,.16*r),"");Yb.vertex=!0;v.insert(Yb);Yb.style=w.style;var Zb=new mxCell("",new mxGeometry(0,.61*r,.24*t,.16*r),"");Zb.vertex=!0;v.insert(Zb);Zb.style=w.style;var $b=new mxCell("",new mxGeometry(0,.23*r,.24*t,.16*r),"");$b.vertex=!0;v.insert($b);$b.style=w.style;K=new mxCell("",
-new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(K,!1);w.insertEdge(K,!0);K.edge=!0;K.style+=f(K.style,g,u,K);m.push(L.addCell(K,null,null,null,null));J=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(J,!1);E.insertEdge(J,!0);J.edge=!0;J.style+=f(J.style,g,u,J);m.push(L.addCell(J,null,null,null,null));P=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(P,!1);O.insertEdge(P,!0);P.edge=!0;P.style+=f(P.style,g,u,P);m.push(L.addCell(P,
-null,null,null,null));ja=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(ja,!1);Yb.insertEdge(ja,!0);ja.edge=!0;ja.style+=f(ja.style,g,u,ja);m.push(L.addCell(ja,null,null,null,null));var kb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(kb,!1);Zb.insertEdge(kb,!0);kb.edge=!0;kb.style+=f(kb.style,g,u,kb);m.push(L.addCell(kb,null,null,null,null));var lb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(lb,!1);$b.insertEdge(lb,
-!0);lb.edge=!0;lb.style+=f(lb.style,g,u,lb);m.push(L.addCell(lb,null,null,null,null));break;case "EIDurableSubscriberBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");K.geometry.relative=!0;K.edge=!0;ga(.05*t,.5*r,.6*t,.25*r,K,m,L,ca,v,W);J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");
-J.geometry.relative=!0;J.edge=!0;ga(.05*t,.5*r,.6*t,.75*r,J,m,L,ca,v,W);q=new mxCell("",new mxGeometry(.7*t,.1*r,.15*t,.32*r),"shape=mxgraph.eip.durable_subscriber;part=1;fillColor=#818181;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);break;case "EIControlBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(.25*t,.25*r,.5*t,.5*r),"shape=mxgraph.eip.control_bus;part=1;");q.vertex=!0;v.insert(q);q.style+=
-f(q.style,g,u,q);break;case "EIMessageHistoryBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(0,0,17,17),"shape=ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);E=new mxCell("",new mxGeometry(t-45,30,30,20),"shape=mxgraph.mockup.misc.mail2;fillColor=#FFE040;part=1;");E.vertex=!0;v.insert(E);E.style+=f(E.style,g,u,E);P=new mxCell("",new mxGeometry(0,
-0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");P.geometry.relative=!0;P.edge=!0;q.insertEdge(P,!1);E.insertEdge(P,!0);P.style+=f(P.style,g,u,P);P.geometry.points=[new mxPoint(U+8.5,ba+40)];m.push(L.addCell(P,null,null,null,null));O=new mxCell("",new mxGeometry(t-45,r-20,20,20),"part=1;");O.vertex=!0;v.insert(O);O.value=c(g.message_0);O.style+=k(g.message_0);O.style+=f(O.style,g,u,O);ja=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");
-ja.geometry.relative=!0;ja.edge=!0;q.insertEdge(ja,!1);O.insertEdge(ja,!0);ja.style+=f(ja.style,g,u,ja);ja.geometry.points=[new mxPoint(U+8.5,ba+r-10)];m.push(L.addCell(ja,null,null,null,null));Sb=g.HistoryMessages;dc=(r-75)/Sb;w=[];R=[];for(l=0;l<Sb;l++)Tb=dc*(l+1)+30,w[l]=new mxCell("",new mxGeometry(t-20,Tb,20,20),"part=1;"),w[l].vertex=!0,w[l].value=c(g["message_"+(l+1)]),w.style+=k(g["message_"+(l+1)]),v.insert(w[l]),w[l].style+=f(w[l].style,g,u,w[l]),R[l]=new mxCell("",new mxGeometry(0,0,0,
-0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;"),R[l].geometry.relative=!0,R[l].edge=!0,E.insertEdge(R[l],!1),w[l].insertEdge(R[l],!0),R[l].style+=f(R[l].style,g,u,R[l]),jb=[],jb.push(new mxPoint(U+t-30,ba+Tb+10)),R[l].geometry.points=jb,m.push(L.addCell(R[l],null,null,null,null));break;case "fpDoor":v.style+="shape=mxgraph.floorplan.doorRight;";0>g.DoorAngle&&(v.style+="flipV=1;");v.style+=f(v.style,g,u,v);break;case "fpDoubleDoor":v.style+="shape=mxgraph.floorplan.doorDouble;";
-0<g.DoorAngle&&(v.style+="flipV=1;");v.style+=f(v.style,g,u,v);break;case "fpRestroomLights":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);q=new mxCell("",new mxGeometry(0,0,t,.25*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);for(var w=[],pc=.02*t,ec=(t-2*pc)/g.LightCount,qc=.8*ec,l=0;l<g.LightCount;l++)w[l]=new mxCell("",new mxGeometry(pc+ec*l+(ec-qc)/2,.25*r,qc,.75*r),"part=1;shape=ellipse;"),w[l].vertex=!0,v.insert(w[l]),w[l].style+=f(w[l].style,g,u,w[l]);
-break;case "fpRestroomSinks":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);for(var q=[],rc=t/g.SinkCount,l=0;l<g.SinkCount;l++)q[l]=new mxCell("",new mxGeometry(rc*l,0,rc,r),"part=1;shape=mxgraph.floorplan.sink_2;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,g,u,q[l]);break;case "fpRestroomStalls":v.style+="strokeColor=none;fillColor=none;";var Ba=.1*t/g.StallCount,q=new mxCell("",new mxGeometry(0,0,Ba,r),"fillColor=#000000;part=1;");q.vertex=!0;v.insert(q);q.style+=
-f(q.style,g,u,q);for(var Ia=(t-Ba)/g.StallCount,fc=[],Ub=[],Vb=[],Wb=[],I=A(g,u),I=""==I?"#000000;":I.replace("stokreColor=",""),ac="part=1;fillColor="+I,ac=ac+f(ac,g,u,v),gc=f("",g,u,v),l=0;l<g.StallCount;l++)fc[l]=new mxCell("",new mxGeometry((l+1)*Ia,0,Ba,r),ac),fc[l].vertex=!0,v.insert(fc[l]),Vb[l]=new mxCell("",new mxGeometry(Ba+l*Ia+.05*(Ia-Ba),r-.92*(Ia-Ba),.9*(Ia-Ba),.92*(Ia-Ba)),"shape=mxgraph.floorplan.doorRight;flipV=1;part=1;"),Vb[l].vertex=!0,v.insert(Vb[l]),Vb[l].style+=gc,Ub[l]=new mxCell("",
-new mxGeometry(Ba+l*Ia+.2*(Ia-Ba),0,.6*(Ia-Ba),.8*(Ia-Ba)),"shape=mxgraph.floorplan.toilet;part=1;"),Ub[l].vertex=!0,v.insert(Ub[l]),Ub[l].style+=gc,Wb[l]=new mxCell("",new mxGeometry(Ba+l*Ia,.42*r,.15*(Ia-Ba),.12*(Ia-Ba)),"part=1;"),Wb[l].vertex=!0,v.insert(Wb[l]),Wb[l].style+=gc;break;case "PEOneToMany":v.style+="strokeColor=none;fillColor=none;";var Ka="edgeStyle=none;endArrow=none;part=1;";Ka.style+=f(Ka.style,g,u,Ka);var I=A(g,u),I=""==I?"#000000;":I.replace("strokeColor=",""),mb="shape=triangle;part=1;fillColor="+
-I,mb=mb+f(mb,g,u,v),K=new mxCell("",new mxGeometry(0,0,0,0),Ka);K.geometry.relative=!0;K.edge=!0;ga(0,.5*r,.65*t,.5*r,K,m,L,ca,v,W);for(var M=r/g.numLines,J=[],ob=[],l=0;l<g.numLines;l++)J[l]=new mxCell("",new mxGeometry(0,0,0,0),Ka),J[l].geometry.relative=!0,J[l].edge=!0,ga(.65*t,.5*r,.96*t,(l+.5)*M,J[l],m,L,ca,v,W),ob[l]=new mxCell("",new mxGeometry(.95*t,(l+.2)*M,.05*t,.6*M),mb),ob[l].vertex=!0,v.insert(ob[l]);break;case "PEMultilines":v.style+="strokeColor=none;fillColor=none;";Ka="edgeStyle=none;endArrow=none;part=1;";
-Ka.style+=f(Ka.style,g,u,Ka);I=A(g,u);I=""==I?"#000000;":I.replace("strokeColor=","");mb="shape=triangle;part=1;fillColor="+I;mb+=f(mb,g,u,v);M=r/g.numLines;J=[];ob=[];for(l=0;l<g.numLines;l++)J[l]=new mxCell("",new mxGeometry(0,0,0,0),Ka),J[l].geometry.relative=!0,J[l].edge=!0,ga(0,(l+.5)*M,.96*t,(l+.5)*M,J[l],m,L,ca,v,W),ob[l]=new mxCell("",new mxGeometry(.95*t,(l+.2)*M,.05*t,.6*M),mb),ob[l].vertex=!0,v.insert(ob[l]);break;case "PEVesselBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
-v.value=c(g.Text);switch(g.vesselType){case 1:v.style+="shape=mxgraph.pid.vessels.pressurized_vessel;";break;case 2:v.style+="shape=hexagon;perimeter=hexagonPerimeter2;size=0.10;direction=south;"}v.style+=f(v.style,g,u,v);break;case "PEClosedTankBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=c(g.Text);1==g.peakedRoof&&0==g.stumpType?v.style+="shape=mxgraph.pid.vessels.tank_(conical_roof);":1==g.stumpType&&(v.style+="shape=mxgraph.pid.vessels.tank_(boot);");v.style+=f(v.style,
-g,u,v);break;case "PEColumnBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=c(g.Text);v.style=0==g.columnType?v.style+"shape=mxgraph.pid.vessels.pressurized_vessel;":v.style+"shape=mxgraph.pid.vessels.tank;";v.style+=f(v.style,g,u,v);break;case "PECompressorTurbineBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",new mxGeometry(0,.2*r,t,.6*r),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");
-q.vertex=!0;v.insert(q);q.style+=N;q.style+=f(q.style,g,u,q);N="endSize=4;endArrow=block;endFill=1;";0==g.compressorType?(K=new mxCell("",new mxGeometry(0,0,0,0),""),K.geometry.relative=!0,K.edge=!0,K.style+=N,K.style+=f(K.style,g,u,K),ga(0,0,0,.2*r,K,m,L,ca,v,W),J=new mxCell("",new mxGeometry(0,0,0,0),""),J.geometry.relative=!0,J.edge=!0,J.style+=N,J.style+=f(J.style,g,u,J),ga(t,.67*r,t,r,J,m,L,ca,v,W)):(q.style+="flipH=1;",K=new mxCell("",new mxGeometry(0,0,0,0),""),K.geometry.relative=!0,K.edge=
-!0,K.style+=N,K.style+=f(K.style,g,u,K),ga(0,0,0,.33*r,K,m,L,ca,v,W),J=new mxCell("",new mxGeometry(0,0,0,0),""),J.geometry.relative=!0,J.edge=!0,J.style+=N,J.style+=f(J.style,g,u,J),ga(t,.8*r,t,r,J,m,L,ca,v,W));1==g.centerLineType&&(P=new mxCell("",new mxGeometry(0,0,0,0),""),P.geometry.relative=!0,P.edge=!0,P.style+=N,P.style+=f(P.style,g,u,P),ga(.2*t,.5*r,.8*t,.5*r,P,m,L,ca,v,W));break;case "PEMotorDrivenTurbineBlock":v.style+="shape=ellipse;";v.style+=f(v.style,g,u,v);v.value=c(g.Text);q=new mxCell("",
-new mxGeometry(.2*t,.2*r,.6*t,.6*r),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");q.vertex=!0;v.insert(q);q.style+=f(q.style,g,u,q);break;case "PEIndicatorBlock":case "PEIndicator2Block":case "PESharedIndicatorBlock":case "PEComputerIndicatorBlock":case "PESharedIndicator2Block":case "PEProgrammableIndicatorBlock":switch(e.Class){case "PEIndicatorBlock":v.style+="shape=mxgraph.pid2inst.discInst;";break;case "PEIndicator2Block":v.style+="shape=mxgraph.pid2inst.indicator;indType=inst;";
-break;case "PESharedIndicatorBlock":v.style+="shape=mxgraph.pid2inst.sharedCont;";break;case "PEComputerIndicatorBlock":v.style+="shape=mxgraph.pid2inst.compFunc;";break;case "PESharedIndicator2Block":v.style+="shape=mxgraph.pid2inst.indicator;indType=ctrl;";break;case "PEProgrammableIndicatorBlock":v.style+="shape=mxgraph.pid2inst.progLogCont;"}v.style+=f(v.style,g,u,v);"PEIndicator2Block"==e.Class||"PESharedIndicator2Block"==e.Class?(q=new mxCell("",new mxGeometry(0,0,t,.5*t),"part=1;strokeColor=none;fillColor=none;"),
-q.vertex=!0,v.insert(q),q.style+=k(g.TopText),q.style+=f(q.style,g,u,q),q.value=c(g.TopText),w=new mxCell("",new mxGeometry(0,.5*t,t,.5*t),"part=1;strokeColor=none;fillColor=none;")):(q=new mxCell("",new mxGeometry(0,0,t,.5*r),"part=1;strokeColor=none;fillColor=none;"),q.vertex=!0,v.insert(q),q.style+=k(g.TopText),q.style+=f(q.style,g,u,q),q.value=c(g.TopText),w=new mxCell("",new mxGeometry(0,.5*r,t,.5*r),"part=1;strokeColor=none;fillColor=none;"));w.vertex=!0;v.insert(w);w.style+=k(g.BotText);w.style+=
-f(w.style,g,u,w);w.value=c(g.BotText);switch(g.instrumentLocation){case 0:v.style+="mounting=field;";break;case 1:v.style+="mounting=inaccessible;";break;case 2:v.style+="mounting=room;";break;case 3:v.style+="mounting=local;"}break;case "PEGateValveBlock":case "PEGlobeValveBlock":case "PEAngleValveBlock":case "PEAngleGlobeValveBlock":case "PEPoweredValveBlock":var hc=!1;"PEPoweredValveBlock"==e.Class?1!=g.poweredHandOperated&&(hc=!0):1!=g.handOperated&&(hc=!0);if(hc){var g=n(e).Properties,S=g.BoundingBox,
-sc=S.h;S.h="PEAngleValveBlock"==e.Class||"PEAngleGlobeValveBlock"==e.Class?.7*S.h:.6*S.h;v=new mxCell("",new mxGeometry(Math.round(.6*S.x+0),Math.round(.6*(S.y+sc-S.h)+0),Math.round(.6*S.w),Math.round(.6*S.h)),"");v.vertex=!0;aa(v,e)}if("PEPoweredValveBlock"==e.Class)v.style+="shape=mxgraph.pid2valves.valve;verticalLabelPosition=bottom;verticalAlign=top;",v.style+=f(v.style,g,u,v),1==g.poweredHandOperated?(v.style+="valveType=gate;actuator=powered;",q=new mxCell("",new mxGeometry(.325*t,0,.35*t,.35*
-r),"part=1;strokeColor=none;fillColor=none;spacingTop=2;"),q.vertex=!0,v.insert(q),q.style+="fontSize=6;"+a(g.PoweredText)+d(g.PoweredText)+h(g.PoweredText)+p(g.PoweredText)+y(g.PoweredText)+x(g.PoweredText)+C(g.PoweredText)+F(g.PoweredText),q.style+=f(q.style,g,u,q),q.value=c(g.PoweredText)):v.style+="valveType=gate;";else{v.style+="verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.pid2valves.valve;";v.value=c(g.Text);switch(e.Class){case "PEGateValveBlock":v.style+="valveType=gate;";
-break;case "PEGlobeValveBlock":v.style+="valveType=globe;";break;case "PEAngleValveBlock":v.style+="valveType=angle;";break;case "PEAngleGlobeValveBlock":v.style+="valveType=angleGlobe;flipH=1;"}1==g.handOperated&&(v.style+="actuator=man;")}v.style+=f(v.style,g,u,v);break;case "UI2BrowserBlock":v.style+="shape=mxgraph.mockup.containers.browserWindow;mainText=;";1==g.vScroll&&(E=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,r-130),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
-new mxCell("",new mxGeometry(1,0,20,r-110),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(-20,110),E.vertex=!0,v.insert(E),v.style+="spacingRight=20;");1==g.hScroll&&(O=1==g.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),
-O.geometry.relative=!0,O.geometry.offset=new mxPoint(0,-20),O.vertex=!0,v.insert(O));v.style+=f(v.style,g,u,v);break;case "UI2WindowBlock":v.style+="shape=mxgraph.mockup.containers.window;mainText=;align=center;verticalAlign=top;spacing=5;"+b(g.Title)+a(g.Title)+d(g.Title);v.value=c(g.Title);1==g.vScroll&&(E=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,r-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-30),
-"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(-20,30),E.vertex=!0,v.insert(E),v.style+="spacingRight=20;");1==g.hScroll&&(O=1==g.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),O.geometry.relative=!0,O.geometry.offset=
-new mxPoint(0,-20),O.vertex=!0,v.insert(O));v.style+=f(v.style,g,u,v);break;case "UI2DialogBlock":v.style+=k(g.Text);v.value=c(g.Text);q=new mxCell("",new mxGeometry(0,0,t,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.style+=k(g.Title);q.style+=f(q.style,g,u,q);q.value=c(g.Title);w=new mxCell("",new mxGeometry(1,.5,20,20),"part=1;shape=ellipse;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");w.geometry.relative=!0;w.geometry.offset=new mxPoint(-25,-10);w.vertex=!0;q.insert(w);1==
-g.vScroll&&(E=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,r-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-30),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(-20,30),E.vertex=!0,v.insert(E),v.style+="spacingRight=20;");1==g.hScroll&&(O=1==g.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):
-new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),O.geometry.relative=!0,O.geometry.offset=new mxPoint(0,-20),O.vertex=!0,v.insert(O));v.style+=f(v.style,g,u,v);break;case "UI2AccordionBlock":q=[];M=25;for(l=0;l<=g.Panels-1;l++)q[l]=l<g.Selected-1?new mxCell("",new mxGeometry(0,l*M,t,M),"part=1;fillColor=#000000;fillOpacity=25;"):l==g.Selected-1?new mxCell("",new mxGeometry(0,l*M,t,M),"part=1;fillColor=none;"):new mxCell("",new mxGeometry(0,
-r-(g.Panels-g.Selected)*M+(l-g.Selected)*M,t,M),"part=1;fillColor=#000000;fillOpacity=25;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(g["Panel_"+(l+1)]),q[l].value=c(g["Panel_"+(l+1)]),0>q[l].style.indexOf(";align=")&&(q[l].style+="align=left;spacingLeft=5;");var ha=A(g,u),ha=ha.replace("strokeColor","fillColor2");""==ha&&(ha="fillColor2=#000000;");1==g.vScroll&&(w=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,r-g.Selected*M-20-(g.Panels-g.Selected)*M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
-new mxCell("",new mxGeometry(1,0,20,r-g.Selected*M-(g.Panels-g.Selected)*M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,g.Selected*M),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,g,u,w));1==g.hScroll&&(E=1==g.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,
-1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20-(g.Panels-g.Selected)*M),E.vertex=!0,v.insert(E),E.style+=ha,E.style+=f(E.style,g,u,E));O=1==g.vScroll?new mxCell("",new mxGeometry(0,g.Selected*M,t-20,r-g.Selected*M-20-(g.Panels-g.Selected)*M),"part=1;fillColor=none;strokeColor=none;"):new mxCell("",new mxGeometry(0,g.Selected*M,t-20,r-g.Selected*M-(g.Panels-g.Selected)*M),"part=1;fillColor=none;strokeColor=none;");
-O.vertex=!0;v.insert(O);O.style+=k(g.Content_1);0>O.style.indexOf(";align=")&&(O.style+="align=left;spacingLeft=5;");O.value=c(g.Content_1);v.style+=f(v.style,g,u,v);break;case "UI2TabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";var q=[],w=[],M=25,Fa=3,T=(t+Fa)/(g.Tabs+1),pa=new mxCell("",new mxGeometry(0,M,t,r-M),"part=1;");pa.vertex=!0;v.insert(pa);pa.style+=f(pa.style,g,u,pa);for(l=0;l<=g.Tabs-1;l++)l==g.Selected-1?(w[l]=new mxCell("",new mxGeometry(10+l*T,0,T-Fa,M),""),w[l].vertex=
-!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(10+l*T,0,T-Fa,M),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=q[l].style+=f(q[l].style,g,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T-Fa,M),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(g["Tab_"+(l+1)]),w[l].value=c(g["Tab_"+(l+1)]),0>w[l].style.indexOf(";align=")&&(w[l].style+="align=left;spacingLeft=2;"),w[l].style+=f(w[l].style,g,u,w[l]);ha=A(g,u);ha=ha.replace("strokeColor","fillColor2");
-""==ha&&(ha="fillColor2=#000000;");1==g.vScroll&&(w=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,r-20-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,M),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,g,u,w));1==g.hScroll&&
-(E=1==g.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20),E.vertex=!0,v.insert(E),E.style+=ha,E.style+=f(E.style,g,u,E));break;case "UI2TabBar2ContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];w=[];M=25;Fa=3;T=(t+Fa)/g.Tabs;pa=new mxCell("",
-new mxGeometry(0,M,t,r-M),"part=1;");pa.vertex=!0;v.insert(pa);pa.style+=f(pa.style,g,u,pa);for(l=0;l<=g.Tabs-1;l++)l==g.Selected-1?(w[l]=new mxCell("",new mxGeometry(l*T,0,T-Fa,M),""),w[l].vertex=!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(l*T,0,T-Fa,M),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,g,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T-Fa,M),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(g["Tab_"+(l+1)]),w[l].style+=
-f(w[l].style,g,u,w[l]),w[l].value=c(g["Tab_"+(l+1)]),0>w[l].style.indexOf(";align=")&&(w[l].style+="align=left;spacingLeft=2;");ha=A(g,u);ha=ha.replace("strokeColor","fillColor2");""==ha&&(ha="fillColor2=#000000;");1==g.vScroll&&(w=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,r-20-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),
-w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,M),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,g,u,w));1==g.hScroll&&(E=1==g.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20),E.vertex=!0,v.insert(E),E.style+=
-ha,E.style+=f(E.style,g,u,E));break;case "UI2VTabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];w=[];Fa=3;M=25+Fa;T=80;eb=10;pa=new mxCell("",new mxGeometry(T,0,t-T,r),"part=1;");pa.vertex=!0;v.insert(pa);pa.style+=f(pa.style,g,u,pa);for(l=0;l<=g.Tabs-1;l++)l==g.Selected-1?(w[l]=new mxCell("",new mxGeometry(0,eb+l*M,T,M-Fa),""),w[l].vertex=!0,v.insert(w[l]),w[l].style+=k(g["Tab_"+(l+1)]),w[l].style+=f(w[l].style,g,u,w[l])):(q[l]=new mxCell("",new mxGeometry(0,eb+l*M,T,M-Fa),"strokeColor=none;"),
-q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,g,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T,M-Fa),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=k(g["Tab_"+(l+1)])),w[l].value=c(g["Tab_"+(l+1)]),0>w[l].style.indexOf(";align=")&&(w[l].style+="align=left;spacingLeft=2;"),w[l].style+=f(w[l].style,g,u,w[l]);ha=A(g,u);ha=ha.replace("strokeColor","fillColor2");""==ha&&(ha="fillColor2=#000000;");1==g.vScroll&&(w=1==g.hScroll?new mxCell("",new mxGeometry(1,
-0,20,r-20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,0),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,g,u,w));1==g.hScroll&&(E=1==g.vScroll?new mxCell("",new mxGeometry(T,1,t-20-T,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):
-new mxCell("",new mxGeometry(T,1,t-T,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20),E.vertex=!0,v.insert(E),E.style+=ha,E.style+=f(E.style,g,u,E));break;case "UI2CheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";M=r/g.Options;q=[];w=[];for(l=0;l<g.Options;l++)q[l]=new mxCell("",new mxGeometry(0,l*M+.5*M-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),
-q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(g["Option_"+(l+1)]),q[l].style+=f(q[l].style,g,u,q[l]),null!=g.Selected[l+1]&&1==g.Selected[l+1]&&(I=A(g,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2,2,6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,g,u,w[l])),q[l].value=c(g["Option_"+(l+1)]);break;case "UI2HorizontalCheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";
-T=t/g.Options;q=[];w=[];for(l=0;l<g.Options;l++)q[l]=new mxCell("",new mxGeometry(l*T,.5*r-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(g["Option_"+(l+1)]),q[l].style+=f(q[l].style,g,u,q[l]),null!=g.Selected[l+1]&&1==g.Selected[l+1]&&(I=A(g,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2,2,6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),
-w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,g,u,w[l])),q[l].value=c(g["Option_"+(l+1)]);break;case "UI2RadioBlock":v.style+="strokeColor=none;fillColor=none;";M=r/g.Options;q=[];w=[];for(l=0;l<g.Options;l++)q[l]=new mxCell("",new mxGeometry(0,l*M+.5*M-5,10,10),"shape=ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(g["Option_"+(l+1)]),q[l].style+=f(q[l].style,g,u,
-q[l]),null!=g.Selected&&g.Selected==l+1&&(I=A(g,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2.5,2.5,5,5),"shape=ellipse;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,g,u,w[l])),q[l].value=c(g["Option_"+(l+1)]);break;case "UI2HorizontalRadioBlock":v.style+="strokeColor=none;fillColor=none;";T=t/g.Options;q=[];w=[];for(l=0;l<g.Options;l++)q[l]=new mxCell("",new mxGeometry(l*T,.5*r-5,10,10),"shape=ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),
-q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(g["Option_"+(l+1)]),q[l].style+=f(q[l].style,g,u,q[l]),null!=g.Selected&&g.Selected==l+1&&(I=A(g,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2,2,6,6),"shape=ellipse;part=1;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,g,u,w[l])),q[l].value=c(g["Option_"+(l+1)]);break;case "UI2HSliderBlock":case "UI2VSliderBlock":v.style+="shape=mxgraph.mockup.forms.horSlider;sliderStyle=basic;handleStyle=handle;";
-"UI2VSliderBlock"==e.Class&&(v.style+="direction=south;");v.style+="sliderPos="+100*g.ScrollVal+";";v.style+=f(v.style,g,u,v);break;case "UI2DatePickerBlock":v.style+="strokeColor=none;fillColor=none;";q=new mxCell("",new mxGeometry(0,0,.6*t,r),"part=1;");q.vertex=!0;v.insert(q);q.style+=k(g.Date);v.style+=f(v.style,g,u,v);q.value=c(g.Date);I=A(g,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");w=new mxCell("",new mxGeometry(.75*t,0,.25*t,r),"part=1;shape=mxgraph.gmdl.calendar;");
-w.vertex=!0;v.insert(w);w.style+=I;w.style+=f(w.style,g,u,w);break;case "UI2SearchBlock":v.style+="shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;align=left;spacingLeft=26;"+b(g.Search)+a(g.Search)+d(g.Search);v.style+=f(v.style,g,u,v);v.value=c(g.Search);break;case "UI2NumericStepperBlock":I=A(g,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");v.style+="shape=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;mainText=;align=left;spacingLeft=8;"+
-I+b(g.Number)+a(g.Number)+d(g.Number);v.style+=f(v.style,g,u,v);v.value=c(g.Number);break;case "UI2ButtonBarBlock":v.style+=f(v.style,g,u,v);q=[];w=[];T=t/g.Buttons;for(l=0;l<=g.Buttons-1;l++)l==g.Selected-1?(w[l]=new mxCell("",new mxGeometry(l*T,0,T,r),""),w[l].vertex=!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(l*T,0,T,r),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=q[l].style+=f(q[l].style,g,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T,r),"fillColor=#000000;fillOpacity=25;"),
-w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(g["Button_"+(l+1)]),w[l].style+=f(w[l].style,g,u,w[l]),w[l].value=c(g["Button_"+(l+1)]);break;case "UI2VerticalButtonBarBlock":v.style+=f(v.style,g,u,v);q=[];w=[];M=r/g.Buttons;for(l=0;l<=g.Buttons-1;l++)l==g.Selected-1?(w[l]=new mxCell("",new mxGeometry(0,l*M,t,M),""),w[l].vertex=!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(0,l*M,t,M),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,g,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,
-0,t,M),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(g["Button_"+(l+1)]),w[l].style+=f(w[l].style,g,u,w[l]),w[l].value=c(g["Button_"+(l+1)]);break;case "UI2LinkBarBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);q=[];w=[];T=t/g.Links;for(l=0;l<g.Links;l++)0!=l?(w[l]=new mxCell("",new mxGeometry(l*T,0,T,r),"shape=partialRectangle;top=0;bottom=0;right=0;fillColor=none;"),w[l].style+=f(w[l].style,g,u,w[l])):w[l]=new mxCell("",new mxGeometry(l*
-T,0,T,r),"fillColor=none;strokeColor=none;"),w[l].vertex=!0,v.insert(w[l]),w[l].style+=k(g["Link_"+(l+1)]),w[l].value=c(g["Link_"+(l+1)]);break;case "UI2BreadCrumbsBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,g,u,v);q=[];w=[];T=t/g.Links;for(l=0;l<g.Links;l++)q[l]=new mxCell("",new mxGeometry(l*T,0,T,r),"fillColor=none;strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(g["Link_"+(l+1)]),q[l].value=c(g["Link_"+(l+1)]);for(l=1;l<g.Links;l++)w[l]=new mxCell("",new mxGeometry(l/
-g.Links,.5,6,10),"shape=mxgraph.ios7.misc.right;"),w[l].geometry.relative=!0,w[l].geometry.offset=new mxPoint(-3,-5),w[l].vertex=!0,v.insert(w[l]);break;case "UI2MenuBarBlock":v.style+="strokeColor=none;";v.style+=f(v.style,g,u,v);q=[];T=t/(g.Buttons+1);for(l=0;l<=g.Buttons-1;l++)q[l]=l!=g.Selected-1?new mxCell("",new mxGeometry(0,0,T,r),"strokeColor=none;fillColor=none;resizeHeight=1;"):new mxCell("",new mxGeometry(0,0,T,r),"fillColor=#000000;fillOpacity=25;strokeColor=none;resizeHeight=1;"),q[l].geometry.relative=
-!0,q[l].geometry.offset=new mxPoint(l*T,0),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(g["MenuItem_"+(l+1)]),q[l].value=c(g["MenuItem_"+(l+1)]);break;case "UI2AtoZBlock":v.style+="fillColor=none;strokeColor=none;"+k(g.Text_0);v.value="0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";break;case "UI2PaginationBlock":v.style+="fillColor=none;strokeColor=none;"+k(g.Text_prev);v.value=c(g.Text_prev)+" ";for(l=0;l<g.Links;l++)v.value+=c(g["Link_"+(l+1)])+" ";v.value+=c(g.Text_next);break;case "UI2ContextMenuBlock":v.style+=
-f(v.style,g,u,v);for(var H=[],cb=[],Ab=[],M=r/g.Lines,N=null,l=0;l<g.Lines;l++)null!=g["Item_"+(l+1)]&&(null==N&&(N=""+b(g["Item_"+(l+1)])+a(g["Item_"+(l+1)])+d(g["Item_"+(l+1)])),H[l]=new mxCell("",new mxGeometry(0,l*r/g.Lines,t,M),"strokeColor=none;fillColor=none;spacingLeft=20;align=left;html=1;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=N,H[l].value=c(g["Item_"+(l+1)])),null!=g.Icons[l+1]&&null!=H[l]&&("dot"==g.Icons[l+1]?(cb[l]=new mxCell("",new mxGeometry(0,.5,8,8),"shape=ellipse;strokeColor=none;"),
-cb[l].geometry.offset=new mxPoint(6,-4)):"check"==g.Icons[l+1]&&(cb[l]=new mxCell("",new mxGeometry(0,.5,7,8),"shape=mxgraph.mscae.general.checkmark;strokeColor=none;"),cb[l].geometry.offset=new mxPoint(6.5,-4)),null!=cb[l]&&(cb[l].geometry.relative=!0,cb[l].vertex=!0,H[l].insert(cb[l]),I=A(g,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),cb[l].style+=I)),null!=g["Shortcut_"+(l+1)]&&(null==N&&(N=""+b(g["Shortcut_"+(l+1)])+a(g["Shortcut_"+(l+1)])+d(g["Shortcut_"+(l+1)])),
-Ab[l]=new mxCell("",new mxGeometry(.6*t,l*r/g.Lines,.4*t,M),"strokeColor=none;fillColor=none;spacingRight=3;align=right;html=1;"),Ab[l].vertex=!0,v.insert(Ab[l]),Ab[l].style+=N,Ab[l].value=c(g["Shortcut_"+(l+1)])),null!=g.Dividers[l+1]&&(H[l]=new mxCell("",new mxGeometry(.05*t,l*r/g.Lines,.9*t,M),"shape=line;strokeWidth=0.25;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=A(g,u));break;case "UI2ProgressBarBlock":v.style+="shape=mxgraph.mockup.misc.progressBar;fillColor2=#888888;barPos="+100*g.ScrollVal+
-";";break;case "UI2TooltipSquareBlock":v.style+="html=1;shape=callout;flipV=1;base=13;size=7;position=0.5;position2=0.66;rounded=1;arcSize="+g.RoundCorners+";"+k(g.Tip);v.style+=f(v.style,g,u,v);v.value=c(g.Tip);break;case "UI2CalloutBlock":v.style+="shape=ellipse;"+k(g.Txt);v.style+=f(v.style,g,u,v);v.value=c(g.Txt);break;case "UI2AlertBlock":v.style+=k(g.Txt);v.style+=f(v.style,g,u,v);v.value=c(g.Txt);q=new mxCell("",new mxGeometry(0,0,t,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.style+=
-k(g.Title);q.style+=f(q.style,g,u,q);q.value=c(g.Title);w=new mxCell("",new mxGeometry(1,.5,20,20),"part=1;shape=ellipse;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");w.geometry.relative=!0;w.geometry.offset=new mxPoint(-25,-10);w.vertex=!0;q.insert(w);for(var tc=45*g.Buttons+(10*g.Buttons-1),E=[],l=0;l<g.Buttons;l++)E[l]=new mxCell("",new mxGeometry(.5,1,45,20),"part=1;html=1;"),E[l].geometry.relative=!0,E[l].geometry.offset=new mxPoint(.5*-tc+55*l,-40),E[l].vertex=!0,v.insert(E[l]),E[l].style+=
-k(g["Button_"+(l+1)]),E[l].style+=f(E[l].style,g,u,E[l]),E[l].value=c(g["Button_"+(l+1)]);break;case "UMLClassBlock":if(0==g.Simple){var N=D(g,u),Ca=Math.round(.6*g.TitleHeight),N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+N+"startSize="+Ca+";"+k(g.Title);v.style+=f(v.style,g,u,v);v.value=c(g.Title);
-for(var H=[],ic=[],ya=Ca/r,l=0;l<=g.Attributes;l++)0<l&&(ic[l]=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),ic[l].vertex=!0,v.insert(ic[l])),M=0,l<g.Attributes?(M=g["Text"+(l+1)+"Percent"],ya+=M):M=1-ya,H[l]=new mxCell("",new mxGeometry(0,0,t,Math.round((r-Ca)*M)),"part=1;resizeHeight=0;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
-H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+B(g,u,H[l])+b(g["Text"+(l+1)])+a(g["Text"+(l+1)])+d(g["Text"+(l+1)]),H[l].value=c(g["Text"+(l+1)])}else v.style+=k(g.Title),v.style+=f(v.style,g,u,v),v.value=c(g.Title);break;case "ERDEntityBlock":N=D(g,u);Ca=.6*g.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+
-N+"startSize="+Ca+";"+k(g.Name);v.style+=f(v.style,g,u,v);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+D(g,u);v.value=c(g.Name);H=[];ya=Ca/r;for(l=0;l<g.Fields;l++)M=0,H[l]=new mxCell("",new mxGeometry(0,0,t,.6*g["Field"+(l+1)+"_h"]),"part=1;resizeHeight=0;strokeColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+b(g["Field"+(l+1)])+a(g["Field"+
-(l+1)])+d(g["Field"+(l+1)]),H[l].style=1==g.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;opacity=5;":H[l].style+("fillColor=none;"+B(g,u,H[l])),H[l].value=c(g["Field"+(l+1)]);break;case "ERDEntityBlock2":N=D(g,u);Ca=.6*g.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+N+"startSize="+Ca+";"+k(g.Name);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+
-D(g,u);v.style+=f(v.style,g,u,v);v.value=c(g.Name);var H=[],X=[],ya=Ca,Ga=30;null!=g.Column1&&(Ga=.6*g.Column1);for(l=0;l<g.Fields;l++)M=0,X[l]=new mxCell("",new mxGeometry(0,ya,Ga,.6*g["Key"+(l+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),X[l].vertex=!0,v.insert(X[l]),X[l].style+=N+b(g["Key"+(l+1)])+a(g["Key"+(l+1)])+d(g["Key"+(l+1)]),X[l].style=1==g.AltRows&&
-0!=l%2?X[l].style+"fillColor=#000000;fillOpacity=5;":X[l].style+("fillColor=none;"+B(g,u,X[l])),X[l].value=c(g["Key"+(l+1)]),H[l]=new mxCell("",new mxGeometry(Ga,ya,t-Ga,.6*g["Field"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+b(g["Field"+(l+1)])+a(g["Field"+(l+1)])+d(g["Field"+(l+
-1)]),v.style+=f(v.style,g,u,v),H[l].style=1==g.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;fillOpacity=5;":H[l].style+("fillColor=none;"+B(g,u,H[l])),H[l].value=c(g["Field"+(l+1)]),ya+=.6*g["Key"+(l+1)+"_h"];break;case "ERDEntityBlock3":N=D(g,u);Ca=.6*g.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+N+"startSize="+Ca+";"+k(g.Name);v.style=g.ShadedHeader?v.style+
-"fillColor=#e0e0e0;":v.style+D(g,u);v.style+=f(v.style,g,u,v);v.value=c(g.Name);H=[];X=[];ya=Ca;Ga=30;null!=g.Column1&&(Ga=.6*g.Column1);for(l=0;l<g.Fields;l++)M=0,X[l]=new mxCell("",new mxGeometry(0,ya,Ga,.6*g["Field"+(l+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),X[l].vertex=!0,v.insert(X[l]),X[l].style+=N+b(g["Field"+(l+1)])+a(g["Field"+(l+1)])+d(g["Field"+
-(l+1)]),X[l].style=1==g.AltRows&&0!=l%2?X[l].style+"fillColor=#000000;fillOpacity=5;":X[l].style+("fillColor=none;"+B(g,u,X[l])),X[l].style+=f(X[l].style,g,u,X[l]),X[l].value=c(g["Field"+(l+1)]),H[l]=new mxCell("",new mxGeometry(Ga,ya,t-Ga,.6*g["Type"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),H[l].vertex=!0,v.insert(H[l]),
-H[l].style+=N+b(g["Type"+(l+1)])+a(g["Type"+(l+1)])+d(g["Type"+(l+1)]),H[l].style=1==g.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;fillOpacity=5;":H[l].style+("fillColor=none;"+B(g,u,H[l])),H[l].style+=f(H[l].style,g,u,H[l]),H[l].value=c(g["Type"+(l+1)]),ya+=.6*g["Field"+(l+1)+"_h"];break;case "ERDEntityBlock4":N=D(g,u);Ca=.6*g.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+
-N+"startSize="+Ca+";"+k(g.Name);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+D(g,u);v.style+=f(v.style,g,u,v);v.value=c(g.Name);var H=[],X=[],Ha=[],ya=Ca,Ga=30,bc=40;null!=g.Column1&&(Ga=.6*g.Column1);null!=g.Column2&&(bc=.6*g.Column2);for(l=0;l<g.Fields;l++)M=0,X[l]=new mxCell("",new mxGeometry(0,ya,Ga,.6*g["Key"+(l+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
-X[l].vertex=!0,v.insert(X[l]),X[l].style+=N+b(g["Key"+(l+1)])+a(g["Key"+(l+1)])+d(g["Key"+(l+1)]),X[l].style=1==g.AltRows&&0!=l%2?X[l].style+"fillColor=#000000;fillOpacity=5;":X[l].style+("fillColor=none;"+B(g,u,X[l])),X[l].style+=f(X[l].style,g,u,X[l]),X[l].value=c(g["Key"+(l+1)]),H[l]=new mxCell("",new mxGeometry(Ga,ya,t-Ga-bc,.6*g["Field"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
-H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+b(g["Field"+(l+1)])+a(g["Field"+(l+1)])+d(g["Field"+(l+1)]),H[l].style=1==g.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;fillOpacity=5;":H[l].style+("fillColor=none;"+B(g,u,H[l])),H[l].style+=f(H[l].style,g,u,H[l]),H[l].value=c(g["Field"+(l+1)]),Ha[l]=new mxCell("",new mxGeometry(t-bc,ya,bc,.6*g["Type"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
-Ha[l].vertex=!0,v.insert(Ha[l]),Ha[l].style+=N+b(g["Type"+(l+1)])+a(g["Type"+(l+1)])+d(g["Type"+(l+1)]),Ha[l].style=1==g.AltRows&&0!=l%2?Ha[l].style+"fillColor=#000000;fillOpacity=5;":Ha[l].style+("fillColor=none;"+B(g,u,Ha[l])),Ha[l].style+=f(Ha[l].style,g,u,Ha[l]),Ha[l].value=c(g["Type"+(l+1)]),ya+=.6*g["Key"+(l+1)+"_h"];break;case "GCPServiceCardApplicationSystemBlock":ea("application_system",t,r,v,g,u);break;case "GCPServiceCardAuthorizationBlock":ea("internal_payment_authorization",t,r,v,g,u);
-break;case "GCPServiceCardBlankBlock":ea("blank",t,r,v,g,u);break;case "GCPServiceCardReallyBlankBlock":ea("blank",t,r,v,g,u);break;case "GCPServiceCardBucketBlock":ea("bucket",t,r,v,g,u);break;case "GCPServiceCardCDNInterconnectBlock":ea("google_network_edge_cache",t,r,v,g,u);break;case "GCPServiceCardCloudDNSBlock":ea("blank",t,r,v,g,u);break;case "GCPServiceCardClusterBlock":ea("cluster",t,r,v,g,u);break;case "GCPServiceCardDiskSnapshotBlock":ea("persistent_disk_snapshot",t,r,v,g,u);break;case "GCPServiceCardEdgePopBlock":ea("google_network_edge_cache",
-t,r,v,g,u);break;case "GCPServiceCardFrontEndPlatformServicesBlock":ea("frontend_platform_services",t,r,v,g,u);break;case "GCPServiceCardGatewayBlock":ea("gateway",t,r,v,g,u);break;case "GCPServiceCardGoogleNetworkBlock":ea("google_network_edge_cache",t,r,v,g,u);break;case "GCPServiceCardImageServicesBlock":ea("image_services",t,r,v,g,u);break;case "GCPServiceCardLoadBalancerBlock":ea("network_load_balancer",t,r,v,g,u);break;case "GCPServiceCardLocalComputeBlock":ea("dedicated_game_server",t,r,v,
-g,u);break;case "GCPServiceCardLocalStorageBlock":ea("persistent_disk_snapshot",t,r,v,g,u);break;case "GCPServiceCardLogsAPIBlock":ea("logs_api",t,r,v,g,u);break;case "GCPServiceCardMemcacheBlock":ea("memcache",t,r,v,g,u);break;case "GCPServiceCardNATBlock":ea("nat",t,r,v,g,u);break;case "GCPServiceCardPaymentFormBlock":ea("external_payment_form",t,r,v,g,u);break;case "GCPServiceCardPushNotificationsBlock":ea("push_notification_service",t,r,v,g,u);break;case "GCPServiceCardScheduledTasksBlock":ea("scheduled_tasks",
-t,r,v,g,u);break;case "GCPServiceCardServiceDiscoveryBlock":ea("service_discovery",t,r,v,g,u);break;case "GCPServiceCardSquidProxyBlock":ea("squid_proxy",t,r,v,g,u);break;case "GCPServiceCardTaskQueuesBlock":ea("task_queues",t,r,v,g,u);break;case "GCPServiceCardVirtualFileSystemBlock":ea("virtual_file_system",t,r,v,g,u);break;case "GCPServiceCardVPNGatewayBlock":ea("gateway",t,r,v,g,u);break;case "GCPInputDatabase":ia("database",1,.9,t,r,v,g,u);break;case "GCPInputRecord":ia("record",1,.66,t,r,v,
-g,u);break;case "GCPInputPayment":ia("payment",1,.8,t,r,v,g,u);break;case "GCPInputGateway":ia("gateway_icon",1,.44,t,r,v,g,u);break;case "GCPInputLocalCompute":ia("compute_engine_icon",1,.89,t,r,v,g,u);break;case "GCPInputBeacon":ia("beacon",.73,1,t,r,v,g,u);break;case "GCPInputStorage":ia("storage",1,.8,t,r,v,g,u);break;case "GCPInputList":ia("list",.89,1,t,r,v,g,u);break;case "GCPInputStream":ia("stream",1,.82,t,r,v,g,u);break;case "GCPInputMobileDevices":ia("mobile_devices",1,.73,t,r,v,g,u);break;
-case "GCPInputCircuitBoard":ia("circuit_board",1,.9,t,r,v,g,u);break;case "GCPInputLive":ia("live",.74,1,t,r,v,g,u);break;case "GCPInputUsers":ia("users",1,.63,t,r,v,g,u);break;case "GCPInputLaptop":ia("laptop",1,.66,t,r,v,g,u);break;case "GCPInputApplication":ia("application",1,.8,t,r,v,g,u);break;case "GCPInputLightbulb":ia("lightbulb",.7,1,t,r,v,g,u);break;case "GCPInputGame":ia("game",1,.54,t,r,v,g,u);break;case "GCPInputDesktop":ia("desktop",1,.9,t,r,v,g,u);break;case "GCPInputDesktopAndMobile":ia("desktop_and_mobile",
-1,.66,t,r,v,g,u);break;case "GCPInputWebcam":ia("webcam",.5,1,t,r,v,g,u);break;case "GCPInputSpeaker":ia("speaker",.7,1,t,r,v,g,u);break;case "GCPInputRetail":ia("retail",1,.89,t,r,v,g,u);break;case "GCPInputReport":ia("report",1,1,t,r,v,g,u);break;case "GCPInputPhone":ia("phone",.64,1,t,r,v,g,u);break;case "GCPInputBlank":ia("transparent",1,1,t,r,v,g,u)}return v}var pb=["AEUSBBlock","AGSCutandpasteBlock","iOSDeviceiPadLandscape","iOSDeviceiPadProLandscape"],Xb=["fpDoor"],la={None:"none",Arrow:"block;endFill=1",
+new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(K,!1);w.insertEdge(K,!0);K.edge=!0;K.style+=f(K.style,h,u,K);m.push(L.addCell(K,null,null,null,null));J=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(J,!1);E.insertEdge(J,!0);J.edge=!0;J.style+=f(J.style,h,u,J);m.push(L.addCell(J,null,null,null,null));P=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(P,!1);O.insertEdge(P,!0);P.edge=!0;P.style+=f(P.style,h,u,P);m.push(L.addCell(P,
+null,null,null,null));ka=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(ka,!1);Yb.insertEdge(ka,!0);ka.edge=!0;ka.style+=f(ka.style,h,u,ka);m.push(L.addCell(ka,null,null,null,null));var kb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(kb,!1);Zb.insertEdge(kb,!0);kb.edge=!0;kb.style+=f(kb.style,h,u,kb);m.push(L.addCell(kb,null,null,null,null));var lb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(lb,!1);$b.insertEdge(lb,
+!0);lb.edge=!0;lb.style+=f(lb.style,h,u,lb);m.push(L.addCell(lb,null,null,null,null));break;case "EIDurableSubscriberBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");K.geometry.relative=!0;K.edge=!0;ga(.05*t,.5*r,.6*t,.25*r,K,m,L,ca,v,W);J=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");
+J.geometry.relative=!0;J.edge=!0;ga(.05*t,.5*r,.6*t,.75*r,J,m,L,ca,v,W);q=new mxCell("",new mxGeometry(.7*t,.1*r,.15*t,.32*r),"shape=mxgraph.eip.durable_subscriber;part=1;fillColor=#818181;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);break;case "EIControlBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(.25*t,.25*r,.5*t,.5*r),"shape=mxgraph.eip.control_bus;part=1;");q.vertex=!0;v.insert(q);q.style+=
+f(q.style,h,u,q);break;case "EIMessageHistoryBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(0,0,17,17),"shape=ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);E=new mxCell("",new mxGeometry(t-45,30,30,20),"shape=mxgraph.mockup.misc.mail2;fillColor=#FFE040;part=1;");E.vertex=!0;v.insert(E);E.style+=f(E.style,h,u,E);P=new mxCell("",new mxGeometry(0,
+0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");P.geometry.relative=!0;P.edge=!0;q.insertEdge(P,!1);E.insertEdge(P,!0);P.style+=f(P.style,h,u,P);P.geometry.points=[new mxPoint(U+8.5,ba+40)];m.push(L.addCell(P,null,null,null,null));O=new mxCell("",new mxGeometry(t-45,r-20,20,20),"part=1;");O.vertex=!0;v.insert(O);O.value=c(h.message_0);O.style+=k(h.message_0);O.style+=f(O.style,h,u,O);ka=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");
+ka.geometry.relative=!0;ka.edge=!0;q.insertEdge(ka,!1);O.insertEdge(ka,!0);ka.style+=f(ka.style,h,u,ka);ka.geometry.points=[new mxPoint(U+8.5,ba+r-10)];m.push(L.addCell(ka,null,null,null,null));Sb=h.HistoryMessages;dc=(r-75)/Sb;w=[];R=[];for(l=0;l<Sb;l++)Tb=dc*(l+1)+30,w[l]=new mxCell("",new mxGeometry(t-20,Tb,20,20),"part=1;"),w[l].vertex=!0,w[l].value=c(h["message_"+(l+1)]),w.style+=k(h["message_"+(l+1)]),v.insert(w[l]),w[l].style+=f(w[l].style,h,u,w[l]),R[l]=new mxCell("",new mxGeometry(0,0,0,
+0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;"),R[l].geometry.relative=!0,R[l].edge=!0,E.insertEdge(R[l],!1),w[l].insertEdge(R[l],!0),R[l].style+=f(R[l].style,h,u,R[l]),jb=[],jb.push(new mxPoint(U+t-30,ba+Tb+10)),R[l].geometry.points=jb,m.push(L.addCell(R[l],null,null,null,null));break;case "fpDoor":v.style+="shape=mxgraph.floorplan.doorRight;";0>h.DoorAngle&&(v.style+="flipV=1;");v.style+=f(v.style,h,u,v);break;case "fpDoubleDoor":v.style+="shape=mxgraph.floorplan.doorDouble;";
+0<h.DoorAngle&&(v.style+="flipV=1;");v.style+=f(v.style,h,u,v);break;case "fpRestroomLights":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);q=new mxCell("",new mxGeometry(0,0,t,.25*r),"part=1;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);for(var w=[],pc=.02*t,ec=(t-2*pc)/h.LightCount,qc=.8*ec,l=0;l<h.LightCount;l++)w[l]=new mxCell("",new mxGeometry(pc+ec*l+(ec-qc)/2,.25*r,qc,.75*r),"part=1;shape=ellipse;"),w[l].vertex=!0,v.insert(w[l]),w[l].style+=f(w[l].style,h,u,w[l]);
+break;case "fpRestroomSinks":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);for(var q=[],rc=t/h.SinkCount,l=0;l<h.SinkCount;l++)q[l]=new mxCell("",new mxGeometry(rc*l,0,rc,r),"part=1;shape=mxgraph.floorplan.sink_2;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,h,u,q[l]);break;case "fpRestroomStalls":v.style+="strokeColor=none;fillColor=none;";var Ba=.1*t/h.StallCount,q=new mxCell("",new mxGeometry(0,0,Ba,r),"fillColor=#000000;part=1;");q.vertex=!0;v.insert(q);q.style+=
+f(q.style,h,u,q);for(var Ia=(t-Ba)/h.StallCount,fc=[],Ub=[],Vb=[],Wb=[],I=B(h,u),I=""==I?"#000000;":I.replace("stokreColor=",""),ac="part=1;fillColor="+I,ac=ac+f(ac,h,u,v),gc=f("",h,u,v),l=0;l<h.StallCount;l++)fc[l]=new mxCell("",new mxGeometry((l+1)*Ia,0,Ba,r),ac),fc[l].vertex=!0,v.insert(fc[l]),Vb[l]=new mxCell("",new mxGeometry(Ba+l*Ia+.05*(Ia-Ba),r-.92*(Ia-Ba),.9*(Ia-Ba),.92*(Ia-Ba)),"shape=mxgraph.floorplan.doorRight;flipV=1;part=1;"),Vb[l].vertex=!0,v.insert(Vb[l]),Vb[l].style+=gc,Ub[l]=new mxCell("",
+new mxGeometry(Ba+l*Ia+.2*(Ia-Ba),0,.6*(Ia-Ba),.8*(Ia-Ba)),"shape=mxgraph.floorplan.toilet;part=1;"),Ub[l].vertex=!0,v.insert(Ub[l]),Ub[l].style+=gc,Wb[l]=new mxCell("",new mxGeometry(Ba+l*Ia,.42*r,.15*(Ia-Ba),.12*(Ia-Ba)),"part=1;"),Wb[l].vertex=!0,v.insert(Wb[l]),Wb[l].style+=gc;break;case "PEOneToMany":v.style+="strokeColor=none;fillColor=none;";var Ka="edgeStyle=none;endArrow=none;part=1;";Ka.style+=f(Ka.style,h,u,Ka);var I=B(h,u),I=""==I?"#000000;":I.replace("strokeColor=",""),mb="shape=triangle;part=1;fillColor="+
+I,mb=mb+f(mb,h,u,v),K=new mxCell("",new mxGeometry(0,0,0,0),Ka);K.geometry.relative=!0;K.edge=!0;ga(0,.5*r,.65*t,.5*r,K,m,L,ca,v,W);for(var M=r/h.numLines,J=[],ob=[],l=0;l<h.numLines;l++)J[l]=new mxCell("",new mxGeometry(0,0,0,0),Ka),J[l].geometry.relative=!0,J[l].edge=!0,ga(.65*t,.5*r,.96*t,(l+.5)*M,J[l],m,L,ca,v,W),ob[l]=new mxCell("",new mxGeometry(.95*t,(l+.2)*M,.05*t,.6*M),mb),ob[l].vertex=!0,v.insert(ob[l]);break;case "PEMultilines":v.style+="strokeColor=none;fillColor=none;";Ka="edgeStyle=none;endArrow=none;part=1;";
+Ka.style+=f(Ka.style,h,u,Ka);I=B(h,u);I=""==I?"#000000;":I.replace("strokeColor=","");mb="shape=triangle;part=1;fillColor="+I;mb+=f(mb,h,u,v);M=r/h.numLines;J=[];ob=[];for(l=0;l<h.numLines;l++)J[l]=new mxCell("",new mxGeometry(0,0,0,0),Ka),J[l].geometry.relative=!0,J[l].edge=!0,ga(0,(l+.5)*M,.96*t,(l+.5)*M,J[l],m,L,ca,v,W),ob[l]=new mxCell("",new mxGeometry(.95*t,(l+.2)*M,.05*t,.6*M),mb),ob[l].vertex=!0,v.insert(ob[l]);break;case "PEVesselBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
+v.value=c(h.Text);switch(h.vesselType){case 1:v.style+="shape=mxgraph.pid.vessels.pressurized_vessel;";break;case 2:v.style+="shape=hexagon;perimeter=hexagonPerimeter2;size=0.10;direction=south;"}v.style+=f(v.style,h,u,v);break;case "PEClosedTankBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=c(h.Text);1==h.peakedRoof&&0==h.stumpType?v.style+="shape=mxgraph.pid.vessels.tank_(conical_roof);":1==h.stumpType&&(v.style+="shape=mxgraph.pid.vessels.tank_(boot);");v.style+=f(v.style,
+h,u,v);break;case "PEColumnBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=c(h.Text);v.style=0==h.columnType?v.style+"shape=mxgraph.pid.vessels.pressurized_vessel;":v.style+"shape=mxgraph.pid.vessels.tank;";v.style+=f(v.style,h,u,v);break;case "PECompressorTurbineBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",new mxGeometry(0,.2*r,t,.6*r),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");
+q.vertex=!0;v.insert(q);q.style+=N;q.style+=f(q.style,h,u,q);N="endSize=4;endArrow=block;endFill=1;";0==h.compressorType?(K=new mxCell("",new mxGeometry(0,0,0,0),""),K.geometry.relative=!0,K.edge=!0,K.style+=N,K.style+=f(K.style,h,u,K),ga(0,0,0,.2*r,K,m,L,ca,v,W),J=new mxCell("",new mxGeometry(0,0,0,0),""),J.geometry.relative=!0,J.edge=!0,J.style+=N,J.style+=f(J.style,h,u,J),ga(t,.67*r,t,r,J,m,L,ca,v,W)):(q.style+="flipH=1;",K=new mxCell("",new mxGeometry(0,0,0,0),""),K.geometry.relative=!0,K.edge=
+!0,K.style+=N,K.style+=f(K.style,h,u,K),ga(0,0,0,.33*r,K,m,L,ca,v,W),J=new mxCell("",new mxGeometry(0,0,0,0),""),J.geometry.relative=!0,J.edge=!0,J.style+=N,J.style+=f(J.style,h,u,J),ga(t,.8*r,t,r,J,m,L,ca,v,W));1==h.centerLineType&&(P=new mxCell("",new mxGeometry(0,0,0,0),""),P.geometry.relative=!0,P.edge=!0,P.style+=N,P.style+=f(P.style,h,u,P),ga(.2*t,.5*r,.8*t,.5*r,P,m,L,ca,v,W));break;case "PEMotorDrivenTurbineBlock":v.style+="shape=ellipse;";v.style+=f(v.style,h,u,v);v.value=c(h.Text);q=new mxCell("",
+new mxGeometry(.2*t,.2*r,.6*t,.6*r),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");q.vertex=!0;v.insert(q);q.style+=f(q.style,h,u,q);break;case "PEIndicatorBlock":case "PEIndicator2Block":case "PESharedIndicatorBlock":case "PEComputerIndicatorBlock":case "PESharedIndicator2Block":case "PEProgrammableIndicatorBlock":switch(e.Class){case "PEIndicatorBlock":v.style+="shape=mxgraph.pid2inst.discInst;";break;case "PEIndicator2Block":v.style+="shape=mxgraph.pid2inst.indicator;indType=inst;";
+break;case "PESharedIndicatorBlock":v.style+="shape=mxgraph.pid2inst.sharedCont;";break;case "PEComputerIndicatorBlock":v.style+="shape=mxgraph.pid2inst.compFunc;";break;case "PESharedIndicator2Block":v.style+="shape=mxgraph.pid2inst.indicator;indType=ctrl;";break;case "PEProgrammableIndicatorBlock":v.style+="shape=mxgraph.pid2inst.progLogCont;"}v.style+=f(v.style,h,u,v);"PEIndicator2Block"==e.Class||"PESharedIndicator2Block"==e.Class?(q=new mxCell("",new mxGeometry(0,0,t,.5*t),"part=1;strokeColor=none;fillColor=none;"),
+q.vertex=!0,v.insert(q),q.style+=k(h.TopText),q.style+=f(q.style,h,u,q),q.value=c(h.TopText),w=new mxCell("",new mxGeometry(0,.5*t,t,.5*t),"part=1;strokeColor=none;fillColor=none;")):(q=new mxCell("",new mxGeometry(0,0,t,.5*r),"part=1;strokeColor=none;fillColor=none;"),q.vertex=!0,v.insert(q),q.style+=k(h.TopText),q.style+=f(q.style,h,u,q),q.value=c(h.TopText),w=new mxCell("",new mxGeometry(0,.5*r,t,.5*r),"part=1;strokeColor=none;fillColor=none;"));w.vertex=!0;v.insert(w);w.style+=k(h.BotText);w.style+=
+f(w.style,h,u,w);w.value=c(h.BotText);switch(h.instrumentLocation){case 0:v.style+="mounting=field;";break;case 1:v.style+="mounting=inaccessible;";break;case 2:v.style+="mounting=room;";break;case 3:v.style+="mounting=local;"}break;case "PEGateValveBlock":case "PEGlobeValveBlock":case "PEAngleValveBlock":case "PEAngleGlobeValveBlock":case "PEPoweredValveBlock":var hc=!1;"PEPoweredValveBlock"==e.Class?1!=h.poweredHandOperated&&(hc=!0):1!=h.handOperated&&(hc=!0);if(hc){var h=n(e).Properties,S=h.BoundingBox,
+sc=S.h;S.h="PEAngleValveBlock"==e.Class||"PEAngleGlobeValveBlock"==e.Class?.7*S.h:.6*S.h;v=new mxCell("",new mxGeometry(Math.round(.6*S.x+0),Math.round(.6*(S.y+sc-S.h)+0),Math.round(.6*S.w),Math.round(.6*S.h)),"");v.vertex=!0;aa(v,e)}if("PEPoweredValveBlock"==e.Class)v.style+="shape=mxgraph.pid2valves.valve;verticalLabelPosition=bottom;verticalAlign=top;",v.style+=f(v.style,h,u,v),1==h.poweredHandOperated?(v.style+="valveType=gate;actuator=powered;",q=new mxCell("",new mxGeometry(.325*t,0,.35*t,.35*
+r),"part=1;strokeColor=none;fillColor=none;spacingTop=2;"),q.vertex=!0,v.insert(q),q.style+="fontSize=6;"+a(h.PoweredText)+d(h.PoweredText)+g(h.PoweredText)+p(h.PoweredText)+y(h.PoweredText)+x(h.PoweredText)+z(h.PoweredText)+F(h.PoweredText),q.style+=f(q.style,h,u,q),q.value=c(h.PoweredText)):v.style+="valveType=gate;";else{v.style+="verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.pid2valves.valve;";v.value=c(h.Text);switch(e.Class){case "PEGateValveBlock":v.style+="valveType=gate;";
+break;case "PEGlobeValveBlock":v.style+="valveType=globe;";break;case "PEAngleValveBlock":v.style+="valveType=angle;";break;case "PEAngleGlobeValveBlock":v.style+="valveType=angleGlobe;flipH=1;"}1==h.handOperated&&(v.style+="actuator=man;")}v.style+=f(v.style,h,u,v);break;case "UI2BrowserBlock":v.style+="shape=mxgraph.mockup.containers.browserWindow;mainText=;";1==h.vScroll&&(E=1==h.hScroll?new mxCell("",new mxGeometry(1,0,20,r-130),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
+new mxCell("",new mxGeometry(1,0,20,r-110),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(-20,110),E.vertex=!0,v.insert(E),v.style+="spacingRight=20;");1==h.hScroll&&(O=1==h.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),
+O.geometry.relative=!0,O.geometry.offset=new mxPoint(0,-20),O.vertex=!0,v.insert(O));v.style+=f(v.style,h,u,v);break;case "UI2WindowBlock":v.style+="shape=mxgraph.mockup.containers.window;mainText=;align=center;verticalAlign=top;spacing=5;"+b(h.Title)+a(h.Title)+d(h.Title);v.value=c(h.Title);1==h.vScroll&&(E=1==h.hScroll?new mxCell("",new mxGeometry(1,0,20,r-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-30),
+"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(-20,30),E.vertex=!0,v.insert(E),v.style+="spacingRight=20;");1==h.hScroll&&(O=1==h.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),O.geometry.relative=!0,O.geometry.offset=
+new mxPoint(0,-20),O.vertex=!0,v.insert(O));v.style+=f(v.style,h,u,v);break;case "UI2DialogBlock":v.style+=k(h.Text);v.value=c(h.Text);q=new mxCell("",new mxGeometry(0,0,t,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.style+=k(h.Title);q.style+=f(q.style,h,u,q);q.value=c(h.Title);w=new mxCell("",new mxGeometry(1,.5,20,20),"part=1;shape=ellipse;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");w.geometry.relative=!0;w.geometry.offset=new mxPoint(-25,-10);w.vertex=!0;q.insert(w);1==
+h.vScroll&&(E=1==h.hScroll?new mxCell("",new mxGeometry(1,0,20,r-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-30),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(-20,30),E.vertex=!0,v.insert(E),v.style+="spacingRight=20;");1==h.hScroll&&(O=1==h.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):
+new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),O.geometry.relative=!0,O.geometry.offset=new mxPoint(0,-20),O.vertex=!0,v.insert(O));v.style+=f(v.style,h,u,v);break;case "UI2AccordionBlock":q=[];M=25;for(l=0;l<=h.Panels-1;l++)q[l]=l<h.Selected-1?new mxCell("",new mxGeometry(0,l*M,t,M),"part=1;fillColor=#000000;fillOpacity=25;"):l==h.Selected-1?new mxCell("",new mxGeometry(0,l*M,t,M),"part=1;fillColor=none;"):new mxCell("",new mxGeometry(0,
+r-(h.Panels-h.Selected)*M+(l-h.Selected)*M,t,M),"part=1;fillColor=#000000;fillOpacity=25;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(h["Panel_"+(l+1)]),q[l].value=c(h["Panel_"+(l+1)]),0>q[l].style.indexOf(";align=")&&(q[l].style+="align=left;spacingLeft=5;");var ha=B(h,u),ha=ha.replace("strokeColor","fillColor2");""==ha&&(ha="fillColor2=#000000;");1==h.vScroll&&(w=1==h.hScroll?new mxCell("",new mxGeometry(1,0,20,r-h.Selected*M-20-(h.Panels-h.Selected)*M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
+new mxCell("",new mxGeometry(1,0,20,r-h.Selected*M-(h.Panels-h.Selected)*M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,h.Selected*M),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,h,u,w));1==h.hScroll&&(E=1==h.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,
+1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20-(h.Panels-h.Selected)*M),E.vertex=!0,v.insert(E),E.style+=ha,E.style+=f(E.style,h,u,E));O=1==h.vScroll?new mxCell("",new mxGeometry(0,h.Selected*M,t-20,r-h.Selected*M-20-(h.Panels-h.Selected)*M),"part=1;fillColor=none;strokeColor=none;"):new mxCell("",new mxGeometry(0,h.Selected*M,t-20,r-h.Selected*M-(h.Panels-h.Selected)*M),"part=1;fillColor=none;strokeColor=none;");
+O.vertex=!0;v.insert(O);O.style+=k(h.Content_1);0>O.style.indexOf(";align=")&&(O.style+="align=left;spacingLeft=5;");O.value=c(h.Content_1);v.style+=f(v.style,h,u,v);break;case "UI2TabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";var q=[],w=[],M=25,Fa=3,T=(t+Fa)/(h.Tabs+1),pa=new mxCell("",new mxGeometry(0,M,t,r-M),"part=1;");pa.vertex=!0;v.insert(pa);pa.style+=f(pa.style,h,u,pa);for(l=0;l<=h.Tabs-1;l++)l==h.Selected-1?(w[l]=new mxCell("",new mxGeometry(10+l*T,0,T-Fa,M),""),w[l].vertex=
+!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(10+l*T,0,T-Fa,M),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=q[l].style+=f(q[l].style,h,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T-Fa,M),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(h["Tab_"+(l+1)]),w[l].value=c(h["Tab_"+(l+1)]),0>w[l].style.indexOf(";align=")&&(w[l].style+="align=left;spacingLeft=2;"),w[l].style+=f(w[l].style,h,u,w[l]);ha=B(h,u);ha=ha.replace("strokeColor","fillColor2");
+""==ha&&(ha="fillColor2=#000000;");1==h.vScroll&&(w=1==h.hScroll?new mxCell("",new mxGeometry(1,0,20,r-20-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,M),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,h,u,w));1==h.hScroll&&
+(E=1==h.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20),E.vertex=!0,v.insert(E),E.style+=ha,E.style+=f(E.style,h,u,E));break;case "UI2TabBar2ContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];w=[];M=25;Fa=3;T=(t+Fa)/h.Tabs;pa=new mxCell("",
+new mxGeometry(0,M,t,r-M),"part=1;");pa.vertex=!0;v.insert(pa);pa.style+=f(pa.style,h,u,pa);for(l=0;l<=h.Tabs-1;l++)l==h.Selected-1?(w[l]=new mxCell("",new mxGeometry(l*T,0,T-Fa,M),""),w[l].vertex=!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(l*T,0,T-Fa,M),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,h,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T-Fa,M),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(h["Tab_"+(l+1)]),w[l].style+=
+f(w[l].style,h,u,w[l]),w[l].value=c(h["Tab_"+(l+1)]),0>w[l].style.indexOf(";align=")&&(w[l].style+="align=left;spacingLeft=2;");ha=B(h,u);ha=ha.replace("strokeColor","fillColor2");""==ha&&(ha="fillColor2=#000000;");1==h.vScroll&&(w=1==h.hScroll?new mxCell("",new mxGeometry(1,0,20,r-20-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r-M),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),
+w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,M),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,h,u,w));1==h.hScroll&&(E=1==h.vScroll?new mxCell("",new mxGeometry(0,1,t-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,t,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20),E.vertex=!0,v.insert(E),E.style+=
+ha,E.style+=f(E.style,h,u,E));break;case "UI2VTabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];w=[];Fa=3;M=25+Fa;T=80;eb=10;pa=new mxCell("",new mxGeometry(T,0,t-T,r),"part=1;");pa.vertex=!0;v.insert(pa);pa.style+=f(pa.style,h,u,pa);for(l=0;l<=h.Tabs-1;l++)l==h.Selected-1?(w[l]=new mxCell("",new mxGeometry(0,eb+l*M,T,M-Fa),""),w[l].vertex=!0,v.insert(w[l]),w[l].style+=k(h["Tab_"+(l+1)]),w[l].style+=f(w[l].style,h,u,w[l])):(q[l]=new mxCell("",new mxGeometry(0,eb+l*M,T,M-Fa),"strokeColor=none;"),
+q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,h,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T,M-Fa),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=k(h["Tab_"+(l+1)])),w[l].value=c(h["Tab_"+(l+1)]),0>w[l].style.indexOf(";align=")&&(w[l].style+="align=left;spacingLeft=2;"),w[l].style+=f(w[l].style,h,u,w[l]);ha=B(h,u);ha=ha.replace("strokeColor","fillColor2");""==ha&&(ha="fillColor2=#000000;");1==h.vScroll&&(w=1==h.hScroll?new mxCell("",new mxGeometry(1,
+0,20,r-20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,r),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),w.geometry.relative=!0,w.geometry.offset=new mxPoint(-20,0),w.vertex=!0,v.insert(w),v.style+="spacingRight=20;",w.style+=ha,w.style+=f(w.style,h,u,w));1==h.hScroll&&(E=1==h.vScroll?new mxCell("",new mxGeometry(T,1,t-20-T,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):
+new mxCell("",new mxGeometry(T,1,t-T,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),E.geometry.relative=!0,E.geometry.offset=new mxPoint(0,-20),E.vertex=!0,v.insert(E),E.style+=ha,E.style+=f(E.style,h,u,E));break;case "UI2CheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";M=r/h.Options;q=[];w=[];for(l=0;l<h.Options;l++)q[l]=new mxCell("",new mxGeometry(0,l*M+.5*M-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),
+q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(h["Option_"+(l+1)]),q[l].style+=f(q[l].style,h,u,q[l]),null!=h.Selected[l+1]&&1==h.Selected[l+1]&&(I=B(h,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2,2,6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,h,u,w[l])),q[l].value=c(h["Option_"+(l+1)]);break;case "UI2HorizontalCheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";
+T=t/h.Options;q=[];w=[];for(l=0;l<h.Options;l++)q[l]=new mxCell("",new mxGeometry(l*T,.5*r-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(h["Option_"+(l+1)]),q[l].style+=f(q[l].style,h,u,q[l]),null!=h.Selected[l+1]&&1==h.Selected[l+1]&&(I=B(h,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2,2,6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),
+w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,h,u,w[l])),q[l].value=c(h["Option_"+(l+1)]);break;case "UI2RadioBlock":v.style+="strokeColor=none;fillColor=none;";M=r/h.Options;q=[];w=[];for(l=0;l<h.Options;l++)q[l]=new mxCell("",new mxGeometry(0,l*M+.5*M-5,10,10),"shape=ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(h["Option_"+(l+1)]),q[l].style+=f(q[l].style,h,u,
+q[l]),null!=h.Selected&&h.Selected==l+1&&(I=B(h,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2.5,2.5,5,5),"shape=ellipse;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,h,u,w[l])),q[l].value=c(h["Option_"+(l+1)]);break;case "UI2HorizontalRadioBlock":v.style+="strokeColor=none;fillColor=none;";T=t/h.Options;q=[];w=[];for(l=0;l<h.Options;l++)q[l]=new mxCell("",new mxGeometry(l*T,.5*r-5,10,10),"shape=ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),
+q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(h["Option_"+(l+1)]),q[l].style+=f(q[l].style,h,u,q[l]),null!=h.Selected&&h.Selected==l+1&&(I=B(h,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),w[l]=new mxCell("",new mxGeometry(2,2,6,6),"shape=ellipse;part=1;"),w[l].vertex=!0,q[l].insert(w[l]),w[l].style+=I,w[l].style+=f(w[l].style,h,u,w[l])),q[l].value=c(h["Option_"+(l+1)]);break;case "UI2HSliderBlock":case "UI2VSliderBlock":v.style+="shape=mxgraph.mockup.forms.horSlider;sliderStyle=basic;handleStyle=handle;";
+"UI2VSliderBlock"==e.Class&&(v.style+="direction=south;");v.style+="sliderPos="+100*h.ScrollVal+";";v.style+=f(v.style,h,u,v);break;case "UI2DatePickerBlock":v.style+="strokeColor=none;fillColor=none;";q=new mxCell("",new mxGeometry(0,0,.6*t,r),"part=1;");q.vertex=!0;v.insert(q);q.style+=k(h.Date);v.style+=f(v.style,h,u,v);q.value=c(h.Date);I=B(h,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");w=new mxCell("",new mxGeometry(.75*t,0,.25*t,r),"part=1;shape=mxgraph.gmdl.calendar;");
+w.vertex=!0;v.insert(w);w.style+=I;w.style+=f(w.style,h,u,w);break;case "UI2SearchBlock":v.style+="shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;align=left;spacingLeft=26;"+b(h.Search)+a(h.Search)+d(h.Search);v.style+=f(v.style,h,u,v);v.value=c(h.Search);break;case "UI2NumericStepperBlock":I=B(h,u);I=I.replace("strokeColor","fillColor");""==I&&(I="fillColor=#000000;");v.style+="shape=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;mainText=;align=left;spacingLeft=8;"+
+I+b(h.Number)+a(h.Number)+d(h.Number);v.style+=f(v.style,h,u,v);v.value=c(h.Number);break;case "UI2ButtonBarBlock":v.style+=f(v.style,h,u,v);q=[];w=[];T=t/h.Buttons;for(l=0;l<=h.Buttons-1;l++)l==h.Selected-1?(w[l]=new mxCell("",new mxGeometry(l*T,0,T,r),""),w[l].vertex=!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(l*T,0,T,r),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=q[l].style+=f(q[l].style,h,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,0,T,r),"fillColor=#000000;fillOpacity=25;"),
+w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(h["Button_"+(l+1)]),w[l].style+=f(w[l].style,h,u,w[l]),w[l].value=c(h["Button_"+(l+1)]);break;case "UI2VerticalButtonBarBlock":v.style+=f(v.style,h,u,v);q=[];w=[];M=r/h.Buttons;for(l=0;l<=h.Buttons-1;l++)l==h.Selected-1?(w[l]=new mxCell("",new mxGeometry(0,l*M,t,M),""),w[l].vertex=!0,v.insert(w[l])):(q[l]=new mxCell("",new mxGeometry(0,l*M,t,M),"strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=f(q[l].style,h,u,q[l]),w[l]=new mxCell("",new mxGeometry(0,
+0,t,M),"fillColor=#000000;fillOpacity=25;"),w[l].vertex=!0,q[l].insert(w[l])),w[l].style+=k(h["Button_"+(l+1)]),w[l].style+=f(w[l].style,h,u,w[l]),w[l].value=c(h["Button_"+(l+1)]);break;case "UI2LinkBarBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);q=[];w=[];T=t/h.Links;for(l=0;l<h.Links;l++)0!=l?(w[l]=new mxCell("",new mxGeometry(l*T,0,T,r),"shape=partialRectangle;top=0;bottom=0;right=0;fillColor=none;"),w[l].style+=f(w[l].style,h,u,w[l])):w[l]=new mxCell("",new mxGeometry(l*
+T,0,T,r),"fillColor=none;strokeColor=none;"),w[l].vertex=!0,v.insert(w[l]),w[l].style+=k(h["Link_"+(l+1)]),w[l].value=c(h["Link_"+(l+1)]);break;case "UI2BreadCrumbsBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=f(v.style,h,u,v);q=[];w=[];T=t/h.Links;for(l=0;l<h.Links;l++)q[l]=new mxCell("",new mxGeometry(l*T,0,T,r),"fillColor=none;strokeColor=none;"),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(h["Link_"+(l+1)]),q[l].value=c(h["Link_"+(l+1)]);for(l=1;l<h.Links;l++)w[l]=new mxCell("",new mxGeometry(l/
+h.Links,.5,6,10),"shape=mxgraph.ios7.misc.right;"),w[l].geometry.relative=!0,w[l].geometry.offset=new mxPoint(-3,-5),w[l].vertex=!0,v.insert(w[l]);break;case "UI2MenuBarBlock":v.style+="strokeColor=none;";v.style+=f(v.style,h,u,v);q=[];T=t/(h.Buttons+1);for(l=0;l<=h.Buttons-1;l++)q[l]=l!=h.Selected-1?new mxCell("",new mxGeometry(0,0,T,r),"strokeColor=none;fillColor=none;resizeHeight=1;"):new mxCell("",new mxGeometry(0,0,T,r),"fillColor=#000000;fillOpacity=25;strokeColor=none;resizeHeight=1;"),q[l].geometry.relative=
+!0,q[l].geometry.offset=new mxPoint(l*T,0),q[l].vertex=!0,v.insert(q[l]),q[l].style+=k(h["MenuItem_"+(l+1)]),q[l].value=c(h["MenuItem_"+(l+1)]);break;case "UI2AtoZBlock":v.style+="fillColor=none;strokeColor=none;"+k(h.Text_0);v.value="0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";break;case "UI2PaginationBlock":v.style+="fillColor=none;strokeColor=none;"+k(h.Text_prev);v.value=c(h.Text_prev)+" ";for(l=0;l<h.Links;l++)v.value+=c(h["Link_"+(l+1)])+" ";v.value+=c(h.Text_next);break;case "UI2ContextMenuBlock":v.style+=
+f(v.style,h,u,v);for(var H=[],cb=[],Ab=[],M=r/h.Lines,N=null,l=0;l<h.Lines;l++)null!=h["Item_"+(l+1)]&&(null==N&&(N=""+b(h["Item_"+(l+1)])+a(h["Item_"+(l+1)])+d(h["Item_"+(l+1)])),H[l]=new mxCell("",new mxGeometry(0,l*r/h.Lines,t,M),"strokeColor=none;fillColor=none;spacingLeft=20;align=left;html=1;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=N,H[l].value=c(h["Item_"+(l+1)])),null!=h.Icons[l+1]&&null!=H[l]&&("dot"==h.Icons[l+1]?(cb[l]=new mxCell("",new mxGeometry(0,.5,8,8),"shape=ellipse;strokeColor=none;"),
+cb[l].geometry.offset=new mxPoint(6,-4)):"check"==h.Icons[l+1]&&(cb[l]=new mxCell("",new mxGeometry(0,.5,7,8),"shape=mxgraph.mscae.general.checkmark;strokeColor=none;"),cb[l].geometry.offset=new mxPoint(6.5,-4)),null!=cb[l]&&(cb[l].geometry.relative=!0,cb[l].vertex=!0,H[l].insert(cb[l]),I=B(h,u),I=I.replace("strokeColor","fillColor"),""==I&&(I="fillColor=#000000;"),cb[l].style+=I)),null!=h["Shortcut_"+(l+1)]&&(null==N&&(N=""+b(h["Shortcut_"+(l+1)])+a(h["Shortcut_"+(l+1)])+d(h["Shortcut_"+(l+1)])),
+Ab[l]=new mxCell("",new mxGeometry(.6*t,l*r/h.Lines,.4*t,M),"strokeColor=none;fillColor=none;spacingRight=3;align=right;html=1;"),Ab[l].vertex=!0,v.insert(Ab[l]),Ab[l].style+=N,Ab[l].value=c(h["Shortcut_"+(l+1)])),null!=h.Dividers[l+1]&&(H[l]=new mxCell("",new mxGeometry(.05*t,l*r/h.Lines,.9*t,M),"shape=line;strokeWidth=0.25;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=B(h,u));break;case "UI2ProgressBarBlock":v.style+="shape=mxgraph.mockup.misc.progressBar;fillColor2=#888888;barPos="+100*h.ScrollVal+
+";";break;case "UI2TooltipSquareBlock":v.style+="html=1;shape=callout;flipV=1;base=13;size=7;position=0.5;position2=0.66;rounded=1;arcSize="+h.RoundCorners+";"+k(h.Tip);v.style+=f(v.style,h,u,v);v.value=c(h.Tip);break;case "UI2CalloutBlock":v.style+="shape=ellipse;"+k(h.Txt);v.style+=f(v.style,h,u,v);v.value=c(h.Txt);break;case "UI2AlertBlock":v.style+=k(h.Txt);v.style+=f(v.style,h,u,v);v.value=c(h.Txt);q=new mxCell("",new mxGeometry(0,0,t,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.style+=
+k(h.Title);q.style+=f(q.style,h,u,q);q.value=c(h.Title);w=new mxCell("",new mxGeometry(1,.5,20,20),"part=1;shape=ellipse;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");w.geometry.relative=!0;w.geometry.offset=new mxPoint(-25,-10);w.vertex=!0;q.insert(w);for(var tc=45*h.Buttons+(10*h.Buttons-1),E=[],l=0;l<h.Buttons;l++)E[l]=new mxCell("",new mxGeometry(.5,1,45,20),"part=1;html=1;"),E[l].geometry.relative=!0,E[l].geometry.offset=new mxPoint(.5*-tc+55*l,-40),E[l].vertex=!0,v.insert(E[l]),E[l].style+=
+k(h["Button_"+(l+1)]),E[l].style+=f(E[l].style,h,u,E[l]),E[l].value=c(h["Button_"+(l+1)]);break;case "UMLClassBlock":if(0==h.Simple){var N=D(h,u),Ca=Math.round(.6*h.TitleHeight),N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+N+"startSize="+Ca+";"+k(h.Title);v.style+=f(v.style,h,u,v);v.value=c(h.Title);
+for(var H=[],ic=[],ya=Ca/r,l=0;l<=h.Attributes;l++)0<l&&(ic[l]=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),ic[l].vertex=!0,v.insert(ic[l])),M=0,l<h.Attributes?(M=h["Text"+(l+1)+"Percent"],ya+=M):M=1-ya,H[l]=new mxCell("",new mxGeometry(0,0,t,Math.round((r-Ca)*M)),"part=1;resizeHeight=0;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
+H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+C(h,u,H[l])+b(h["Text"+(l+1)])+a(h["Text"+(l+1)])+d(h["Text"+(l+1)]),H[l].value=c(h["Text"+(l+1)])}else v.style+=k(h.Title),v.style+=f(v.style,h,u,v),v.value=c(h.Title);break;case "ERDEntityBlock":N=D(h,u);Ca=.6*h.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+
+N+"startSize="+Ca+";"+k(h.Name);v.style+=f(v.style,h,u,v);v.style=h.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+D(h,u);v.value=c(h.Name);H=[];ya=Ca/r;for(l=0;l<h.Fields;l++)M=0,H[l]=new mxCell("",new mxGeometry(0,0,t,.6*h["Field"+(l+1)+"_h"]),"part=1;resizeHeight=0;strokeColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+b(h["Field"+(l+1)])+a(h["Field"+
+(l+1)])+d(h["Field"+(l+1)]),H[l].style=1==h.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;opacity=5;":H[l].style+("fillColor=none;"+C(h,u,H[l])),H[l].value=c(h["Field"+(l+1)]);break;case "ERDEntityBlock2":N=D(h,u);Ca=.6*h.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+N+"startSize="+Ca+";"+k(h.Name);v.style=h.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+
+D(h,u);v.style+=f(v.style,h,u,v);v.value=c(h.Name);var H=[],X=[],ya=Ca,Ga=30;null!=h.Column1&&(Ga=.6*h.Column1);for(l=0;l<h.Fields;l++)M=0,X[l]=new mxCell("",new mxGeometry(0,ya,Ga,.6*h["Key"+(l+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),X[l].vertex=!0,v.insert(X[l]),X[l].style+=N+b(h["Key"+(l+1)])+a(h["Key"+(l+1)])+d(h["Key"+(l+1)]),X[l].style=1==h.AltRows&&
+0!=l%2?X[l].style+"fillColor=#000000;fillOpacity=5;":X[l].style+("fillColor=none;"+C(h,u,X[l])),X[l].value=c(h["Key"+(l+1)]),H[l]=new mxCell("",new mxGeometry(Ga,ya,t-Ga,.6*h["Field"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+b(h["Field"+(l+1)])+a(h["Field"+(l+1)])+d(h["Field"+(l+
+1)]),v.style+=f(v.style,h,u,v),H[l].style=1==h.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;fillOpacity=5;":H[l].style+("fillColor=none;"+C(h,u,H[l])),H[l].value=c(h["Field"+(l+1)]),ya+=.6*h["Key"+(l+1)+"_h"];break;case "ERDEntityBlock3":N=D(h,u);Ca=.6*h.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+N+"startSize="+Ca+";"+k(h.Name);v.style=h.ShadedHeader?v.style+
+"fillColor=#e0e0e0;":v.style+D(h,u);v.style+=f(v.style,h,u,v);v.value=c(h.Name);H=[];X=[];ya=Ca;Ga=30;null!=h.Column1&&(Ga=.6*h.Column1);for(l=0;l<h.Fields;l++)M=0,X[l]=new mxCell("",new mxGeometry(0,ya,Ga,.6*h["Field"+(l+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),X[l].vertex=!0,v.insert(X[l]),X[l].style+=N+b(h["Field"+(l+1)])+a(h["Field"+(l+1)])+d(h["Field"+
+(l+1)]),X[l].style=1==h.AltRows&&0!=l%2?X[l].style+"fillColor=#000000;fillOpacity=5;":X[l].style+("fillColor=none;"+C(h,u,X[l])),X[l].style+=f(X[l].style,h,u,X[l]),X[l].value=c(h["Field"+(l+1)]),H[l]=new mxCell("",new mxGeometry(Ga,ya,t-Ga,.6*h["Type"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),H[l].vertex=!0,v.insert(H[l]),
+H[l].style+=N+b(h["Type"+(l+1)])+a(h["Type"+(l+1)])+d(h["Type"+(l+1)]),H[l].style=1==h.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;fillOpacity=5;":H[l].style+("fillColor=none;"+C(h,u,H[l])),H[l].style+=f(H[l].style,h,u,H[l]),H[l].value=c(h["Type"+(l+1)]),ya+=.6*h["Field"+(l+1)+"_h"];break;case "ERDEntityBlock4":N=D(h,u);Ca=.6*h.Name_h;N=N.replace("fillColor","swimlaneFillColor");""==N&&(N="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"+
+N+"startSize="+Ca+";"+k(h.Name);v.style=h.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+D(h,u);v.style+=f(v.style,h,u,v);v.value=c(h.Name);var H=[],X=[],Ha=[],ya=Ca,Ga=30,bc=40;null!=h.Column1&&(Ga=.6*h.Column1);null!=h.Column2&&(bc=.6*h.Column2);for(l=0;l<h.Fields;l++)M=0,X[l]=new mxCell("",new mxGeometry(0,ya,Ga,.6*h["Key"+(l+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
+X[l].vertex=!0,v.insert(X[l]),X[l].style+=N+b(h["Key"+(l+1)])+a(h["Key"+(l+1)])+d(h["Key"+(l+1)]),X[l].style=1==h.AltRows&&0!=l%2?X[l].style+"fillColor=#000000;fillOpacity=5;":X[l].style+("fillColor=none;"+C(h,u,X[l])),X[l].style+=f(X[l].style,h,u,X[l]),X[l].value=c(h["Key"+(l+1)]),H[l]=new mxCell("",new mxGeometry(Ga,ya,t-Ga-bc,.6*h["Field"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
+H[l].vertex=!0,v.insert(H[l]),H[l].style+=N+b(h["Field"+(l+1)])+a(h["Field"+(l+1)])+d(h["Field"+(l+1)]),H[l].style=1==h.AltRows&&0!=l%2?H[l].style+"fillColor=#000000;fillOpacity=5;":H[l].style+("fillColor=none;"+C(h,u,H[l])),H[l].style+=f(H[l].style,h,u,H[l]),H[l].value=c(h["Field"+(l+1)]),Ha[l]=new mxCell("",new mxGeometry(t-bc,ya,bc,.6*h["Type"+(l+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
+Ha[l].vertex=!0,v.insert(Ha[l]),Ha[l].style+=N+b(h["Type"+(l+1)])+a(h["Type"+(l+1)])+d(h["Type"+(l+1)]),Ha[l].style=1==h.AltRows&&0!=l%2?Ha[l].style+"fillColor=#000000;fillOpacity=5;":Ha[l].style+("fillColor=none;"+C(h,u,Ha[l])),Ha[l].style+=f(Ha[l].style,h,u,Ha[l]),Ha[l].value=c(h["Type"+(l+1)]),ya+=.6*h["Key"+(l+1)+"_h"];break;case "GCPServiceCardApplicationSystemBlock":ea("application_system",t,r,v,h,u);break;case "GCPServiceCardAuthorizationBlock":ea("internal_payment_authorization",t,r,v,h,u);
+break;case "GCPServiceCardBlankBlock":ea("blank",t,r,v,h,u);break;case "GCPServiceCardReallyBlankBlock":ea("blank",t,r,v,h,u);break;case "GCPServiceCardBucketBlock":ea("bucket",t,r,v,h,u);break;case "GCPServiceCardCDNInterconnectBlock":ea("google_network_edge_cache",t,r,v,h,u);break;case "GCPServiceCardCloudDNSBlock":ea("blank",t,r,v,h,u);break;case "GCPServiceCardClusterBlock":ea("cluster",t,r,v,h,u);break;case "GCPServiceCardDiskSnapshotBlock":ea("persistent_disk_snapshot",t,r,v,h,u);break;case "GCPServiceCardEdgePopBlock":ea("google_network_edge_cache",
+t,r,v,h,u);break;case "GCPServiceCardFrontEndPlatformServicesBlock":ea("frontend_platform_services",t,r,v,h,u);break;case "GCPServiceCardGatewayBlock":ea("gateway",t,r,v,h,u);break;case "GCPServiceCardGoogleNetworkBlock":ea("google_network_edge_cache",t,r,v,h,u);break;case "GCPServiceCardImageServicesBlock":ea("image_services",t,r,v,h,u);break;case "GCPServiceCardLoadBalancerBlock":ea("network_load_balancer",t,r,v,h,u);break;case "GCPServiceCardLocalComputeBlock":ea("dedicated_game_server",t,r,v,
+h,u);break;case "GCPServiceCardLocalStorageBlock":ea("persistent_disk_snapshot",t,r,v,h,u);break;case "GCPServiceCardLogsAPIBlock":ea("logs_api",t,r,v,h,u);break;case "GCPServiceCardMemcacheBlock":ea("memcache",t,r,v,h,u);break;case "GCPServiceCardNATBlock":ea("nat",t,r,v,h,u);break;case "GCPServiceCardPaymentFormBlock":ea("external_payment_form",t,r,v,h,u);break;case "GCPServiceCardPushNotificationsBlock":ea("push_notification_service",t,r,v,h,u);break;case "GCPServiceCardScheduledTasksBlock":ea("scheduled_tasks",
+t,r,v,h,u);break;case "GCPServiceCardServiceDiscoveryBlock":ea("service_discovery",t,r,v,h,u);break;case "GCPServiceCardSquidProxyBlock":ea("squid_proxy",t,r,v,h,u);break;case "GCPServiceCardTaskQueuesBlock":ea("task_queues",t,r,v,h,u);break;case "GCPServiceCardVirtualFileSystemBlock":ea("virtual_file_system",t,r,v,h,u);break;case "GCPServiceCardVPNGatewayBlock":ea("gateway",t,r,v,h,u);break;case "GCPInputDatabase":ja("database",1,.9,t,r,v,h,u);break;case "GCPInputRecord":ja("record",1,.66,t,r,v,
+h,u);break;case "GCPInputPayment":ja("payment",1,.8,t,r,v,h,u);break;case "GCPInputGateway":ja("gateway_icon",1,.44,t,r,v,h,u);break;case "GCPInputLocalCompute":ja("compute_engine_icon",1,.89,t,r,v,h,u);break;case "GCPInputBeacon":ja("beacon",.73,1,t,r,v,h,u);break;case "GCPInputStorage":ja("storage",1,.8,t,r,v,h,u);break;case "GCPInputList":ja("list",.89,1,t,r,v,h,u);break;case "GCPInputStream":ja("stream",1,.82,t,r,v,h,u);break;case "GCPInputMobileDevices":ja("mobile_devices",1,.73,t,r,v,h,u);break;
+case "GCPInputCircuitBoard":ja("circuit_board",1,.9,t,r,v,h,u);break;case "GCPInputLive":ja("live",.74,1,t,r,v,h,u);break;case "GCPInputUsers":ja("users",1,.63,t,r,v,h,u);break;case "GCPInputLaptop":ja("laptop",1,.66,t,r,v,h,u);break;case "GCPInputApplication":ja("application",1,.8,t,r,v,h,u);break;case "GCPInputLightbulb":ja("lightbulb",.7,1,t,r,v,h,u);break;case "GCPInputGame":ja("game",1,.54,t,r,v,h,u);break;case "GCPInputDesktop":ja("desktop",1,.9,t,r,v,h,u);break;case "GCPInputDesktopAndMobile":ja("desktop_and_mobile",
+1,.66,t,r,v,h,u);break;case "GCPInputWebcam":ja("webcam",.5,1,t,r,v,h,u);break;case "GCPInputSpeaker":ja("speaker",.7,1,t,r,v,h,u);break;case "GCPInputRetail":ja("retail",1,.89,t,r,v,h,u);break;case "GCPInputReport":ja("report",1,1,t,r,v,h,u);break;case "GCPInputPhone":ja("phone",.64,1,t,r,v,h,u);break;case "GCPInputBlank":ja("transparent",1,1,t,r,v,h,u)}return v}var pb=["AEUSBBlock","AGSCutandpasteBlock","iOSDeviceiPadLandscape","iOSDeviceiPadProLandscape"],Xb=["fpDoor"],la={None:"none",Arrow:"block;endFill=1",
"Hollow Arrow":"block;endFill=0","Open Arrow":"open;","CFN ERD Zero Or More Arrow":"ERzeroToMany;startSize=10","CFN ERD One Or More Arrow":"ERoneToMany;startSize=10","CFN ERD Many Arrow":"ERmany;startSize=10","CFN ERD Exactly One Arrow":"ERmandOne;startSize=10","CFN ERD Zero Or One Arrow":"ERzeroToOne;startSize=10","CFN ERD One Arrow":"ERone;startSize=16",Generalization:"block;endFill=0;startSize=12","Big Open Arrow":"open;startSize=10",Asynch1:"openAsync;flipH=1;startSize=10",Asynch2:"openAsync;startSize=10",
Aggregation:"diamond;endFill=0;startSize=16",Composition:"diamond;endFill=1;startSize=16",BlockEnd:"none;endFill=1;startSize=16"},bb={DefaultTextBlockNew:"text;strokeColor=none;fillColor=none",DefaultTextBlock:"text;strokeColor=none;fillColor=none",DefaultSquareBlock:"",DefaultNoteBlock:"shape=note;size=15",DefaultNoteBlockV2:"shape=note;size=15",HotspotBlock:"strokeColor=none;opacity=50",ImageSearchBlock2:"shape=image",UserImage2Block:"shape=image",ProcessBlock:"",DecisionBlock:"rhombus",TerminatorBlock:"rounded=1;arcSize=50",
PredefinedProcessBlock:"shape=process",DocumentBlock:"shape=document",MultiDocumentBlock:"shape=mxgraph.flowchart.multi-document",ManualInputBlock:"shape=manualInput;size=15",PreparationBlock:"shape=hexagon;perimeter=hexagonPerimeter2",DataBlock:"shape=parallelogram;perimeter=parallelogramPerimeter;anchorPointDirection=0",DataBlockNew:"shape=parallelogram;perimeter=parallelogramPerimeter;anchorPointDirection=0",DatabaseBlock:"shape=cylinder;size=0.1;anchorPointDirection=0;boundedLbl=1;",DirectAccessStorageBlock:"shape=cylinder;direction=south;size=0.1;anchorPointDirection=0;boundedLbl=1;",
@@ -704,46 +704,46 @@ GCPInputPhone:"mxCompositeShape",GCPInputBlank:"mxCompositeShape",SMHome:"shape=
SMPrint:"shape=mxgraph.sitemap.print;strokeColor=#000000;fillColor=#E6E6E6",SMScript:"shape=mxgraph.sitemap.script;strokeColor=#000000;fillColor=#E6E6E6",SMSearch:"shape=mxgraph.sitemap.search;strokeColor=#000000;fillColor=#E6E6E6",SMSettings:"shape=mxgraph.sitemap.settings;strokeColor=#000000;fillColor=#E6E6E6",SMSitemap:"shape=mxgraph.sitemap.sitemap;strokeColor=#000000;fillColor=#E6E6E6",SMSuccess:"shape=mxgraph.sitemap.success;strokeColor=#000000;fillColor=#E6E6E6",SMVideo:"shape=mxgraph.sitemap.video;strokeColor=#000000;fillColor=#E6E6E6",
SMAudio:"shape=mxgraph.sitemap.audio;strokeColor=#000000;fillColor=#E6E6E6",SMBlog:"shape=mxgraph.sitemap.blog;strokeColor=#000000;fillColor=#E6E6E6",SMCalendar:"shape=mxgraph.sitemap.calendar;strokeColor=#000000;fillColor=#E6E6E6",SMChart:"shape=mxgraph.sitemap.chart;strokeColor=#000000;fillColor=#E6E6E6",SMCloud:"shape=mxgraph.sitemap.cloud;strokeColor=#000000;fillColor=#E6E6E6",SMDocument:"shape=mxgraph.sitemap.document;strokeColor=#000000;fillColor=#E6E6E6",SMDownload:"shape=mxgraph.sitemap.download;strokeColor=#000000;fillColor=#E6E6E6",
SMError:"shape=mxgraph.sitemap.error;strokeColor=#000000;fillColor=#E6E6E6",SMForm:"shape=mxgraph.sitemap.form;strokeColor=#000000;fillColor=#E6E6E6",SMGame:"shape=mxgraph.sitemap.game;strokeColor=#000000;fillColor=#E6E6E6",SMJobs:"shape=mxgraph.sitemap.jobs;strokeColor=#000000;fillColor=#E6E6E6",SMLucid:"shape=mxgraph.sitemap.home;strokeColor=#000000;fillColor=#E6E6E6",SMNewspress:"shape=mxgraph.sitemap.news;strokeColor=#000000;fillColor=#E6E6E6",SMPhoto:"shape=mxgraph.sitemap.photo;strokeColor=#000000;fillColor=#E6E6E6",
-SMPortfolio:"shape=mxgraph.sitemap.portfolio;strokeColor=#000000;fillColor=#E6E6E6",SMPricing:"shape=mxgraph.sitemap.pricing;strokeColor=#000000;fillColor=#E6E6E6",SMProfile:"shape=mxgraph.sitemap.profile;strokeColor=#000000;fillColor=#E6E6E6",SMSlideshow:"shape=mxgraph.sitemap.slideshow;strokeColor=#000000;fillColor=#E6E6E6",SMUpload:"shape=mxgraph.sitemap.upload;strokeColor=#000000;fillColor=#E6E6E6"},Db=function(a,b,d){0>mxUtils.indexOf(d,a)&&d.push(a);if(a in b){var h=b[a];h.id=a;if(null!=h.Members)for(var p in h.Members)d=
-Db(p,b,d)}return d};LucidImporter.importState=function(a){function b(a){for(var b in a.Pages)h.push(a.Pages[b]);h.sort(function(a,b){return a.Properties.Order<b.Properties.Order?-1:a.Properties.Order>b.Properties.Order?1:0})}var d=['<?xml version="1.0" encoding="UTF-8"?>',"<mxfile>"],h=[];null!=a.state?b(JSON.parse(a.state)):null==a.Page&&null!=a.Pages?b(a):h.push(a);a=ba();for(var p=new mxCodec,c=0;c<h.length;c++){d.push("<diagram");null!=h[c].Properties&&null!=h[c].Properties.Title&&d.push(' name="'+
-mxUtils.htmlEntities(h[c].Properties.Title)+'"');ka(a,h[c],null,null,null,!0);var e=p.encode(a.getModel());a.getModel().clear();d.push(">"+Graph.compress(mxUtils.getXml(e))+"</diagram>")}d.push("</mxfile>");return d.join("")}})();function VsdxExport(c){function n(a,b){var d={"[Content_Types].xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns='http://schemas.openxmlformats.org/package/2006/content-types'><Default Extension='png' ContentType='image/png'/><Default Extension='jpg' ContentType='image/jpeg'/><Default Extension='jpeg' ContentType='image/jpeg'/><Default Extension='svg' ContentType='image/svg+xml'/><Default Extension='bmp' ContentType='image/bmp'/><Default Extension='gif' ContentType='image/gif'/><Default Extension='emf' ContentType='image/x-emf' /><Default Extension='rels' ContentType='application/vnd.openxmlformats-package.relationships+xml' /><Default Extension='xml' ContentType='application/xml' /><Override PartName='/docProps/app.xml' ContentType='application/vnd.openxmlformats-officedocument.extended-properties+xml' /><Override PartName='/docProps/core.xml' ContentType='application/vnd.openxmlformats-package.core-properties+xml' /><Override PartName='/docProps/custom.xml' ContentType='application/vnd.openxmlformats-officedocument.custom-properties+xml' /><Override PartName='/visio/document.xml' ContentType='application/vnd.ms-visio.drawing.main+xml' /><Override PartName='/visio/masters/masters.xml' ContentType='application/vnd.ms-visio.masters+xml' /><Override PartName='/visio/masters/master1.xml' ContentType='application/vnd.ms-visio.master+xml'/><Override PartName='/visio/pages/page1.xml' ContentType='application/vnd.ms-visio.page+xml' /><Override PartName='/visio/pages/pages.xml' ContentType='application/vnd.ms-visio.pages+xml' /><Override PartName='/visio/windows.xml' ContentType='application/vnd.ms-visio.windows+xml' /></Types>",
+SMPortfolio:"shape=mxgraph.sitemap.portfolio;strokeColor=#000000;fillColor=#E6E6E6",SMPricing:"shape=mxgraph.sitemap.pricing;strokeColor=#000000;fillColor=#E6E6E6",SMProfile:"shape=mxgraph.sitemap.profile;strokeColor=#000000;fillColor=#E6E6E6",SMSlideshow:"shape=mxgraph.sitemap.slideshow;strokeColor=#000000;fillColor=#E6E6E6",SMUpload:"shape=mxgraph.sitemap.upload;strokeColor=#000000;fillColor=#E6E6E6"},Db=function(a,b,d){0>mxUtils.indexOf(d,a)&&d.push(a);if(a in b){var g=b[a];g.id=a;if(null!=g.Members)for(var p in g.Members)d=
+Db(p,b,d)}return d};LucidImporter.importState=function(a){function b(a){for(var b in a.Pages)g.push(a.Pages[b]);g.sort(function(a,b){return a.Properties.Order<b.Properties.Order?-1:a.Properties.Order>b.Properties.Order?1:0})}var d=['<?xml version="1.0" encoding="UTF-8"?>',"<mxfile>"],g=[];null!=a.state?b(JSON.parse(a.state)):null==a.Page&&null!=a.Pages?b(a):g.push(a);a=ia();for(var p=new mxCodec,c=0;c<g.length;c++){d.push("<diagram");null!=g[c].Properties&&null!=g[c].Properties.Title&&d.push(' name="'+
+mxUtils.htmlEntities(g[c].Properties.Title)+'"');ba(a,g[c],null,null,null,!0);var e=p.encode(a.getModel());a.getModel().clear();d.push(">"+Graph.compress(mxUtils.getXml(e))+"</diagram>")}d.push("</mxfile>");return d.join("")}})();function VsdxExport(c){function n(a,b){var d={"[Content_Types].xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns='http://schemas.openxmlformats.org/package/2006/content-types'><Default Extension='png' ContentType='image/png'/><Default Extension='jpg' ContentType='image/jpeg'/><Default Extension='jpeg' ContentType='image/jpeg'/><Default Extension='svg' ContentType='image/svg+xml'/><Default Extension='bmp' ContentType='image/bmp'/><Default Extension='gif' ContentType='image/gif'/><Default Extension='emf' ContentType='image/x-emf' /><Default Extension='rels' ContentType='application/vnd.openxmlformats-package.relationships+xml' /><Default Extension='xml' ContentType='application/xml' /><Override PartName='/docProps/app.xml' ContentType='application/vnd.openxmlformats-officedocument.extended-properties+xml' /><Override PartName='/docProps/core.xml' ContentType='application/vnd.openxmlformats-package.core-properties+xml' /><Override PartName='/docProps/custom.xml' ContentType='application/vnd.openxmlformats-officedocument.custom-properties+xml' /><Override PartName='/visio/document.xml' ContentType='application/vnd.ms-visio.drawing.main+xml' /><Override PartName='/visio/masters/masters.xml' ContentType='application/vnd.ms-visio.masters+xml' /><Override PartName='/visio/masters/master1.xml' ContentType='application/vnd.ms-visio.master+xml'/><Override PartName='/visio/pages/page1.xml' ContentType='application/vnd.ms-visio.page+xml' /><Override PartName='/visio/pages/pages.xml' ContentType='application/vnd.ms-visio.pages+xml' /><Override PartName='/visio/windows.xml' ContentType='application/vnd.ms-visio.windows+xml' /></Types>",
"_rels/.rels":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Relationships xmlns='http://schemas.openxmlformats.org/package/2006/relationships'><Relationship Id='rId1' Type='http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties' Target='docProps/core.xml' /><Relationship Id='rId2' Type='http://schemas.microsoft.com/visio/2010/relationships/document' Target='visio/document.xml' /><Relationship Id='rId3' Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties' Target='docProps/custom.xml' /><Relationship Id='rId4' Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties' Target='docProps/app.xml' /></Relationships>",
"docProps/app.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Properties xmlns=\'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\' xmlns:vt=\'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\'><Application>Microsoft Visio</Application><AppVersion>15.0000</AppVersion><Template /><Manager /><Company /><HyperlinkBase /></Properties>',"docProps/core.xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><cp:coreProperties xmlns:cp='http://schemas.openxmlformats.org/package/2006/metadata/core-properties' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:dcterms='http://purl.org/dc/terms/' xmlns:dcmitype='http://purl.org/dc/dcmitype/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><dc:title /><dc:subject /><dc:creator /><cp:keywords /><dc:description /><cp:category /><dc:language>en-US</dc:language></cp:coreProperties>",
"docProps/custom.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Properties xmlns=\'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\' xmlns:vt=\'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\' />',"visio/document.xml":"<?xml version='1.0' encoding='utf-8' ?><VisioDocument xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve'><DocumentSettings TopPage='0' DefaultTextStyle='3' DefaultLineStyle='3' DefaultFillStyle='3' DefaultGuideStyle='4'><GlueSettings>9</GlueSettings><SnapSettings>65847</SnapSettings><SnapExtensions>34</SnapExtensions><SnapAngles/><DynamicGridEnabled>1</DynamicGridEnabled><ProtectStyles>0</ProtectStyles><ProtectShapes>0</ProtectShapes><ProtectMasters>0</ProtectMasters><ProtectBkgnds>0</ProtectBkgnds></DocumentSettings><Colors><ColorEntry IX='24' RGB='#000000'/><ColorEntry IX='25' RGB='#FFFFFF'/><ColorEntry IX='26' RGB='#FF0000'/><ColorEntry IX='27' RGB='#00FF00'/><ColorEntry IX='28' RGB='#0000FF'/><ColorEntry IX='29' RGB='#FFFF00'/><ColorEntry IX='30' RGB='#FF00FF'/><ColorEntry IX='31' RGB='#00FFFF'/><ColorEntry IX='32' RGB='#800000'/><ColorEntry IX='33' RGB='#008000'/><ColorEntry IX='34' RGB='#000080'/><ColorEntry IX='35' RGB='#808000'/><ColorEntry IX='36' RGB='#800080'/><ColorEntry IX='37' RGB='#008080'/><ColorEntry IX='38' RGB='#C0C0C0'/><ColorEntry IX='39' RGB='#E6E6E6'/><ColorEntry IX='40' RGB='#CDCDCD'/><ColorEntry IX='41' RGB='#B3B3B3'/><ColorEntry IX='42' RGB='#9A9A9A'/><ColorEntry IX='43' RGB='#808080'/><ColorEntry IX='44' RGB='#666666'/><ColorEntry IX='45' RGB='#4D4D4D'/><ColorEntry IX='46' RGB='#333333'/><ColorEntry IX='47' RGB='#1A1A1A'/><ColorEntry IX='48' RGB='#7F7F7F'/><ColorEntry IX='49' RGB='#99004D'/><ColorEntry IX='50' RGB='#FF0080'/><ColorEntry IX='51' RGB='#CC0066'/></Colors><FaceNames><FaceName NameU='Calibri' UnicodeRanges='-536859905 -1073732485 9 0' CharSets='536871423 0' Panose='2 15 5 2 2 2 4 3 2 4' Flags='325'/></FaceNames><StyleSheets><StyleSheet ID='0' NameU='No Style' IsCustomNameU='1' Name='No Style' IsCustomName='1'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='0.01041666666666667'/><Cell N='LineColor' V='0'/><Cell N='LinePattern' V='1'/><Cell N='Rounding' V='0'/><Cell N='EndArrowSize' V='2'/><Cell N='BeginArrow' V='0'/><Cell N='EndArrow' V='0'/><Cell N='LineCap' V='0'/><Cell N='BeginArrowSize' V='2'/><Cell N='LineColorTrans' V='0'/><Cell N='CompoundType' V='0'/><Cell N='FillForegnd' V='1'/><Cell N='FillBkgnd' V='0'/><Cell N='FillPattern' V='1'/><Cell N='ShdwForegnd' V='0'/><Cell N='ShdwPattern' V='0'/><Cell N='FillForegndTrans' V='0'/><Cell N='FillBkgndTrans' V='0'/><Cell N='ShdwForegndTrans' V='0'/><Cell N='ShapeShdwType' V='0'/><Cell N='ShapeShdwOffsetX' V='0'/><Cell N='ShapeShdwOffsetY' V='0'/><Cell N='ShapeShdwObliqueAngle' V='0'/><Cell N='ShapeShdwScaleFactor' V='1'/><Cell N='ShapeShdwBlur' V='0'/><Cell N='ShapeShdwShow' V='0'/><Cell N='LeftMargin' V='0'/><Cell N='RightMargin' V='0'/><Cell N='TopMargin' V='0'/><Cell N='BottomMargin' V='0'/><Cell N='VerticalAlign' V='1'/><Cell N='TextBkgnd' V='0'/><Cell N='DefaultTabStop' V='0.5'/><Cell N='TextDirection' V='0'/><Cell N='TextBkgndTrans' V='0'/><Cell N='LockWidth' V='0'/><Cell N='LockHeight' V='0'/><Cell N='LockMoveX' V='0'/><Cell N='LockMoveY' V='0'/><Cell N='LockAspect' V='0'/><Cell N='LockDelete' V='0'/><Cell N='LockBegin' V='0'/><Cell N='LockEnd' V='0'/><Cell N='LockRotate' V='0'/><Cell N='LockCrop' V='0'/><Cell N='LockVtxEdit' V='0'/><Cell N='LockTextEdit' V='0'/><Cell N='LockFormat' V='0'/><Cell N='LockGroup' V='0'/><Cell N='LockCalcWH' V='0'/><Cell N='LockSelect' V='0'/><Cell N='LockCustProp' V='0'/><Cell N='LockFromGroupFormat' V='0'/><Cell N='LockThemeColors' V='0'/><Cell N='LockThemeEffects' V='0'/><Cell N='LockThemeConnectors' V='0'/><Cell N='LockThemeFonts' V='0'/><Cell N='LockThemeIndex' V='0'/><Cell N='LockReplace' V='0'/><Cell N='LockVariation' V='0'/><Cell N='NoObjHandles' V='0'/><Cell N='NonPrinting' V='0'/><Cell N='NoCtlHandles' V='0'/><Cell N='NoAlignBox' V='0'/><Cell N='UpdateAlignBox' V='0'/><Cell N='HideText' V='0'/><Cell N='DynFeedback' V='0'/><Cell N='GlueType' V='0'/><Cell N='WalkPreference' V='0'/><Cell N='BegTrigger' V='0' F='No Formula'/><Cell N='EndTrigger' V='0' F='No Formula'/><Cell N='ObjType' V='0'/><Cell N='Comment' V=''/><Cell N='IsDropSource' V='0'/><Cell N='NoLiveDynamics' V='0'/><Cell N='LocalizeMerge' V='0'/><Cell N='NoProofing' V='0'/><Cell N='Calendar' V='0'/><Cell N='LangID' V='en-US'/><Cell N='ShapeKeywords' V=''/><Cell N='DropOnPageScale' V='1'/><Cell N='TheData' V='0' F='No Formula'/><Cell N='TheText' V='0' F='No Formula'/><Cell N='EventDblClick' V='0' F='No Formula'/><Cell N='EventXFMod' V='0' F='No Formula'/><Cell N='EventDrop' V='0' F='No Formula'/><Cell N='EventMultiDrop' V='0' F='No Formula'/><Cell N='HelpTopic' V=''/><Cell N='Copyright' V=''/><Cell N='LayerMember' V=''/><Cell N='XRulerDensity' V='32'/><Cell N='YRulerDensity' V='32'/><Cell N='XRulerOrigin' V='0'/><Cell N='YRulerOrigin' V='0'/><Cell N='XGridDensity' V='8'/><Cell N='YGridDensity' V='8'/><Cell N='XGridSpacing' V='0'/><Cell N='YGridSpacing' V='0'/><Cell N='XGridOrigin' V='0'/><Cell N='YGridOrigin' V='0'/><Cell N='Gamma' V='1'/><Cell N='Contrast' V='0.5'/><Cell N='Brightness' V='0.5'/><Cell N='Sharpen' V='0'/><Cell N='Blur' V='0'/><Cell N='Denoise' V='0'/><Cell N='Transparency' V='0'/><Cell N='SelectMode' V='1'/><Cell N='DisplayMode' V='2'/><Cell N='IsDropTarget' V='0'/><Cell N='IsSnapTarget' V='1'/><Cell N='IsTextEditTarget' V='1'/><Cell N='DontMoveChildren' V='0'/><Cell N='ShapePermeableX' V='0'/><Cell N='ShapePermeableY' V='0'/><Cell N='ShapePermeablePlace' V='0'/><Cell N='Relationships' V='0'/><Cell N='ShapeFixedCode' V='0'/><Cell N='ShapePlowCode' V='0'/><Cell N='ShapeRouteStyle' V='0'/><Cell N='ShapePlaceStyle' V='0'/><Cell N='ConFixedCode' V='0'/><Cell N='ConLineJumpCode' V='0'/><Cell N='ConLineJumpStyle' V='0'/><Cell N='ConLineJumpDirX' V='0'/><Cell N='ConLineJumpDirY' V='0'/><Cell N='ShapePlaceFlip' V='0'/><Cell N='ConLineRouteExt' V='0'/><Cell N='ShapeSplit' V='0'/><Cell N='ShapeSplittable' V='0'/><Cell N='DisplayLevel' V='0'/><Cell N='ResizePage' V='0'/><Cell N='EnableGrid' V='0'/><Cell N='DynamicsOff' V='0'/><Cell N='CtrlAsInput' V='0'/><Cell N='AvoidPageBreaks' V='0'/><Cell N='PlaceStyle' V='0'/><Cell N='RouteStyle' V='0'/><Cell N='PlaceDepth' V='0'/><Cell N='PlowCode' V='0'/><Cell N='LineJumpCode' V='1'/><Cell N='LineJumpStyle' V='0'/><Cell N='PageLineJumpDirX' V='0'/><Cell N='PageLineJumpDirY' V='0'/><Cell N='LineToNodeX' V='0.125'/><Cell N='LineToNodeY' V='0.125'/><Cell N='BlockSizeX' V='0.25'/><Cell N='BlockSizeY' V='0.25'/><Cell N='AvenueSizeX' V='0.375'/><Cell N='AvenueSizeY' V='0.375'/><Cell N='LineToLineX' V='0.125'/><Cell N='LineToLineY' V='0.125'/><Cell N='LineJumpFactorX' V='0.66666666666667'/><Cell N='LineJumpFactorY' V='0.66666666666667'/><Cell N='LineAdjustFrom' V='0'/><Cell N='LineAdjustTo' V='0'/><Cell N='PlaceFlip' V='0'/><Cell N='LineRouteExt' V='0'/><Cell N='PageShapeSplit' V='0'/><Cell N='PageLeftMargin' V='0.25'/><Cell N='PageRightMargin' V='0.25'/><Cell N='PageTopMargin' V='0.25'/><Cell N='PageBottomMargin' V='0.25'/><Cell N='ScaleX' V='1'/><Cell N='ScaleY' V='1'/><Cell N='PagesX' V='1'/><Cell N='PagesY' V='1'/><Cell N='CenterX' V='0'/><Cell N='CenterY' V='0'/><Cell N='OnPage' V='0'/><Cell N='PrintGrid' V='0'/><Cell N='PrintPageOrientation' V='1'/><Cell N='PaperKind' V='1'/><Cell N='PaperSource' V='7'/><Cell N='QuickStyleLineColor' V='100'/><Cell N='QuickStyleFillColor' V='100'/><Cell N='QuickStyleShadowColor' V='100'/><Cell N='QuickStyleFontColor' V='100'/><Cell N='QuickStyleLineMatrix' V='100'/><Cell N='QuickStyleFillMatrix' V='100'/><Cell N='QuickStyleEffectsMatrix' V='100'/><Cell N='QuickStyleFontMatrix' V='100'/><Cell N='QuickStyleType' V='0'/><Cell N='QuickStyleVariation' V='0'/><Cell N='LineGradientDir' V='0'/><Cell N='LineGradientAngle' V='1.5707963267949'/><Cell N='FillGradientDir' V='0'/><Cell N='FillGradientAngle' V='1.5707963267949'/><Cell N='LineGradientEnabled' V='0'/><Cell N='FillGradientEnabled' V='0'/><Cell N='RotateGradientWithShape' V='1'/><Cell N='UseGroupGradient' V='0'/><Cell N='BevelTopType' V='0'/><Cell N='BevelTopWidth' V='0'/><Cell N='BevelTopHeight' V='0'/><Cell N='BevelBottomType' V='0'/><Cell N='BevelBottomWidth' V='0'/><Cell N='BevelBottomHeight' V='0'/><Cell N='BevelDepthColor' V='1'/><Cell N='BevelDepthSize' V='0'/><Cell N='BevelContourColor' V='0'/><Cell N='BevelContourSize' V='0'/><Cell N='BevelMaterialType' V='0'/><Cell N='BevelLightingType' V='0'/><Cell N='BevelLightingAngle' V='0'/><Cell N='RotationXAngle' V='0'/><Cell N='RotationYAngle' V='0'/><Cell N='RotationZAngle' V='0'/><Cell N='RotationType' V='0'/><Cell N='Perspective' V='0'/><Cell N='DistanceFromGround' V='0'/><Cell N='KeepTextFlat' V='0'/><Cell N='ReflectionTrans' V='0'/><Cell N='ReflectionSize' V='0'/><Cell N='ReflectionDist' V='0'/><Cell N='ReflectionBlur' V='0'/><Cell N='GlowColor' V='1'/><Cell N='GlowColorTrans' V='0'/><Cell N='GlowSize' V='0'/><Cell N='SoftEdgesSize' V='0'/><Cell N='SketchSeed' V='0'/><Cell N='SketchEnabled' V='0'/><Cell N='SketchAmount' V='5'/><Cell N='SketchLineWeight' V='0.04166666666666666' U='PT'/><Cell N='SketchLineChange' V='0.14'/><Cell N='SketchFillChange' V='0.1'/><Cell N='ColorSchemeIndex' V='0'/><Cell N='EffectSchemeIndex' V='0'/><Cell N='ConnectorSchemeIndex' V='0'/><Cell N='FontSchemeIndex' V='0'/><Cell N='ThemeIndex' V='0'/><Cell N='VariationColorIndex' V='0'/><Cell N='VariationStyleIndex' V='0'/><Cell N='EmbellishmentIndex' V='0'/><Cell N='ReplaceLockShapeData' V='0'/><Cell N='ReplaceLockText' V='0'/><Cell N='ReplaceLockFormat' V='0'/><Cell N='ReplaceCopyCells' V='0' U='BOOL' F='No Formula'/><Cell N='PageWidth' V='0' F='No Formula'/><Cell N='PageHeight' V='0' F='No Formula'/><Cell N='ShdwOffsetX' V='0' F='No Formula'/><Cell N='ShdwOffsetY' V='0' F='No Formula'/><Cell N='PageScale' V='0' U='IN_F' F='No Formula'/><Cell N='DrawingScale' V='0' U='IN_F' F='No Formula'/><Cell N='DrawingSizeType' V='0' F='No Formula'/><Cell N='DrawingScaleType' V='0' F='No Formula'/><Cell N='InhibitSnap' V='0' F='No Formula'/><Cell N='PageLockReplace' V='0' U='BOOL' F='No Formula'/><Cell N='PageLockDuplicate' V='0' U='BOOL' F='No Formula'/><Cell N='UIVisibility' V='0' F='No Formula'/><Cell N='ShdwType' V='0' F='No Formula'/><Cell N='ShdwObliqueAngle' V='0' F='No Formula'/><Cell N='ShdwScaleFactor' V='0' F='No Formula'/><Cell N='DrawingResizeType' V='0' F='No Formula'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Calibri'/><Cell N='Color' V='0'/><Cell N='Style' V='0'/><Cell N='Case' V='0'/><Cell N='Pos' V='0'/><Cell N='FontScale' V='1'/><Cell N='Size' V='0.1666666666666667'/><Cell N='DblUnderline' V='0'/><Cell N='Overline' V='0'/><Cell N='Strikethru' V='0'/><Cell N='DoubleStrikethrough' V='0'/><Cell N='Letterspace' V='0'/><Cell N='ColorTrans' V='0'/><Cell N='AsianFont' V='0'/><Cell N='ComplexScriptFont' V='0'/><Cell N='ComplexScriptSize' V='-1'/><Cell N='LangID' V='en-US'/></Row></Section><Section N='Paragraph'><Row IX='0'><Cell N='IndFirst' V='0'/><Cell N='IndLeft' V='0'/><Cell N='IndRight' V='0'/><Cell N='SpLine' V='-1.2'/><Cell N='SpBefore' V='0'/><Cell N='SpAfter' V='0'/><Cell N='HorzAlign' V='1'/><Cell N='Bullet' V='0'/><Cell N='BulletStr' V=''/><Cell N='BulletFont' V='0'/><Cell N='BulletFontSize' V='-1'/><Cell N='TextPosAfterBullet' V='0'/><Cell N='Flags' V='0'/></Row></Section><Section N='Tabs'><Row IX='0'/></Section><Section N='LineGradient'><Row IX='0'><Cell N='GradientStopColor' V='1'/><Cell N='GradientStopColorTrans' V='0'/><Cell N='GradientStopPosition' V='0'/></Row></Section><Section N='FillGradient'><Row IX='0'><Cell N='GradientStopColor' V='1'/><Cell N='GradientStopColorTrans' V='0'/><Cell N='GradientStopPosition' V='0'/></Row></Section></StyleSheet><StyleSheet ID='1' NameU='Text Only' IsCustomNameU='1' Name='Text Only' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='Themed' F='Inh'/><Cell N='LineColor' V='Themed' F='Inh'/><Cell N='LinePattern' V='Themed' F='Inh'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Cell N='FillForegnd' V='Themed' F='Inh'/><Cell N='FillBkgnd' V='Themed' F='Inh'/><Cell N='FillPattern' V='Themed' F='Inh'/><Cell N='ShdwForegnd' V='Themed' F='Inh'/><Cell N='ShdwPattern' V='Themed' F='Inh'/><Cell N='FillForegndTrans' V='Themed' F='Inh'/><Cell N='FillBkgndTrans' V='Themed' F='Inh'/><Cell N='ShdwForegndTrans' V='Themed' F='Inh'/><Cell N='ShapeShdwType' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetX' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetY' V='Themed' F='Inh'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='Inh'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='Inh'/><Cell N='ShapeShdwBlur' V='Themed' F='Inh'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LeftMargin' V='0'/><Cell N='RightMargin' V='0'/><Cell N='TopMargin' V='0'/><Cell N='BottomMargin' V='0'/><Cell N='VerticalAlign' V='0'/><Cell N='TextBkgnd' V='0'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='Inh'/><Cell N='LineGradientAngle' V='Themed' F='Inh'/><Cell N='FillGradientDir' V='Themed' F='Inh'/><Cell N='FillGradientAngle' V='Themed' F='Inh'/><Cell N='LineGradientEnabled' V='Themed' F='Inh'/><Cell N='FillGradientEnabled' V='Themed' F='Inh'/><Cell N='RotateGradientWithShape' V='Themed' F='Inh'/><Cell N='UseGroupGradient' V='Themed' F='Inh'/><Section N='Paragraph'><Row IX='0'><Cell N='IndFirst' V='0' F='Inh'/><Cell N='IndLeft' V='0' F='Inh'/><Cell N='IndRight' V='0' F='Inh'/><Cell N='SpLine' V='-1.2' F='Inh'/><Cell N='SpBefore' V='0' F='Inh'/><Cell N='SpAfter' V='0' F='Inh'/><Cell N='HorzAlign' V='0'/><Cell N='Bullet' V='0' F='Inh'/><Cell N='BulletStr' V='' F='Inh'/><Cell N='BulletFont' V='0' F='Inh'/><Cell N='BulletFontSize' V='-1' F='Inh'/><Cell N='TextPosAfterBullet' V='0' F='Inh'/><Cell N='Flags' V='0' F='Inh'/></Row></Section></StyleSheet><StyleSheet ID='2' NameU='None' IsCustomNameU='1' Name='None' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='Themed' F='Inh'/><Cell N='LineColor' V='Themed' F='Inh'/><Cell N='LinePattern' V='0'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Cell N='FillForegnd' V='Themed' F='Inh'/><Cell N='FillBkgnd' V='Themed' F='Inh'/><Cell N='FillPattern' V='0'/><Cell N='ShdwForegnd' V='Themed' F='Inh'/><Cell N='ShdwPattern' V='Themed' F='Inh'/><Cell N='FillForegndTrans' V='Themed' F='Inh'/><Cell N='FillBkgndTrans' V='Themed' F='Inh'/><Cell N='ShdwForegndTrans' V='Themed' F='Inh'/><Cell N='ShapeShdwType' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetX' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetY' V='Themed' F='Inh'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='Inh'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='Inh'/><Cell N='ShapeShdwBlur' V='Themed' F='Inh'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='Inh'/><Cell N='LineGradientAngle' V='Themed' F='Inh'/><Cell N='FillGradientDir' V='Themed' F='Inh'/><Cell N='FillGradientAngle' V='Themed' F='Inh'/><Cell N='LineGradientEnabled' V='0'/><Cell N='FillGradientEnabled' V='0'/><Cell N='RotateGradientWithShape' V='Themed' F='Inh'/><Cell N='UseGroupGradient' V='Themed' F='Inh'/><Cell N='QuickStyleLineColor' V='100' F='Inh'/><Cell N='QuickStyleFillColor' V='100' F='Inh'/><Cell N='QuickStyleShadowColor' V='100' F='Inh'/><Cell N='QuickStyleFontColor' V='100' F='Inh'/><Cell N='QuickStyleLineMatrix' V='100' F='Inh'/><Cell N='QuickStyleFillMatrix' V='100' F='Inh'/><Cell N='QuickStyleEffectsMatrix' V='0' F='GUARD(0)'/><Cell N='QuickStyleFontMatrix' V='100' F='Inh'/><Cell N='QuickStyleType' V='0' F='Inh'/><Cell N='QuickStyleVariation' V='2'/></StyleSheet><StyleSheet ID='3' NameU='Normal' IsCustomNameU='1' Name='Normal' IsCustomName='1' LineStyle='6' FillStyle='6' TextStyle='6'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LeftMargin' V='0.05555555555555555' U='PT'/><Cell N='RightMargin' V='0.05555555555555555' U='PT'/><Cell N='TopMargin' V='0.05555555555555555' U='PT'/><Cell N='BottomMargin' V='0.05555555555555555' U='PT'/><Cell N='VerticalAlign' V='1' F='Inh'/><Cell N='TextBkgnd' V='0' F='Inh'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/></StyleSheet><StyleSheet ID='4' NameU='Guide' IsCustomNameU='1' Name='Guide' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='0' U='PT'/><Cell N='LineColor' V='#7f7f7f'/><Cell N='LinePattern' V='23'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Cell N='FillForegnd' V='Themed' F='Inh'/><Cell N='FillBkgnd' V='Themed' F='Inh'/><Cell N='FillPattern' V='0'/><Cell N='ShdwForegnd' V='Themed' F='Inh'/><Cell N='ShdwPattern' V='Themed' F='Inh'/><Cell N='FillForegndTrans' V='Themed' F='Inh'/><Cell N='FillBkgndTrans' V='Themed' F='Inh'/><Cell N='ShdwForegndTrans' V='Themed' F='Inh'/><Cell N='ShapeShdwType' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetX' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetY' V='Themed' F='Inh'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='Inh'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='Inh'/><Cell N='ShapeShdwBlur' V='Themed' F='Inh'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='Inh'/><Cell N='LineGradientAngle' V='Themed' F='Inh'/><Cell N='FillGradientDir' V='Themed' F='Inh'/><Cell N='FillGradientAngle' V='Themed' F='Inh'/><Cell N='LineGradientEnabled' V='0'/><Cell N='FillGradientEnabled' V='0'/><Cell N='RotateGradientWithShape' V='Themed' F='Inh'/><Cell N='UseGroupGradient' V='Themed' F='Inh'/><Cell N='LeftMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='RightMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='TopMargin' V='0'/><Cell N='BottomMargin' V='0'/><Cell N='VerticalAlign' V='2'/><Cell N='TextBkgnd' V='0' F='Inh'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/><Cell N='NoObjHandles' V='0' F='Inh'/><Cell N='NonPrinting' V='1'/><Cell N='NoCtlHandles' V='0' F='Inh'/><Cell N='NoAlignBox' V='0' F='Inh'/><Cell N='UpdateAlignBox' V='0' F='Inh'/><Cell N='HideText' V='0' F='Inh'/><Cell N='DynFeedback' V='0' F='Inh'/><Cell N='GlueType' V='0' F='Inh'/><Cell N='WalkPreference' V='0' F='Inh'/><Cell N='BegTrigger' V='0' F='No Formula'/><Cell N='EndTrigger' V='0' F='No Formula'/><Cell N='ObjType' V='0' F='Inh'/><Cell N='Comment' V='' F='Inh'/><Cell N='IsDropSource' V='0' F='Inh'/><Cell N='NoLiveDynamics' V='0' F='Inh'/><Cell N='LocalizeMerge' V='0' F='Inh'/><Cell N='NoProofing' V='0' F='Inh'/><Cell N='Calendar' V='0' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/><Cell N='ShapeKeywords' V='' F='Inh'/><Cell N='DropOnPageScale' V='1' F='Inh'/><Cell N='ShapePermeableX' V='1'/><Cell N='ShapePermeableY' V='1'/><Cell N='ShapePermeablePlace' V='1'/><Cell N='Relationships' V='0' F='Inh'/><Cell N='ShapeFixedCode' V='0' F='Inh'/><Cell N='ShapePlowCode' V='0' F='Inh'/><Cell N='ShapeRouteStyle' V='0' F='Inh'/><Cell N='ShapePlaceStyle' V='0' F='Inh'/><Cell N='ConFixedCode' V='0' F='Inh'/><Cell N='ConLineJumpCode' V='0' F='Inh'/><Cell N='ConLineJumpStyle' V='0' F='Inh'/><Cell N='ConLineJumpDirX' V='0' F='Inh'/><Cell N='ConLineJumpDirY' V='0' F='Inh'/><Cell N='ShapePlaceFlip' V='0' F='Inh'/><Cell N='ConLineRouteExt' V='0' F='Inh'/><Cell N='ShapeSplit' V='0' F='Inh'/><Cell N='ShapeSplittable' V='0' F='Inh'/><Cell N='DisplayLevel' V='0' F='Inh'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Themed' F='Inh'/><Cell N='Color' V='4'/><Cell N='Style' V='Themed' F='Inh'/><Cell N='Case' V='0' F='Inh'/><Cell N='Pos' V='0' F='Inh'/><Cell N='FontScale' V='1' F='Inh'/><Cell N='Size' V='0.125'/><Cell N='DblUnderline' V='0' F='Inh'/><Cell N='Overline' V='0' F='Inh'/><Cell N='Strikethru' V='0' F='Inh'/><Cell N='DoubleStrikethrough' V='0' F='Inh'/><Cell N='Letterspace' V='0' F='Inh'/><Cell N='ColorTrans' V='0' F='Inh'/><Cell N='AsianFont' V='Themed' F='Inh'/><Cell N='ComplexScriptFont' V='Themed' F='Inh'/><Cell N='ComplexScriptSize' V='-1' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/></Row></Section></StyleSheet><StyleSheet ID='6' NameU='Theme' IsCustomNameU='1' Name='Theme' IsCustomName='1' LineStyle='0' FillStyle='0' TextStyle='0'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='Themed' F='THEMEVAL()'/><Cell N='LineColor' V='Themed' F='THEMEVAL()'/><Cell N='LinePattern' V='Themed' F='THEMEVAL()'/><Cell N='Rounding' V='Themed' F='THEMEVAL()'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='THEMEVAL()'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='CompoundType' V='Themed' F='THEMEVAL()'/><Cell N='FillForegnd' V='Themed' F='THEMEVAL()'/><Cell N='FillBkgnd' V='Themed' F='THEMEVAL()'/><Cell N='FillPattern' V='Themed' F='THEMEVAL()'/><Cell N='ShdwForegnd' V='Themed' F='THEMEVAL()'/><Cell N='ShdwPattern' V='Themed' F='THEMEVAL()'/><Cell N='FillForegndTrans' V='Themed' F='THEMEVAL()'/><Cell N='FillBkgndTrans' V='Themed' F='THEMEVAL()'/><Cell N='ShdwForegndTrans' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwType' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwOffsetX' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwOffsetY' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwBlur' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='THEMEVAL()'/><Cell N='LineGradientAngle' V='Themed' F='THEMEVAL()'/><Cell N='FillGradientDir' V='Themed' F='THEMEVAL()'/><Cell N='FillGradientAngle' V='Themed' F='THEMEVAL()'/><Cell N='LineGradientEnabled' V='Themed' F='THEMEVAL()'/><Cell N='FillGradientEnabled' V='Themed' F='THEMEVAL()'/><Cell N='RotateGradientWithShape' V='Themed' F='THEMEVAL()'/><Cell N='UseGroupGradient' V='Themed' F='THEMEVAL()'/><Cell N='BevelTopType' V='Themed' F='THEMEVAL()'/><Cell N='BevelTopWidth' V='Themed' F='THEMEVAL()'/><Cell N='BevelTopHeight' V='Themed' F='THEMEVAL()'/><Cell N='BevelBottomType' V='0' F='Inh'/><Cell N='BevelBottomWidth' V='0' F='Inh'/><Cell N='BevelBottomHeight' V='0' F='Inh'/><Cell N='BevelDepthColor' V='1' F='Inh'/><Cell N='BevelDepthSize' V='0' F='Inh'/><Cell N='BevelContourColor' V='Themed' F='THEMEVAL()'/><Cell N='BevelContourSize' V='Themed' F='THEMEVAL()'/><Cell N='BevelMaterialType' V='Themed' F='THEMEVAL()'/><Cell N='BevelLightingType' V='Themed' F='THEMEVAL()'/><Cell N='BevelLightingAngle' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionTrans' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionSize' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionDist' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionBlur' V='Themed' F='THEMEVAL()'/><Cell N='GlowColor' V='Themed' F='THEMEVAL()'/><Cell N='GlowColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GlowSize' V='Themed' F='THEMEVAL()'/><Cell N='SoftEdgesSize' V='Themed' F='THEMEVAL()'/><Cell N='SketchSeed' V='0' F='Inh'/><Cell N='SketchEnabled' V='Themed' F='THEMEVAL()'/><Cell N='SketchAmount' V='Themed' F='THEMEVAL()'/><Cell N='SketchLineWeight' V='Themed' F='THEMEVAL()'/><Cell N='SketchLineChange' V='Themed' F='THEMEVAL()'/><Cell N='SketchFillChange' V='Themed' F='THEMEVAL()'/><Cell N='QuickStyleLineColor' V='100'/><Cell N='QuickStyleFillColor' V='100'/><Cell N='QuickStyleShadowColor' V='100'/><Cell N='QuickStyleFontColor' V='100'/><Cell N='QuickStyleLineMatrix' V='100'/><Cell N='QuickStyleFillMatrix' V='100'/><Cell N='QuickStyleEffectsMatrix' V='100'/><Cell N='QuickStyleFontMatrix' V='100'/><Cell N='QuickStyleType' V='0' F='Inh'/><Cell N='QuickStyleVariation' V='0' F='Inh'/><Cell N='ColorSchemeIndex' V='65534'/><Cell N='EffectSchemeIndex' V='65534'/><Cell N='ConnectorSchemeIndex' V='65534'/><Cell N='FontSchemeIndex' V='65534'/><Cell N='ThemeIndex' V='65534'/><Cell N='VariationColorIndex' V='65534'/><Cell N='VariationStyleIndex' V='65534'/><Cell N='EmbellishmentIndex' V='65534'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Themed' F='THEMEVAL()'/><Cell N='Color' V='Themed' F='THEMEVAL()'/><Cell N='Style' V='Themed' F='THEMEVAL()'/><Cell N='Case' V='0' F='Inh'/><Cell N='Pos' V='0' F='Inh'/><Cell N='FontScale' V='1' F='Inh'/><Cell N='Size' V='0.1666666666666667' F='Inh'/><Cell N='DblUnderline' V='0' F='Inh'/><Cell N='Overline' V='0' F='Inh'/><Cell N='Strikethru' V='0' F='Inh'/><Cell N='DoubleStrikethrough' V='0' F='Inh'/><Cell N='Letterspace' V='0' F='Inh'/><Cell N='ColorTrans' V='0' F='Inh'/><Cell N='AsianFont' V='Themed' F='THEMEVAL()'/><Cell N='ComplexScriptFont' V='Themed' F='THEMEVAL()'/><Cell N='ComplexScriptSize' V='-1' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/></Row></Section><Section N='FillGradient'><Row IX='0'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='1'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='2'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='3'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='4'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='5'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='6'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='7'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='8'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='9'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row></Section><Section N='LineGradient'><Row IX='0'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='1'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='2'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='3'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='4'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='5'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='6'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='7'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='8'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='9'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row></Section></StyleSheet><StyleSheet ID='7' NameU='Connector' IsCustomNameU='1' Name='Connector' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LeftMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='RightMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='TopMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='BottomMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='VerticalAlign' V='1' F='Inh'/><Cell N='TextBkgnd' V='#ffffff' F='THEMEGUARD(THEMEVAL(\"BackgroundColor\")+1)'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/><Cell N='NoObjHandles' V='0' F='Inh'/><Cell N='NonPrinting' V='0' F='Inh'/><Cell N='NoCtlHandles' V='0' F='Inh'/><Cell N='NoAlignBox' V='0' F='Inh'/><Cell N='UpdateAlignBox' V='0' F='Inh'/><Cell N='HideText' V='0' F='Inh'/><Cell N='DynFeedback' V='0' F='Inh'/><Cell N='GlueType' V='0' F='Inh'/><Cell N='WalkPreference' V='0' F='Inh'/><Cell N='BegTrigger' V='0' F='No Formula'/><Cell N='EndTrigger' V='0' F='No Formula'/><Cell N='ObjType' V='0' F='Inh'/><Cell N='Comment' V='' F='Inh'/><Cell N='IsDropSource' V='0' F='Inh'/><Cell N='NoLiveDynamics' V='0' F='Inh'/><Cell N='LocalizeMerge' V='0' F='Inh'/><Cell N='NoProofing' V='0' F='Inh'/><Cell N='Calendar' V='0' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/><Cell N='ShapeKeywords' V='' F='Inh'/><Cell N='DropOnPageScale' V='1' F='Inh'/><Cell N='QuickStyleLineColor' V='100'/><Cell N='QuickStyleFillColor' V='100'/><Cell N='QuickStyleShadowColor' V='100'/><Cell N='QuickStyleFontColor' V='100'/><Cell N='QuickStyleLineMatrix' V='1'/><Cell N='QuickStyleFillMatrix' V='1'/><Cell N='QuickStyleEffectsMatrix' V='1'/><Cell N='QuickStyleFontMatrix' V='1'/><Cell N='QuickStyleType' V='0'/><Cell N='QuickStyleVariation' V='0'/><Cell N='LineWeight' V='Themed' F='Inh'/><Cell N='LineColor' V='Themed' F='Inh'/><Cell N='LinePattern' V='Themed' F='Inh'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='Themed' F='THEMEVAL()'/><Cell N='BeginArrow' V='Themed' F='THEMEVAL()'/><Cell N='EndArrow' V='Themed' F='THEMEVAL()'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='Themed' F='THEMEVAL()'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Themed' F='Inh'/><Cell N='Color' V='Themed' F='Inh'/><Cell N='Style' V='Themed' F='Inh'/><Cell N='Case' V='0' F='Inh'/><Cell N='Pos' V='0' F='Inh'/><Cell N='FontScale' V='1' F='Inh'/><Cell N='Size' V='0.1111111111111111'/><Cell N='DblUnderline' V='0' F='Inh'/><Cell N='Overline' V='0' F='Inh'/><Cell N='Strikethru' V='0' F='Inh'/><Cell N='DoubleStrikethrough' V='0' F='Inh'/><Cell N='Letterspace' V='0' F='Inh'/><Cell N='ColorTrans' V='0' F='Inh'/><Cell N='AsianFont' V='Themed' F='Inh'/><Cell N='ComplexScriptFont' V='Themed' F='Inh'/><Cell N='ComplexScriptSize' V='-1' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/></Row></Section></StyleSheet></StyleSheets><DocumentSheet NameU='TheDoc' IsCustomNameU='1' Name='TheDoc' IsCustomName='1' LineStyle='0' FillStyle='0' TextStyle='0'><Cell N='OutputFormat' V='0'/><Cell N='LockPreview' V='0'/><Cell N='AddMarkup' V='0'/><Cell N='ViewMarkup' V='0'/><Cell N='DocLockReplace' V='0' U='BOOL'/><Cell N='NoCoauth' V='0' U='BOOL'/><Cell N='DocLockDuplicatePage' V='0' U='BOOL'/><Cell N='PreviewQuality' V='0'/><Cell N='PreviewScope' V='0'/><Cell N='DocLangID' V='en-US'/><Section N='User'><Row N='msvNoAutoConnect'><Cell N='Value' V='1'/><Cell N='Prompt' V='' F='No Formula'/></Row></Section></DocumentSheet></VisioDocument>",
"visio/windows.xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Windows ClientWidth='0' ClientHeight='0' xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve' />","visio/_rels/document.xml.rels":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Relationships xmlns='http://schemas.openxmlformats.org/package/2006/relationships'><Relationship Id='rId1' Type='http://schemas.microsoft.com/visio/2010/relationships/masters' Target='masters/masters.xml' /><Relationship Id='rId2' Type='http://schemas.microsoft.com/visio/2010/relationships/pages' Target='pages/pages.xml' /><Relationship Id='rId3' Type='http://schemas.microsoft.com/visio/2010/relationships/windows' Target='windows.xml' /></Relationships>",
"visio/masters/_rels/masters.xml.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.microsoft.com/visio/2010/relationships/master" Target="master1.xml"/></Relationships>',"visio/masters/masters.xml":"<?xml version='1.0' encoding='utf-8' ?><Masters xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve'><Master ID='4' NameU='Dynamic connector' IsCustomNameU='1' Name='Dynamic connector' IsCustomName='1' Prompt='This connector automatically routes between the shapes it connects.' IconSize='1' AlignName='2' MatchByName='1' IconUpdate='0' UniqueID='{002A9108-0000-0000-8E40-00608CF305B2}' BaseID='{F7290A45-E3AD-11D2-AE4F-006008C9F5A9}' PatternFlags='0' Hidden='0' MasterType='0'><PageSheet LineStyle='0' FillStyle='0' TextStyle='0'><Cell N='PageWidth' V='3'/><Cell N='PageHeight' V='3'/><Cell N='ShdwOffsetX' V='0.125'/><Cell N='ShdwOffsetY' V='-0.125'/><Cell N='PageScale' V='1' U='IN_F'/><Cell N='DrawingScale' V='1' U='IN_F'/><Cell N='DrawingSizeType' V='4'/><Cell N='DrawingScaleType' V='0'/><Cell N='InhibitSnap' V='0'/><Cell N='PageLockReplace' V='0' U='BOOL'/><Cell N='PageLockDuplicate' V='0' U='BOOL'/><Cell N='UIVisibility' V='0'/><Cell N='ShdwType' V='0'/><Cell N='ShdwObliqueAngle' V='0'/><Cell N='ShdwScaleFactor' V='1'/><Cell N='DrawingResizeType' V='0'/><Section N='Layer'><Row IX='0'><Cell N='Name' V='Connector'/><Cell N='Color' V='255'/><Cell N='Status' V='0'/><Cell N='Visible' V='1'/><Cell N='Print' V='1'/><Cell N='Active' V='0'/><Cell N='Lock' V='0'/><Cell N='Snap' V='1'/><Cell N='Glue' V='1'/><Cell N='NameUniv' V='Connector'/><Cell N='ColorTrans' V='0'/></Row></Section></PageSheet><Rel r:id='rId1'/></Master></Masters>",
"visio/masters/master1.xml":"<?xml version='1.0' encoding='utf-8' ?><MasterContents xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve'><Shapes><Shape ID='5' OriginalID='0' Type='Shape' LineStyle='7' FillStyle='7' TextStyle='7'><Cell N='PinX' V='1.5' F='GUARD((BeginX+EndX)/2)'/><Cell N='PinY' V='1.5' F='GUARD((BeginY+EndY)/2)'/><Cell N='Width' V='1' F='GUARD(EndX-BeginX)'/><Cell N='Height' V='-1' F='GUARD(EndY-BeginY)'/><Cell N='LocPinX' V='0.5' F='GUARD(Width*0.5)'/><Cell N='LocPinY' V='-0.5' F='GUARD(Height*0.5)'/><Cell N='Angle' V='0' F='GUARD(0DA)'/><Cell N='FlipX' V='0' F='GUARD(FALSE)'/><Cell N='FlipY' V='0' F='GUARD(FALSE)'/><Cell N='ResizeMode' V='0'/><Cell N='BeginX' V='1'/><Cell N='BeginY' V='2'/><Cell N='EndX' V='2'/><Cell N='EndY' V='1'/><Cell N='TxtPinX' V='0' F='SETATREF(Controls.TextPosition)'/><Cell N='TxtPinY' V='-1' F='SETATREF(Controls.TextPosition.Y)'/><Cell N='TxtWidth' V='0.5555555555555556' F='MAX(TEXTWIDTH(TheText),5*Char.Size)'/><Cell N='TxtHeight' V='0.2444444444444444' F='TEXTHEIGHT(TheText,TxtWidth)'/><Cell N='TxtLocPinX' V='0.2777777777777778' F='TxtWidth*0.5'/><Cell N='TxtLocPinY' V='0.1222222222222222' F='TxtHeight*0.5'/><Cell N='TxtAngle' V='0'/><Cell N='LockHeight' V='1'/><Cell N='LockCalcWH' V='1'/><Cell N='HelpTopic' V='Vis_SE.chm!#20000'/><Cell N='Copyright' V='Copyright 2001 Microsoft Corporation. All rights reserved.'/><Cell N='NoAlignBox' V='1'/><Cell N='DynFeedback' V='2'/><Cell N='GlueType' V='2'/><Cell N='ObjType' V='2'/><Cell N='NoLiveDynamics' V='1'/><Cell N='ShapeSplittable' V='1'/><Cell N='LayerMember' V='0'/><Section N='Control'><Row N='TextPosition'><Cell N='X' V='0'/><Cell N='Y' V='-1'/><Cell N='XDyn' V='0' F='Controls.TextPosition'/><Cell N='YDyn' V='-1' F='Controls.TextPosition.Y'/><Cell N='XCon' V='5' F='IF(OR(STRSAME(SHAPETEXT(TheText),\"\"),HideText),5,0)'/><Cell N='YCon' V='0'/><Cell N='CanGlue' V='0'/><Cell N='Prompt' V='Reposition Text'/></Row></Section><Section N='Geometry' IX='0'><Cell N='NoFill' V='1'/><Cell N='NoLine' V='0'/><Cell N='NoShow' V='0'/><Cell N='NoSnap' V='0'/><Cell N='NoQuickDrag' V='0'/><Row T='MoveTo' IX='1'><Cell N='X' V='0'/><Cell N='Y' V='0'/></Row><Row T='LineTo' IX='2'><Cell N='X' V='0'/><Cell N='Y' V='-1'/></Row></Section></Shape></Shapes></MasterContents>"},
-h;for(h in d)if(1<b&&h==G.CONTENT_TYPES_XML){for(var p=mxUtils.parseXml(d[h]),c=p.documentElement,e=c.children,y=null,f=0;f<e.length;f++){var z=e[f];"/visio/pages/page1.xml"==z.getAttribute(G.PART_NAME)&&(y=z)}for(f=2;f<=b;f++)e=y.cloneNode(),e.setAttribute(G.PART_NAME,"/visio/pages/page"+f+".xml"),c.appendChild(e);F(a,h,p,!0)}else a.file(h,d[h])}function m(a,b,d){return null!=a.createElementNS?a.createElementNS(b,d):a.createElement(d)}function k(a){var b=Z[a];null==b&&(b=Y++,Z[a]=b);return b}function f(a){var b=
-{};try{var d=a.getGraphBounds().clone(),h=a.view.scale,p=a.view.translate,c=Math.round(d.x/h)-p.x,e=Math.round(d.y/h)-p.y,y=a.pageFormat.width,f=a.pageFormat.height;0>c&&(c+=Math.ceil((p.x-d.x/h)/y)*y);0>e&&(e+=Math.ceil((p.y-d.y/h)/f)*f);var z=Math.max(1,Math.ceil((d.width/h+c)/y)),x=Math.max(1,Math.ceil((d.height/h+e)/f));b.gridEnabled=a.gridEnabled;b.gridSize=a.gridSize;b.guidesEnabled=a.graphHandler.guidesEnabled;b.pageVisible=a.pageVisible;b.pageScale=a.pageScale;b.pageWidth=a.pageFormat.width*
-z;b.pageHeight=a.pageFormat.height*x;b.backgroundClr=a.background;b.mathEnabled=a.mathEnabled;b.shadowVisible=a.shadowVisible}catch(qb){}return b}function e(a,d,h,p){return b(a,d/G.CONVERSION_FACTOR,h,p)}function b(a,b,d,h){d=m(d,G.XMLNS,"Cell");d.setAttribute("N",a);d.setAttribute("V",b);h&&d.setAttribute("F",h);return d}function a(a,b,d,h,p){var c=m(p,G.XMLNS,"Row");c.setAttribute("T",a);c.setAttribute("IX",b);c.appendChild(e("X",d,p));c.appendChild(e("Y",h,p));return c}function d(a,d,h){var p=
-a.style[mxConstants.STYLE_FILLCOLOR];if(p&&"none"!=p){if(d.appendChild(b("FillForegnd",p,h)),(p=a.style[mxConstants.STYLE_GRADIENTCOLOR])&&"none"!=p){d.appendChild(b("FillBkgnd",p,h));var p=a.style[mxConstants.STYLE_GRADIENT_DIRECTION],c=28;if(p)switch(p){case mxConstants.DIRECTION_EAST:c=25;break;case mxConstants.DIRECTION_WEST:c=27;break;case mxConstants.DIRECTION_NORTH:c=30}d.appendChild(b("FillPattern",c,h))}}else d.appendChild(b("FillPattern",0,h));(p=a.style[mxConstants.STYLE_STROKECOLOR])&&
-"none"!=p?d.appendChild(b("LineColor",p,h)):d.appendChild(b("LinePattern",0,h));(p=a.style[mxConstants.STYLE_STROKEWIDTH])&&d.appendChild(e("LineWeight",p,h));(c=a.style[mxConstants.STYLE_OPACITY])?p=c:(p=a.style[mxConstants.STYLE_FILL_OPACITY],c=a.style[mxConstants.STYLE_STROKE_OPACITY]);p&&d.appendChild(b("FillForegndTrans",1-parseInt(p)/100,h));c&&d.appendChild(b("LineColorTrans",1-parseInt(c)/100,h));if(1==a.style[mxConstants.STYLE_DASHED]){p=a.style[mxConstants.STYLE_DASH_PATTERN];c=9;if(p)switch(p){case "1 1":c=
-10;break;case "1 2":c=3;break;case "1 4":c=17}d.appendChild(b("LinePattern",c,h))}1==a.style[mxConstants.STYLE_SHADOW]&&(d.appendChild(b("ShdwPattern",1,h)),d.appendChild(b("ShdwForegnd","#000000",h)),d.appendChild(b("ShdwForegndTrans",.6,h)),d.appendChild(b("ShapeShdwType",1,h)),d.appendChild(b("ShapeShdwOffsetX","0.02946278254943948",h)),d.appendChild(b("ShapeShdwOffsetY","-0.02946278254943948",h)),d.appendChild(b("ShapeShdwScaleFactor","1",h)),d.appendChild(b("ShapeShdwBlur","0.05555555555555555",
-h)),d.appendChild(b("ShapeShdwShow",2,h)));1==a.style[mxConstants.STYLE_FLIPH]&&d.appendChild(b("FlipX",1,h));1==a.style[mxConstants.STYLE_FLIPV]&&d.appendChild(b("FlipY",1,h));1==a.style[mxConstants.STYLE_ROUNDED]&&d.appendChild(e("Rounding",.1*a.cell.geometry.width,h));(a=a.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR])&&d.appendChild(b("TextBkgnd",a,h))}function h(a,b,d,h,p){var c=m(d,G.XMLNS,"Shape");c.setAttribute("ID",a);c.setAttribute("NameU","Shape"+a);c.setAttribute("LineStyle","0");c.setAttribute("FillStyle",
-"0");c.setAttribute("TextStyle","0");a=b.width/2;var y=b.height/2;c.appendChild(e("PinX",b.x+a+(p?0:D.shiftX),d));c.appendChild(e("PinY",h-b.y-y-(p?0:D.shiftY),d));c.appendChild(e("Width",b.width,d));c.appendChild(e("Height",b.height,d));c.appendChild(e("LocPinX",a,d));c.appendChild(e("LocPinY",y,d));return c}function p(a,b){var d=G.ARROWS_MAP[(null==a?"none":a)+"|"+(null==b?"1":b)];return null!=d?d:1}function y(a){return null==a?2:2>=a?0:3>=a?1:5>=a?2:7>=a?3:9>=a?4:22>=a?5:6}function z(h,c,f,z,x){var n=
-c.view.getState(h,!0);if(null==n||null==n.absolutePoints||null==n.cellBounds)return null;c=m(f,G.XMLNS,"Shape");var C=k(h.id);c.setAttribute("ID",C);c.setAttribute("NameU","Dynamic connector."+C);c.setAttribute("Name","Dynamic connector."+C);c.setAttribute("Type","Shape");c.setAttribute("Master","4");var F=D.state,C=n.absolutePoints,A=n.cellBounds,B=A.width/2,aa=A.height/2;c.appendChild(e("PinX",A.x+B,f));c.appendChild(e("PinY",z-A.y-aa,f));c.appendChild(e("Width",A.width,f));c.appendChild(e("Height",
-A.height,f));c.appendChild(e("LocPinX",B,f));c.appendChild(e("LocPinY",aa,f));D.newEdge(c,n,f);B=function(a,b){var d=a.x,h=a.y,d=d*F.scale-A.x+F.dx+(x?0:D.shiftX),h=(b?0:A.height)-h*F.scale+A.y-F.dy-(x?0:D.shiftY);return{x:d,y:h}};aa=B(C[0],!0);c.appendChild(e("BeginX",A.x+aa.x,f,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));c.appendChild(e("BeginY",z-A.y+aa.y,f,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));aa=B(C[C.length-1],!0);c.appendChild(e("EndX",A.x+aa.x,f,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));
-c.appendChild(e("EndY",z-A.y+aa.y,f,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));c.appendChild(b("BegTrigger","2",f,h.source?"_XFTRIGGER(Sheet."+k(h.source.id)+"!EventXFMod)":null));c.appendChild(b("EndTrigger","2",f,h.target?"_XFTRIGGER(Sheet."+k(h.target.id)+"!EventXFMod)":null));c.appendChild(b("ConFixedCode","6",f));c.appendChild(b("LayerMember","0",f));d(n,c,f);z=n.style[mxConstants.STYLE_STARTSIZE];h=p(n.style[mxConstants.STYLE_STARTARROW],n.style[mxConstants.STYLE_STARTFILL]);c.appendChild(b("BeginArrow",
-h,f));c.appendChild(b("BeginArrowSize",y(z),f));z=n.style[mxConstants.STYLE_ENDSIZE];h=p(n.style[mxConstants.STYLE_ENDARROW],n.style[mxConstants.STYLE_ENDFILL]);c.appendChild(b("EndArrow",h,f));c.appendChild(b("EndArrowSize",y(z),f));null!=n.text&&n.text.checkBounds()&&(D.save(),n.text.paint(D),D.restore());n=m(f,G.XMLNS,"Section");n.setAttribute("N","Geometry");n.setAttribute("IX","0");for(h=0;h<C.length;h++)z=B(C[h]),n.appendChild(a(0==h?"MoveTo":"LineTo",h+1,z.x,z.y,f));n.appendChild(b("NoFill",
-"1",f));n.appendChild(b("NoLine","0",f));c.appendChild(n);return c}function x(a,b,p,c,e,y){var f=a.geometry;if(null!=f){f.relative&&e&&(f=f.clone(),f.x*=e.width,f.y*=e.height,f.relative=0);e=k(a.id);if(!a.treatAsSingle&&0<a.getChildCount()){c=h(e+"10000",f,p,c,y);c.setAttribute("Type","Group");y=m(p,G.XMLNS,"Shapes");D.save();D.translate(-f.x,-f.y);e=f.clone();e.x=0;e.y=0;a.setGeometry(e);a.treatAsSingle=!0;e=x(a,b,p,f.height,f,!0);a.treatAsSingle=!1;a.setGeometry(f);null!=e&&y.appendChild(e);for(var n=
-0;n<a.getChildCount();n++)e=x(a.children[n],b,p,f.height,f,!0),null!=e&&y.appendChild(e);c.appendChild(y);D.restore();return c}return a.vertex?(c=h(e,f,p,c,y),a=b.view.getState(a,!0),d(a,c,p),D.newShape(c,a,p),null!=a.text&&a.text.checkBounds()&&(D.save(),a.text.paint(D),D.restore()),null!=a.shape&&a.shape.checkBounds()&&(D.save(),a.shape.paint(D),D.restore()),c.appendChild(D.getShapeGeo()),D.endShape(),c.setAttribute("Type",D.getShapeType()),c):z(a,b,p,c,y)}return null}function C(a,b){var d=mxUtils.createXmlDocument(),
-h=m(d,G.XMLNS,"PageContents");h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",G.XMLNS);h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",G.XMLNS_R);var p=m(d,G.XMLNS,"Shapes");h.appendChild(p);var c=a.model,e=a.view.translate,y=a.view.scale,f=a.getGraphBounds();D.shiftX=0;D.shiftY=0;if(f.x/y<e.x||f.y/y<e.y)D.shiftX=Math.ceil((e.x-f.x/y)/a.pageFormat.width)*a.pageFormat.width,D.shiftY=Math.ceil((e.y-f.y/y)/a.pageFormat.height)*a.pageFormat.height;D.save();D.translate(-e.x,-e.y);D.scale(1/
-y);D.newPage();var y=a.getDefaultParent(),z;for(z in c.cells)e=c.cells[z],e.parent==y&&(e=x(e,a,d,b.pageHeight),null!=e&&p.appendChild(e));p=m(d,G.XMLNS,"Connects");h.appendChild(p);for(z in c.cells)e=c.cells[z],e.edge&&(e.source&&(y=m(d,G.XMLNS,"Connect"),y.setAttribute("FromSheet",k(e.id)),y.setAttribute("FromCell","BeginX"),y.setAttribute("ToSheet",k(e.source.id)),p.appendChild(y)),e.target&&(y=m(d,G.XMLNS,"Connect"),y.setAttribute("FromSheet",k(e.id)),y.setAttribute("FromCell","EndX"),y.setAttribute("ToSheet",
-k(e.target.id)),p.appendChild(y)));d.appendChild(h);D.restore();return d}function F(a,b,d,h){a.file(b,(h?"":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>')+mxUtils.getXml(d,"\n"))}function A(a,d,h){var p=mxUtils.createXmlDocument(),c=mxUtils.createXmlDocument(),y=m(p,G.XMLNS,"Pages");y.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",G.XMLNS);y.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",G.XMLNS_R);var f=m(c,G.RELS_XMLNS,"Relationships"),z=1,x;for(x in d){var k="page"+
-z+".xml",n=m(p,G.XMLNS,"Page");n.setAttribute("ID",z-1);n.setAttribute("NameU",x);n.setAttribute("Name",x);var C=m(p,G.XMLNS,"PageSheet"),A=h[x];C.appendChild(e("PageWidth",A.pageWidth,p));C.appendChild(e("PageHeight",A.pageHeight,p));C.appendChild(b("PageScale",A.pageScale,p));C.appendChild(b("DrawingScale",1,p));A=m(p,G.XMLNS,"Rel");A.setAttributeNS(G.XMLNS_R,"r:id","rId"+z);var B=m(p,G.XMLNS,"Section");B.setAttribute("N","Layer");var D=m(p,G.XMLNS,"Row");D.setAttribute("IX","0");B.appendChild(D);
-D.appendChild(b("Name","Connector",p));D.appendChild(b("Color","255",p));D.appendChild(b("Status","0",p));D.appendChild(b("Visible","1",p));D.appendChild(b("Print","1",p));D.appendChild(b("Active","0",p));D.appendChild(b("Lock","0",p));D.appendChild(b("Snap","1",p));D.appendChild(b("Glue","1",p));D.appendChild(b("NameUniv","Connector",p));D.appendChild(b("ColorTrans","0",p));C.appendChild(B);n.appendChild(C);n.appendChild(A);y.appendChild(n);n=m(c,G.RELS_XMLNS,"Relationship");n.setAttribute("Id",
-"rId"+z);n.setAttribute("Type",G.PAGES_TYPE);n.setAttribute("Target",k);f.appendChild(n);F(a,G.VISIO_PAGES+k,d[x]);z++}p.appendChild(y);c.appendChild(f);F(a,G.VISIO_PAGES+"pages.xml",p);F(a,G.VISIO_PAGES+"_rels/pages.xml.rels",c)}function B(a,b){var d=G.VISIO_PAGES_RELS+"page"+b+".xml.rels",h=mxUtils.createXmlDocument(),p=m(h,G.RELS_XMLNS,"Relationships"),c=m(h,G.RELS_XMLNS,"Relationship");c.setAttribute("Type","http://schemas.microsoft.com/visio/2010/relationships/master");c.setAttribute("Id","rId1");
-c.setAttribute("Target","../masters/master1.xml");p.appendChild(c);var e=D.images;if(0<e.length)for(var y=0;y<e.length;y++)c=m(h,G.RELS_XMLNS,"Relationship"),c.setAttribute("Type",G.XMLNS_R+"/image"),c.setAttribute("Id","rId"+(y+2)),c.setAttribute("Target","../media/"+e[y]),p.appendChild(c);h.appendChild(p);F(a,d,h)}var G=this,D=new mxVsdxCanvas2D,Z={},Y=1;this.exportCurrentDiagrams=function(){try{if(c.spinner.spin(document.body,mxResources.get("exporting"))){var a=new JSZip;D.init(a);Z={};Y=1;var b=
-{},d={},h=null!=c.pages?c.pages.length:1;if(null!=c.pages){for(var p=c.editor.graph.getSelectionCells(),e=c.currentPage,y=0;y<c.pages.length;y++){var z=c.pages[y];c.currentPage!=z&&c.selectPage(z,!0);var x=z.getName(),k=c.editor.graph,m=null;null!=k.themes&&"darkTheme"==k.defaultThemeName&&(m=k.stylesheet,k.stylesheet=k.getDefaultStylesheet(),k.refresh());try{var F=f(k);b[x]=C(k,F);B(a,y+1);d[x]=F}finally{null!=m&&(k.stylesheet=m,k.refresh())}}e!=c.currentPage&&c.selectPage(e,!0);c.editor.graph.setSelectionCells(p)}else k=
-c.editor.graph,F=f(k),x="Page1",b[x]=C(k,F),B(a,1),d[x]=F;n(a,h);A(a,b,d);b=function(){a.generateAsync({type:"base64"}).then(function(a){c.spinner.stop();var b=c.getBaseFilename();c.saveData(b+".vsdx","vsdx",a,"application/vnd.visio2013",!0)})};0<D.filesLoading?D.onFilesLoaded=b:b()}return!0}catch(pb){return console.log(pb),c.spinner.stop(),!1}}}VsdxExport.prototype.CONVERSION_FACTOR=101.6;VsdxExport.prototype.PAGES_TYPE="http://schemas.microsoft.com/visio/2010/relationships/page";
+g;for(g in d)if(1<b&&g==G.CONTENT_TYPES_XML){for(var p=mxUtils.parseXml(d[g]),c=p.documentElement,e=c.children,y=null,f=0;f<e.length;f++){var x=e[f];"/visio/pages/page1.xml"==x.getAttribute(G.PART_NAME)&&(y=x)}for(f=2;f<=b;f++)e=y.cloneNode(),e.setAttribute(G.PART_NAME,"/visio/pages/page"+f+".xml"),c.appendChild(e);F(a,g,p,!0)}else a.file(g,d[g])}function m(a,b,d){return null!=a.createElementNS?a.createElementNS(b,d):a.createElement(d)}function k(a){var b=Z[a];null==b&&(b=Y++,Z[a]=b);return b}function f(a){var b=
+{};try{var d=a.getGraphBounds().clone(),g=a.view.scale,p=a.view.translate,c=Math.round(d.x/g)-p.x,e=Math.round(d.y/g)-p.y,y=a.pageFormat.width,f=a.pageFormat.height;0>c&&(c+=Math.ceil((p.x-d.x/g)/y)*y);0>e&&(e+=Math.ceil((p.y-d.y/g)/f)*f);var x=Math.max(1,Math.ceil((d.width/g+c)/y)),A=Math.max(1,Math.ceil((d.height/g+e)/f));b.gridEnabled=a.gridEnabled;b.gridSize=a.gridSize;b.guidesEnabled=a.graphHandler.guidesEnabled;b.pageVisible=a.pageVisible;b.pageScale=a.pageScale;b.pageWidth=a.pageFormat.width*
+x;b.pageHeight=a.pageFormat.height*A;b.backgroundClr=a.background;b.mathEnabled=a.mathEnabled;b.shadowVisible=a.shadowVisible}catch(qb){}return b}function e(a,d,g,p){return b(a,d/G.CONVERSION_FACTOR,g,p)}function b(a,b,d,g){d=m(d,G.XMLNS,"Cell");d.setAttribute("N",a);d.setAttribute("V",b);g&&d.setAttribute("F",g);return d}function a(a,b,d,g,p){var c=m(p,G.XMLNS,"Row");c.setAttribute("T",a);c.setAttribute("IX",b);c.appendChild(e("X",d,p));c.appendChild(e("Y",g,p));return c}function d(a,d,g){var p=
+a.style[mxConstants.STYLE_FILLCOLOR];if(p&&"none"!=p){if(d.appendChild(b("FillForegnd",p,g)),(p=a.style[mxConstants.STYLE_GRADIENTCOLOR])&&"none"!=p){d.appendChild(b("FillBkgnd",p,g));var p=a.style[mxConstants.STYLE_GRADIENT_DIRECTION],c=28;if(p)switch(p){case mxConstants.DIRECTION_EAST:c=25;break;case mxConstants.DIRECTION_WEST:c=27;break;case mxConstants.DIRECTION_NORTH:c=30}d.appendChild(b("FillPattern",c,g))}}else d.appendChild(b("FillPattern",0,g));(p=a.style[mxConstants.STYLE_STROKECOLOR])&&
+"none"!=p?d.appendChild(b("LineColor",p,g)):d.appendChild(b("LinePattern",0,g));(p=a.style[mxConstants.STYLE_STROKEWIDTH])&&d.appendChild(e("LineWeight",p,g));(c=a.style[mxConstants.STYLE_OPACITY])?p=c:(p=a.style[mxConstants.STYLE_FILL_OPACITY],c=a.style[mxConstants.STYLE_STROKE_OPACITY]);p&&d.appendChild(b("FillForegndTrans",1-parseInt(p)/100,g));c&&d.appendChild(b("LineColorTrans",1-parseInt(c)/100,g));if(1==a.style[mxConstants.STYLE_DASHED]){p=a.style[mxConstants.STYLE_DASH_PATTERN];c=9;if(p)switch(p){case "1 1":c=
+10;break;case "1 2":c=3;break;case "1 4":c=17}d.appendChild(b("LinePattern",c,g))}1==a.style[mxConstants.STYLE_SHADOW]&&(d.appendChild(b("ShdwPattern",1,g)),d.appendChild(b("ShdwForegnd","#000000",g)),d.appendChild(b("ShdwForegndTrans",.6,g)),d.appendChild(b("ShapeShdwType",1,g)),d.appendChild(b("ShapeShdwOffsetX","0.02946278254943948",g)),d.appendChild(b("ShapeShdwOffsetY","-0.02946278254943948",g)),d.appendChild(b("ShapeShdwScaleFactor","1",g)),d.appendChild(b("ShapeShdwBlur","0.05555555555555555",
+g)),d.appendChild(b("ShapeShdwShow",2,g)));1==a.style[mxConstants.STYLE_FLIPH]&&d.appendChild(b("FlipX",1,g));1==a.style[mxConstants.STYLE_FLIPV]&&d.appendChild(b("FlipY",1,g));1==a.style[mxConstants.STYLE_ROUNDED]&&d.appendChild(e("Rounding",.1*a.cell.geometry.width,g));(a=a.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR])&&d.appendChild(b("TextBkgnd",a,g))}function g(a,b,d,g,p){var c=m(d,G.XMLNS,"Shape");c.setAttribute("ID",a);c.setAttribute("NameU","Shape"+a);c.setAttribute("LineStyle","0");c.setAttribute("FillStyle",
+"0");c.setAttribute("TextStyle","0");a=b.width/2;var y=b.height/2;c.appendChild(e("PinX",b.x+a+(p?0:D.shiftX),d));c.appendChild(e("PinY",g-b.y-y-(p?0:D.shiftY),d));c.appendChild(e("Width",b.width,d));c.appendChild(e("Height",b.height,d));c.appendChild(e("LocPinX",a,d));c.appendChild(e("LocPinY",y,d));return c}function p(a,b){var d=G.ARROWS_MAP[(null==a?"none":a)+"|"+(null==b?"1":b)];return null!=d?d:1}function y(a){return null==a?2:2>=a?0:3>=a?1:5>=a?2:7>=a?3:9>=a?4:22>=a?5:6}function A(g,c,f,x,A){var z=
+c.view.getState(g,!0);if(null==z||null==z.absolutePoints||null==z.cellBounds)return null;c=m(f,G.XMLNS,"Shape");var n=k(g.id);c.setAttribute("ID",n);c.setAttribute("NameU","Dynamic connector."+n);c.setAttribute("Name","Dynamic connector."+n);c.setAttribute("Type","Shape");c.setAttribute("Master","4");var F=D.state,n=z.absolutePoints,B=z.cellBounds,C=B.width/2,aa=B.height/2;c.appendChild(e("PinX",B.x+C,f));c.appendChild(e("PinY",x-B.y-aa,f));c.appendChild(e("Width",B.width,f));c.appendChild(e("Height",
+B.height,f));c.appendChild(e("LocPinX",C,f));c.appendChild(e("LocPinY",aa,f));D.newEdge(c,z,f);C=function(a,b){var d=a.x,g=a.y,d=d*F.scale-B.x+F.dx+(A?0:D.shiftX),g=(b?0:B.height)-g*F.scale+B.y-F.dy-(A?0:D.shiftY);return{x:d,y:g}};aa=C(n[0],!0);c.appendChild(e("BeginX",B.x+aa.x,f,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));c.appendChild(e("BeginY",x-B.y+aa.y,f,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));aa=C(n[n.length-1],!0);c.appendChild(e("EndX",B.x+aa.x,f,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));
+c.appendChild(e("EndY",x-B.y+aa.y,f,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));c.appendChild(b("BegTrigger","2",f,g.source?"_XFTRIGGER(Sheet."+k(g.source.id)+"!EventXFMod)":null));c.appendChild(b("EndTrigger","2",f,g.target?"_XFTRIGGER(Sheet."+k(g.target.id)+"!EventXFMod)":null));c.appendChild(b("ConFixedCode","6",f));c.appendChild(b("LayerMember","0",f));d(z,c,f);x=z.style[mxConstants.STYLE_STARTSIZE];g=p(z.style[mxConstants.STYLE_STARTARROW],z.style[mxConstants.STYLE_STARTFILL]);c.appendChild(b("BeginArrow",
+g,f));c.appendChild(b("BeginArrowSize",y(x),f));x=z.style[mxConstants.STYLE_ENDSIZE];g=p(z.style[mxConstants.STYLE_ENDARROW],z.style[mxConstants.STYLE_ENDFILL]);c.appendChild(b("EndArrow",g,f));c.appendChild(b("EndArrowSize",y(x),f));null!=z.text&&z.text.checkBounds()&&(D.save(),z.text.paint(D),D.restore());z=m(f,G.XMLNS,"Section");z.setAttribute("N","Geometry");z.setAttribute("IX","0");for(g=0;g<n.length;g++)x=C(n[g]),z.appendChild(a(0==g?"MoveTo":"LineTo",g+1,x.x,x.y,f));z.appendChild(b("NoFill",
+"1",f));z.appendChild(b("NoLine","0",f));c.appendChild(z);return c}function x(a,b,p,c,e,y){var f=a.geometry;if(null!=f){f.relative&&e&&(f=f.clone(),f.x*=e.width,f.y*=e.height,f.relative=0);e=k(a.id);if(!a.treatAsSingle&&0<a.getChildCount()){c=g(e+"10000",f,p,c,y);c.setAttribute("Type","Group");y=m(p,G.XMLNS,"Shapes");D.save();D.translate(-f.x,-f.y);e=f.clone();e.x=0;e.y=0;a.setGeometry(e);a.treatAsSingle=!0;e=x(a,b,p,f.height,f,!0);a.treatAsSingle=!1;a.setGeometry(f);null!=e&&y.appendChild(e);for(var z=
+0;z<a.getChildCount();z++)e=x(a.children[z],b,p,f.height,f,!0),null!=e&&y.appendChild(e);c.appendChild(y);D.restore();return c}return a.vertex?(c=g(e,f,p,c,y),a=b.view.getState(a,!0),d(a,c,p),D.newShape(c,a,p),null!=a.text&&a.text.checkBounds()&&(D.save(),a.text.paint(D),D.restore()),null!=a.shape&&a.shape.checkBounds()&&(D.save(),a.shape.paint(D),D.restore()),c.appendChild(D.getShapeGeo()),D.endShape(),c.setAttribute("Type",D.getShapeType()),c):A(a,b,p,c,y)}return null}function z(a,b){var d=mxUtils.createXmlDocument(),
+g=m(d,G.XMLNS,"PageContents");g.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",G.XMLNS);g.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",G.XMLNS_R);var p=m(d,G.XMLNS,"Shapes");g.appendChild(p);var c=a.model,e=a.view.translate,y=a.view.scale,f=a.getGraphBounds();D.shiftX=0;D.shiftY=0;if(f.x/y<e.x||f.y/y<e.y)D.shiftX=Math.ceil((e.x-f.x/y)/a.pageFormat.width)*a.pageFormat.width,D.shiftY=Math.ceil((e.y-f.y/y)/a.pageFormat.height)*a.pageFormat.height;D.save();D.translate(-e.x,-e.y);D.scale(1/
+y);D.newPage();var y=a.getDefaultParent(),A;for(A in c.cells)e=c.cells[A],e.parent==y&&(e=x(e,a,d,b.pageHeight),null!=e&&p.appendChild(e));p=m(d,G.XMLNS,"Connects");g.appendChild(p);for(A in c.cells)e=c.cells[A],e.edge&&(e.source&&(y=m(d,G.XMLNS,"Connect"),y.setAttribute("FromSheet",k(e.id)),y.setAttribute("FromCell","BeginX"),y.setAttribute("ToSheet",k(e.source.id)),p.appendChild(y)),e.target&&(y=m(d,G.XMLNS,"Connect"),y.setAttribute("FromSheet",k(e.id)),y.setAttribute("FromCell","EndX"),y.setAttribute("ToSheet",
+k(e.target.id)),p.appendChild(y)));d.appendChild(g);D.restore();return d}function F(a,b,d,g){a.file(b,(g?"":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>')+mxUtils.getXml(d,"\n"))}function B(a,d,g){var p=mxUtils.createXmlDocument(),c=mxUtils.createXmlDocument(),y=m(p,G.XMLNS,"Pages");y.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",G.XMLNS);y.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",G.XMLNS_R);var f=m(c,G.RELS_XMLNS,"Relationships"),x=1,A;for(A in d){var k="page"+
+x+".xml",z=m(p,G.XMLNS,"Page");z.setAttribute("ID",x-1);z.setAttribute("NameU",A);z.setAttribute("Name",A);var n=m(p,G.XMLNS,"PageSheet"),B=g[A];n.appendChild(e("PageWidth",B.pageWidth,p));n.appendChild(e("PageHeight",B.pageHeight,p));n.appendChild(b("PageScale",B.pageScale,p));n.appendChild(b("DrawingScale",1,p));B=m(p,G.XMLNS,"Rel");B.setAttributeNS(G.XMLNS_R,"r:id","rId"+x);var C=m(p,G.XMLNS,"Section");C.setAttribute("N","Layer");var D=m(p,G.XMLNS,"Row");D.setAttribute("IX","0");C.appendChild(D);
+D.appendChild(b("Name","Connector",p));D.appendChild(b("Color","255",p));D.appendChild(b("Status","0",p));D.appendChild(b("Visible","1",p));D.appendChild(b("Print","1",p));D.appendChild(b("Active","0",p));D.appendChild(b("Lock","0",p));D.appendChild(b("Snap","1",p));D.appendChild(b("Glue","1",p));D.appendChild(b("NameUniv","Connector",p));D.appendChild(b("ColorTrans","0",p));n.appendChild(C);z.appendChild(n);z.appendChild(B);y.appendChild(z);z=m(c,G.RELS_XMLNS,"Relationship");z.setAttribute("Id",
+"rId"+x);z.setAttribute("Type",G.PAGES_TYPE);z.setAttribute("Target",k);f.appendChild(z);F(a,G.VISIO_PAGES+k,d[A]);x++}p.appendChild(y);c.appendChild(f);F(a,G.VISIO_PAGES+"pages.xml",p);F(a,G.VISIO_PAGES+"_rels/pages.xml.rels",c)}function C(a,b){var d=G.VISIO_PAGES_RELS+"page"+b+".xml.rels",g=mxUtils.createXmlDocument(),p=m(g,G.RELS_XMLNS,"Relationships"),c=m(g,G.RELS_XMLNS,"Relationship");c.setAttribute("Type","http://schemas.microsoft.com/visio/2010/relationships/master");c.setAttribute("Id","rId1");
+c.setAttribute("Target","../masters/master1.xml");p.appendChild(c);var e=D.images;if(0<e.length)for(var y=0;y<e.length;y++)c=m(g,G.RELS_XMLNS,"Relationship"),c.setAttribute("Type",G.XMLNS_R+"/image"),c.setAttribute("Id","rId"+(y+2)),c.setAttribute("Target","../media/"+e[y]),p.appendChild(c);g.appendChild(p);F(a,d,g)}var G=this,D=new mxVsdxCanvas2D,Z={},Y=1;this.exportCurrentDiagrams=function(){try{if(c.spinner.spin(document.body,mxResources.get("exporting"))){var a=new JSZip;D.init(a);Z={};Y=1;var b=
+{},d={},g=null!=c.pages?c.pages.length:1;if(null!=c.pages){for(var p=c.editor.graph.getSelectionCells(),e=c.currentPage,y=0;y<c.pages.length;y++){var x=c.pages[y];c.currentPage!=x&&c.selectPage(x,!0);var A=x.getName(),k=c.editor.graph,m=null;null!=k.themes&&"darkTheme"==k.defaultThemeName&&(m=k.stylesheet,k.stylesheet=k.getDefaultStylesheet(),k.refresh());try{var F=f(k);b[A]=z(k,F);C(a,y+1);d[A]=F}finally{null!=m&&(k.stylesheet=m,k.refresh())}}e!=c.currentPage&&c.selectPage(e,!0);c.editor.graph.setSelectionCells(p)}else k=
+c.editor.graph,F=f(k),A="Page1",b[A]=z(k,F),C(a,1),d[A]=F;n(a,g);B(a,b,d);b=function(){a.generateAsync({type:"base64"}).then(function(a){c.spinner.stop();var b=c.getBaseFilename();c.saveData(b+".vsdx","vsdx",a,"application/vnd.visio2013",!0)})};0<D.filesLoading?D.onFilesLoaded=b:b()}return!0}catch(pb){return console.log(pb),c.spinner.stop(),!1}}}VsdxExport.prototype.CONVERSION_FACTOR=101.6;VsdxExport.prototype.PAGES_TYPE="http://schemas.microsoft.com/visio/2010/relationships/page";
VsdxExport.prototype.RELS_XMLNS="http://schemas.openxmlformats.org/package/2006/relationships";VsdxExport.prototype.XML_SPACE="preserve";VsdxExport.prototype.XMLNS_R="http://schemas.openxmlformats.org/officeDocument/2006/relationships";VsdxExport.prototype.XMLNS="http://schemas.microsoft.com/office/visio/2012/main";VsdxExport.prototype.VISIO_PAGES="visio/pages/";VsdxExport.prototype.PREFEX="com/mxgraph/io/vsdx/resources/export/";VsdxExport.prototype.VSDX_ENC="ISO-8859-1";
VsdxExport.prototype.PART_NAME="PartName";VsdxExport.prototype.CONTENT_TYPES_XML="[Content_Types].xml";VsdxExport.prototype.VISIO_PAGES_RELS="visio/pages/_rels/";
VsdxExport.prototype.ARROWS_MAP={"none|1":0,"none|0":0,"open|1":1,"open|0":1,"block|1":4,"block|0":14,"classic|1":5,"classic|0":17,"oval|1":10,"oval|0":20,"diamond|1":11,"diamond|0":22,"blockThin|1":2,"blockThin|0":15,"dash|1":23,"dash|0":23,"ERone|1":24,"ERone|0":24,"ERmandOne|1":25,"ERmandOne|0":25,"ERmany|1":27,"ERmany|0":27,"ERoneToMany|1":28,"ERoneToMany|0":28,"ERzeroToMany|1":29,"ERzeroToMany|0":29,"ERzeroToOne|1":30,"ERzeroToOne|0":30,"openAsync|1":9,"openAsync|0":9};function mxVsdxCanvas2D(){mxAbstractCanvas2D.call(this)}mxUtils.extend(mxVsdxCanvas2D,mxAbstractCanvas2D);mxVsdxCanvas2D.prototype.textEnabled=!0;mxVsdxCanvas2D.prototype.init=function(c){this.filesLoading=0;this.zip=c};mxVsdxCanvas2D.prototype.onFilesLoaded=function(){};mxVsdxCanvas2D.prototype.createElt=function(c){return null!=this.xmlDoc.createElementNS?this.xmlDoc.createElementNS(VsdxExport.prototype.XMLNS,c):this.xmlDoc.createElement(c)};
mxVsdxCanvas2D.prototype.createGeoSec=function(){null!=this.geoSec&&this.shape.appendChild(this.geoSec);var c=this.createElt("Section");c.setAttribute("N","Geometry");c.setAttribute("IX",this.geoIndex++);this.geoSec=c;this.geoStepIndex=1;this.lastMoveToY=this.lastMoveToX=this.lastY=this.lastX=0};mxVsdxCanvas2D.prototype.newShape=function(c,n,m){this.geoIndex=0;this.shape=c;this.cellState=n;this.xmGeo=n.cell.geometry;this.xmlDoc=m;this.shapeImg=this.geoSec=null;this.shapeType="Shape";this.createGeoSec()};
mxVsdxCanvas2D.prototype.newEdge=function(c,n,m){this.shape=c;this.cellState=n;this.xmGeo=n.cellBounds;this.xmlDoc=m};mxVsdxCanvas2D.prototype.endShape=function(){null!=this.shapeImg&&this.addForeignData(this.shapeImg.type,this.shapeImg.id)};mxVsdxCanvas2D.prototype.newPage=function(){this.images=[]};mxVsdxCanvas2D.prototype.getShapeType=function(){return this.shapeType};mxVsdxCanvas2D.prototype.getShapeGeo=function(){return this.geoSec};
mxVsdxCanvas2D.prototype.createCellElemScaled=function(c,n,m){return this.createCellElem(c,n/VsdxExport.prototype.CONVERSION_FACTOR,m)};mxVsdxCanvas2D.prototype.createCellElem=function(c,n,m){var k=this.createElt("Cell");k.setAttribute("N",c);k.setAttribute("V",n);m&&k.setAttribute("F",m);return k};
-mxVsdxCanvas2D.prototype.createRowScaled=function(c,n,m,k,f,e,b,a,d,h,p,y,z,x){return this.createRowRel(c,n,m/VsdxExport.prototype.CONVERSION_FACTOR,k/VsdxExport.prototype.CONVERSION_FACTOR,f/VsdxExport.prototype.CONVERSION_FACTOR,e/VsdxExport.prototype.CONVERSION_FACTOR,b/VsdxExport.prototype.CONVERSION_FACTOR,a/VsdxExport.prototype.CONVERSION_FACTOR,d,h,p,y,z,x)};
-mxVsdxCanvas2D.prototype.createRowRel=function(c,n,m,k,f,e,b,a,d,h,p,y,z,x){var C=this.createElt("Row");C.setAttribute("T",c);C.setAttribute("IX",n);C.appendChild(this.createCellElem("X",m,d));C.appendChild(this.createCellElem("Y",k,h));null!=f&&C.appendChild(this.createCellElem("A",f,p));null!=e&&C.appendChild(this.createCellElem("B",e,y));null!=b&&C.appendChild(this.createCellElem("C",b,z));null!=a&&C.appendChild(this.createCellElem("D",a,x));return C};
+mxVsdxCanvas2D.prototype.createRowScaled=function(c,n,m,k,f,e,b,a,d,g,p,y,A,x){return this.createRowRel(c,n,m/VsdxExport.prototype.CONVERSION_FACTOR,k/VsdxExport.prototype.CONVERSION_FACTOR,f/VsdxExport.prototype.CONVERSION_FACTOR,e/VsdxExport.prototype.CONVERSION_FACTOR,b/VsdxExport.prototype.CONVERSION_FACTOR,a/VsdxExport.prototype.CONVERSION_FACTOR,d,g,p,y,A,x)};
+mxVsdxCanvas2D.prototype.createRowRel=function(c,n,m,k,f,e,b,a,d,g,p,y,A,x){var z=this.createElt("Row");z.setAttribute("T",c);z.setAttribute("IX",n);z.appendChild(this.createCellElem("X",m,d));z.appendChild(this.createCellElem("Y",k,g));null!=f&&z.appendChild(this.createCellElem("A",f,p));null!=e&&z.appendChild(this.createCellElem("B",e,y));null!=b&&z.appendChild(this.createCellElem("C",b,A));null!=a&&z.appendChild(this.createCellElem("D",a,x));return z};
mxVsdxCanvas2D.prototype.begin=function(){1<this.geoStepIndex&&this.createGeoSec()};
mxVsdxCanvas2D.prototype.rect=function(c,n,m,k){1<this.geoStepIndex&&this.createGeoSec();var f=this.state;m*=f.scale;k*=f.scale;var e=this.xmGeo;c=(c-e.x+f.dx)*f.scale/m;n=(e.height-n+e.y-f.dy)*f.scale/k;this.geoSec.appendChild(this.createRowRel("RelMoveTo",this.geoStepIndex++,c,n));this.geoSec.appendChild(this.createRowRel("RelLineTo",this.geoStepIndex++,c+1,n));this.geoSec.appendChild(this.createRowRel("RelLineTo",this.geoStepIndex++,c+1,n-1));this.geoSec.appendChild(this.createRowRel("RelLineTo",
this.geoStepIndex++,c,n-1));this.geoSec.appendChild(this.createRowRel("RelLineTo",this.geoStepIndex++,c,n))};mxVsdxCanvas2D.prototype.roundrect=function(c,n,m,k,f,e){this.rect(c,n,m,k);this.shape.appendChild(this.createCellElemScaled("Rounding",f))};
@@ -751,24 +751,24 @@ mxVsdxCanvas2D.prototype.ellipse=function(c,n,m,k){1<this.geoStepIndex&&this.cre
mxVsdxCanvas2D.prototype.moveTo=function(c,n){1<this.geoStepIndex&&this.createGeoSec();this.lastMoveToX=c;this.lastMoveToY=n;this.lastX=c;this.lastY=n;var m=this.xmGeo,k=this.state;c=(c-m.x+k.dx)*k.scale;n=(m.height-n+m.y-k.dy)*k.scale;var f=m.height*k.scale,m=m.width*k.scale;this.geoSec.appendChild(this.createRowRel("RelMoveTo",this.geoStepIndex++,c/m,n/f))};
mxVsdxCanvas2D.prototype.lineTo=function(c,n){this.lastX=c;this.lastY=n;var m=this.xmGeo,k=this.state;c=(c-m.x+k.dx)*k.scale;n=(m.height-n+m.y-k.dy)*k.scale;var f=m.height*k.scale,m=m.width*k.scale;this.geoSec.appendChild(this.createRowRel("RelLineTo",this.geoStepIndex++,c/m,n/f))};
mxVsdxCanvas2D.prototype.quadTo=function(c,n,m,k){this.lastX=m;this.lastY=k;var f=this.state,e=this.xmGeo,b=e.height*f.scale,a=e.width*f.scale;c=(c-e.x+f.dx)*f.scale;n=(e.height-n+e.y-f.dy)*f.scale;m=(m-e.x+f.dx)*f.scale;k=(e.height-k+e.y-f.dy)*f.scale;this.geoSec.appendChild(this.createRowRel("RelQuadBezTo",this.geoStepIndex++,m/a,k/b,c/a,n/b))};
-mxVsdxCanvas2D.prototype.curveTo=function(c,n,m,k,f,e){this.lastX=f;this.lastY=e;var b=this.state,a=this.xmGeo,d=a.height*b.scale,h=a.width*b.scale;c=(c-a.x+b.dx)*b.scale;n=(a.height-n+a.y-b.dy)*b.scale;m=(m-a.x+b.dx)*b.scale;k=(a.height-k+a.y-b.dy)*b.scale;f=(f-a.x+b.dx)*b.scale;e=(a.height-e+a.y-b.dy)*b.scale;this.geoSec.appendChild(this.createRowRel("RelCubBezTo",this.geoStepIndex++,f/h,e/d,c/h,n/d,m/h,k/d))};
+mxVsdxCanvas2D.prototype.curveTo=function(c,n,m,k,f,e){this.lastX=f;this.lastY=e;var b=this.state,a=this.xmGeo,d=a.height*b.scale,g=a.width*b.scale;c=(c-a.x+b.dx)*b.scale;n=(a.height-n+a.y-b.dy)*b.scale;m=(m-a.x+b.dx)*b.scale;k=(a.height-k+a.y-b.dy)*b.scale;f=(f-a.x+b.dx)*b.scale;e=(a.height-e+a.y-b.dy)*b.scale;this.geoSec.appendChild(this.createRowRel("RelCubBezTo",this.geoStepIndex++,f/g,e/d,c/g,n/d,m/g,k/d))};
mxVsdxCanvas2D.prototype.close=function(){this.lastMoveToX==this.lastX&&this.lastMoveToY==this.lastY||this.lineTo(this.lastMoveToX,this.lastMoveToY)};mxVsdxCanvas2D.prototype.addForeignData=function(c,n){var m=this.createElt("ForeignData");m.setAttribute("ForeignType","Bitmap");c=c.toUpperCase();"BMP"!=c&&m.setAttribute("CompressionType",c);var k=this.createElt("Rel");k.setAttribute("r:id","rId"+n);m.appendChild(k);this.shape.appendChild(m);this.shapeType="Foreign"};
mxVsdxCanvas2D.prototype.convertSvg2Png=function(c,n,m){var k=this;this.filesLoading++;try{var f=document.createElement("canvas"),e=f.getContext("2d");n||(c=String.fromCharCode.apply(null,new Uint8Array(c)),c=window.btoa?btoa(c):Base64.encode(c,!0));n="data:image/svg+xml;base64,"+c;img=new Image;img.onload=function(){f.width=this.width;f.height=this.height;e.drawImage(this,0,0);try{m(f.toDataURL("image/png"))}catch(b){}k.filesLoading--;if(0==k.filesLoading)k.onFilesLoaded()};img.onerror=function(){console.log("SVG2PNG conversion failed");
try{m(c)}catch(b){}k.filesLoading--;if(0==k.filesLoading)k.onFilesLoaded()};img.src=n}catch(b){console.log("SVG2PNG conversion failed"+b.message);try{m(c)}catch(a){}this.filesLoading--;if(0==k.filesLoading)k.onFilesLoaded()}};
-mxVsdxCanvas2D.prototype.image=function(c,n,m,k,f,e,b,a){var d=this,h="image"+(this.images.length+1)+".",p;if(0==f.indexOf("data:"))p=f.indexOf("base64,"),e=f.substring(p+7),p=f.substring(11,p-1),0==p.indexOf("svg")?(p="png",h+=p,this.convertSvg2Png(e,!0,function(a){d.zip.file("visio/media/"+h,a.substring(22),{base64:!0})})):(h+=p,this.zip.file("visio/media/"+h,e,{base64:!0}));else if(window.XMLHttpRequest){f=this.converter.convert(f);this.filesLoading++;p=f.lastIndexOf(".");p=f.substring(p+1);var y=
-!1;0==p.indexOf("svg")&&(p="png",y=!0);h+=p;e=new XMLHttpRequest;e.open("GET",f,!0);e.responseType="arraybuffer";e.onreadystatechange=function(a){if(4==this.readyState&&(200==this.status&&(y?d.convertSvg2Png(this.response,!1,function(a){d.zip.file("visio/media/"+h,a.substring(22),{base64:!0})}):d.zip.file("visio/media/"+h,this.response)),d.filesLoading--,0==d.filesLoading))d.onFilesLoaded()};e.send()}this.images.push(h);this.shapeImg={type:p,id:this.images.length+1};f=this.state;m*=f.scale;k*=f.scale;
+mxVsdxCanvas2D.prototype.image=function(c,n,m,k,f,e,b,a){var d=this,g="image"+(this.images.length+1)+".",p;if(0==f.indexOf("data:"))p=f.indexOf("base64,"),e=f.substring(p+7),p=f.substring(11,p-1),0==p.indexOf("svg")?(p="png",g+=p,this.convertSvg2Png(e,!0,function(a){d.zip.file("visio/media/"+g,a.substring(22),{base64:!0})})):(g+=p,this.zip.file("visio/media/"+g,e,{base64:!0}));else if(window.XMLHttpRequest){f=this.converter.convert(f);this.filesLoading++;p=f.lastIndexOf(".");p=f.substring(p+1);var y=
+!1;0==p.indexOf("svg")&&(p="png",y=!0);g+=p;e=new XMLHttpRequest;e.open("GET",f,!0);e.responseType="arraybuffer";e.onreadystatechange=function(a){if(4==this.readyState&&(200==this.status&&(y?d.convertSvg2Png(this.response,!1,function(a){d.zip.file("visio/media/"+g,a.substring(22),{base64:!0})}):d.zip.file("visio/media/"+g,this.response)),d.filesLoading--,0==d.filesLoading))d.onFilesLoaded()};e.send()}this.images.push(g);this.shapeImg={type:p,id:this.images.length+1};f=this.state;m*=f.scale;k*=f.scale;
p=this.xmGeo;c=(c-p.x+f.dx)*f.scale;n=(p.height-n+p.y-f.dy)*f.scale;this.shape.appendChild(this.createCellElemScaled("ImgOffsetX",c));this.shape.appendChild(this.createCellElemScaled("ImgOffsetY",n-k));this.shape.appendChild(this.createCellElemScaled("ImgWidth",m));this.shape.appendChild(this.createCellElemScaled("ImgHeight",k))};
-mxVsdxCanvas2D.prototype.text=function(c,n,m,k,f,e,b,a,d,h,p,y,z){var x=this;if(this.textEnabled&&null!=f){mxUtils.isNode(f)&&(f=mxUtils.getOuterHtml(f));0==m&&0==k&&(k=mxUtils.getSizeForString(f,x.cellState.style.fontSize,x.cellState.style.fontFamily),m=1.2*k.width,k=1.2*k.height);"html"==d&&("0"!=mxUtils.getValue(this.cellState.style,"nl2Br","1")&&(f=f.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n")),null==this.html2txtDiv&&(this.html2txtDiv=document.createElement("div")),this.html2txtDiv.innerHTML=
-f,f=mxUtils.extractTextWithWhitespace(this.html2txtDiv.childNodes));h=this.state;p=this.xmGeo;m*=h.scale;k*=h.scale;var C=this.createElt("Section");C.setAttribute("N","Character");var F=this.createElt("Section");F.setAttribute("N","Paragraph");var A=this.createElt("Text"),B=0,G=0,D=0,Z=0,Y=0,aa=0,L=0,S=function(b,d,h,p,c){var e=b.fontSize,y=b.fontFamily,f=mxUtils.getSizeForString(c,e,y);a&&f.width>m&&(f=mxUtils.getSizeForString(c,e,y,m));b.blockElem?(Y+=f.width,D=Math.min(Math.max(D,Y),m),Y=0,aa=
-Math.max(aa,f.height),Z+=aa+L,L=aa,aa=0):(Y+=f.width,D=Math.min(Math.max(D,Y),m),aa=Math.max(aa,f.height),Z=Math.max(Z,aa));f=x.createElt("Row");f.setAttribute("IX",B);b.fontColor&&f.appendChild(x.createCellElem("Color",b.fontColor));e&&f.appendChild(x.createCellElemScaled("Size",.97*e));y&&f.appendChild(x.createCellElem("Font",y));e=0;b.bold&&(e|=17);b.italic&&(e|=34);b.underline&&(e|=4);f.appendChild(x.createCellElem("Style",e));f.appendChild(x.createCellElem("Case","0"));f.appendChild(x.createCellElem("Pos",
-"0"));f.appendChild(x.createCellElem("FontScale","1"));f.appendChild(x.createCellElem("Letterspace","0"));d.appendChild(f);d=x.createElt("Row");d.setAttribute("IX",G);switch(b.align){case "left":e=0;break;case "center":e=1;break;case "right":e=2;break;case "start":e=0;break;case "end":e=2;break;case "justify":e=0;break;default:e=1}d.appendChild(x.createCellElem("HorzAlign",e));h.appendChild(d);h=x.createElt("cp");h.setAttribute("IX",B++);p.appendChild(h);b=x.xmlDoc.createTextNode(c+(b.blockElem?"\n":
-""));p.appendChild(b)},U=function(a,b){b=b||{};for(var d=0;d<a.length;d++){var h=a[d];if(3==h.nodeType){var p=x.cellState.style.fontStyle,c={fontColor:b.fontColor||x.cellState.style.fontColor,fontSize:b.fontSize||x.cellState.style.fontSize,fontFamily:b.fontFamily||x.cellState.style.fontFamily,align:b.align||x.cellState.style.align,bold:b.bold||p&1,italic:b.italic||p&2,underline:b.underline||p&4},p=!1;d+1<a.length&&"BR"==a[d+1].nodeName.toUpperCase()&&(p=!0,d++);S(c,C,F,A,(b.OL?b.LiIndex+". ":"")+
-h.textContent+(p?"\n":""))}else if(1==h.nodeType){var p=h.nodeName.toUpperCase(),e=h.childNodes.length,c=window.getComputedStyle(h,null),y="bold"==c.getPropertyValue("font-weight")||b.bold,f="italic"==c.getPropertyValue("font-style")||b.italic,z=0<=c.getPropertyValue("text-decoration").indexOf("underline")||b.underline,k=c.getPropertyValue("text-align"),m;m=c.getPropertyValue("color");m=(m=m.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===m.length?"#"+("0"+parseInt(m[1],
-10).toString(16)).slice(-2)+("0"+parseInt(m[2],10).toString(16)).slice(-2)+("0"+parseInt(m[3],10).toString(16)).slice(-2):"";c={bold:y,italic:f,underline:z,align:k,fontColor:m,fontSize:parseFloat(c.getPropertyValue("font-size")),fontFamily:c.getPropertyValue("font-family").replace(/"/g,""),blockElem:"block"==c.getPropertyValue("display")||"BR"==p||"LI"==p,OL:b.OL,LiIndex:b.LiIndex};"UL"==p?(y=x.createElt("Row"),y.setAttribute("IX",G),y.appendChild(x.createCellElem("HorzAlign","0")),y.appendChild(x.createCellElem("Bullet",
-"1")),F.appendChild(y),y=x.createElt("pp"),y.setAttribute("IX",G++),A.appendChild(y)):"OL"==p?c.OL=!0:"LI"==p&&(c.LiIndex=d+1);0<e?(U(h.childNodes,c),"UL"==p&&(y=x.createElt("Row"),y.setAttribute("IX",G),y.appendChild(x.createCellElem("Bullet","0")),F.appendChild(y),y=x.createElt("pp"),y.setAttribute("IX",G++),A.appendChild(y)),S(c,C,F,A,"")):S(c,C,F,A,(b.OL?b.LiIndex+". ":"")+h.textContent)}}};"html"==d&&mxClient.IS_SVG?(f=this.cellState.text.node.getElementsByTagName("div")[mxClient.NO_FO?0:1],
-null!=f&&U(f.childNodes,{})):S({fontColor:x.cellState.style.fontColor,fontSize:x.cellState.style.fontSize,fontFamily:x.cellState.style.fontFamily},C,F,A,f);d=f=0;k=Math.max(k,Z);m=Math.max(m,D);z=m/2;var da=k/2,ka=parseInt(mxUtils.getValue(this.cellState.style,"rotation","0")),ba=ka*Math.PI/180;switch(e){case "right":0!=ka?(c-=z*Math.cos(ba),n-=z*Math.sin(ba)):f=D/2;break;case "left":0!=ka?(c+=z*Math.cos(ba),n+=z*Math.sin(ba)):f=-D/2}switch(b){case "top":0!=ka?(c+=da*Math.sin(ba),n+=da*Math.cos(ba)):
-d=Z/2;break;case "bottom":0!=ka?(c-=da*Math.sin(ba),n-=da*Math.cos(ba)):d=-Z/2}c=(c-p.x+h.dx)*h.scale;n=(p.height-n+p.y-h.dy)*h.scale;this.shape.appendChild(this.createCellElemScaled("TxtPinX",c));this.shape.appendChild(this.createCellElemScaled("TxtPinY",n));this.shape.appendChild(this.createCellElemScaled("TxtWidth",m));this.shape.appendChild(this.createCellElemScaled("TxtHeight",k));this.shape.appendChild(this.createCellElemScaled("TxtLocPinX",z+f));this.shape.appendChild(this.createCellElemScaled("TxtLocPinY",
-da+d));y-=ka;0!=y&&this.shape.appendChild(this.createCellElem("TxtAngle",(360-y)*Math.PI/180));this.shape.appendChild(C);this.shape.appendChild(F);this.shape.appendChild(A)}};mxVsdxCanvas2D.prototype.rotate=function(c,n,m,k,f){0!=c&&(n=this.state,k+=n.dx,f+=n.dy,k*=n.scale,f*=n.scale,this.shape.appendChild(this.createCellElem("Angle",(360-c)*Math.PI/180)),n.rotation+=c,n.rotationCx=k,n.rotationCy=f)};
+mxVsdxCanvas2D.prototype.text=function(c,n,m,k,f,e,b,a,d,g,p,y,A){var x=this;if(this.textEnabled&&null!=f){mxUtils.isNode(f)&&(f=mxUtils.getOuterHtml(f));0==m&&0==k&&(k=mxUtils.getSizeForString(f,x.cellState.style.fontSize,x.cellState.style.fontFamily),m=1.2*k.width,k=1.2*k.height);"html"==d&&("0"!=mxUtils.getValue(this.cellState.style,"nl2Br","1")&&(f=f.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n")),null==this.html2txtDiv&&(this.html2txtDiv=document.createElement("div")),this.html2txtDiv.innerHTML=
+f,f=mxUtils.extractTextWithWhitespace(this.html2txtDiv.childNodes));g=this.state;p=this.xmGeo;m*=g.scale;k*=g.scale;var z=this.createElt("Section");z.setAttribute("N","Character");var F=this.createElt("Section");F.setAttribute("N","Paragraph");var B=this.createElt("Text"),C=0,G=0,D=0,Z=0,Y=0,aa=0,L=0,S=function(b,d,g,p,c){var e=b.fontSize,y=b.fontFamily,f=mxUtils.getSizeForString(c,e,y);a&&f.width>m&&(f=mxUtils.getSizeForString(c,e,y,m));b.blockElem?(Y+=f.width,D=Math.min(Math.max(D,Y),m),Y=0,aa=
+Math.max(aa,f.height),Z+=aa+L,L=aa,aa=0):(Y+=f.width,D=Math.min(Math.max(D,Y),m),aa=Math.max(aa,f.height),Z=Math.max(Z,aa));f=x.createElt("Row");f.setAttribute("IX",C);b.fontColor&&f.appendChild(x.createCellElem("Color",b.fontColor));e&&f.appendChild(x.createCellElemScaled("Size",.97*e));y&&f.appendChild(x.createCellElem("Font",y));e=0;b.bold&&(e|=17);b.italic&&(e|=34);b.underline&&(e|=4);f.appendChild(x.createCellElem("Style",e));f.appendChild(x.createCellElem("Case","0"));f.appendChild(x.createCellElem("Pos",
+"0"));f.appendChild(x.createCellElem("FontScale","1"));f.appendChild(x.createCellElem("Letterspace","0"));d.appendChild(f);d=x.createElt("Row");d.setAttribute("IX",G);switch(b.align){case "left":e=0;break;case "center":e=1;break;case "right":e=2;break;case "start":e=0;break;case "end":e=2;break;case "justify":e=0;break;default:e=1}d.appendChild(x.createCellElem("HorzAlign",e));g.appendChild(d);g=x.createElt("cp");g.setAttribute("IX",C++);p.appendChild(g);b=x.xmlDoc.createTextNode(c+(b.blockElem?"\n":
+""));p.appendChild(b)},U=function(a,b){b=b||{};for(var d=0;d<a.length;d++){var g=a[d];if(3==g.nodeType){var p=x.cellState.style.fontStyle,c={fontColor:b.fontColor||x.cellState.style.fontColor,fontSize:b.fontSize||x.cellState.style.fontSize,fontFamily:b.fontFamily||x.cellState.style.fontFamily,align:b.align||x.cellState.style.align,bold:b.bold||p&1,italic:b.italic||p&2,underline:b.underline||p&4},p=!1;d+1<a.length&&"BR"==a[d+1].nodeName.toUpperCase()&&(p=!0,d++);S(c,z,F,B,(b.OL?b.LiIndex+". ":"")+
+g.textContent+(p?"\n":""))}else if(1==g.nodeType){var p=g.nodeName.toUpperCase(),e=g.childNodes.length,c=window.getComputedStyle(g,null),y="bold"==c.getPropertyValue("font-weight")||b.bold,f="italic"==c.getPropertyValue("font-style")||b.italic,A=0<=c.getPropertyValue("text-decoration").indexOf("underline")||b.underline,k=c.getPropertyValue("text-align"),m;m=c.getPropertyValue("color");m=(m=m.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===m.length?"#"+("0"+parseInt(m[1],
+10).toString(16)).slice(-2)+("0"+parseInt(m[2],10).toString(16)).slice(-2)+("0"+parseInt(m[3],10).toString(16)).slice(-2):"";c={bold:y,italic:f,underline:A,align:k,fontColor:m,fontSize:parseFloat(c.getPropertyValue("font-size")),fontFamily:c.getPropertyValue("font-family").replace(/"/g,""),blockElem:"block"==c.getPropertyValue("display")||"BR"==p||"LI"==p,OL:b.OL,LiIndex:b.LiIndex};"UL"==p?(y=x.createElt("Row"),y.setAttribute("IX",G),y.appendChild(x.createCellElem("HorzAlign","0")),y.appendChild(x.createCellElem("Bullet",
+"1")),F.appendChild(y),y=x.createElt("pp"),y.setAttribute("IX",G++),B.appendChild(y)):"OL"==p?c.OL=!0:"LI"==p&&(c.LiIndex=d+1);0<e?(U(g.childNodes,c),"UL"==p&&(y=x.createElt("Row"),y.setAttribute("IX",G),y.appendChild(x.createCellElem("Bullet","0")),F.appendChild(y),y=x.createElt("pp"),y.setAttribute("IX",G++),B.appendChild(y)),S(c,z,F,B,"")):S(c,z,F,B,(b.OL?b.LiIndex+". ":"")+g.textContent)}}};"html"==d&&mxClient.IS_SVG?(f=this.cellState.text.node.getElementsByTagName("div")[mxClient.NO_FO?0:1],
+null!=f&&U(f.childNodes,{})):S({fontColor:x.cellState.style.fontColor,fontSize:x.cellState.style.fontSize,fontFamily:x.cellState.style.fontFamily},z,F,B,f);d=f=0;k=Math.max(k,Z);m=Math.max(m,D);A=m/2;var da=k/2,ba=parseInt(mxUtils.getValue(this.cellState.style,"rotation","0")),ia=ba*Math.PI/180;switch(e){case "right":0!=ba?(c-=A*Math.cos(ia),n-=A*Math.sin(ia)):f=D/2;break;case "left":0!=ba?(c+=A*Math.cos(ia),n+=A*Math.sin(ia)):f=-D/2}switch(b){case "top":0!=ba?(c+=da*Math.sin(ia),n+=da*Math.cos(ia)):
+d=Z/2;break;case "bottom":0!=ba?(c-=da*Math.sin(ia),n-=da*Math.cos(ia)):d=-Z/2}c=(c-p.x+g.dx)*g.scale;n=(p.height-n+p.y-g.dy)*g.scale;this.shape.appendChild(this.createCellElemScaled("TxtPinX",c));this.shape.appendChild(this.createCellElemScaled("TxtPinY",n));this.shape.appendChild(this.createCellElemScaled("TxtWidth",m));this.shape.appendChild(this.createCellElemScaled("TxtHeight",k));this.shape.appendChild(this.createCellElemScaled("TxtLocPinX",A+f));this.shape.appendChild(this.createCellElemScaled("TxtLocPinY",
+da+d));y-=ba;0!=y&&this.shape.appendChild(this.createCellElem("TxtAngle",(360-y)*Math.PI/180));this.shape.appendChild(z);this.shape.appendChild(F);this.shape.appendChild(B)}};mxVsdxCanvas2D.prototype.rotate=function(c,n,m,k,f){0!=c&&(n=this.state,k+=n.dx,f+=n.dy,k*=n.scale,f*=n.scale,this.shape.appendChild(this.createCellElem("Angle",(360-c)*Math.PI/180)),n.rotation+=c,n.rotationCx=k,n.rotationCy=f)};
mxVsdxCanvas2D.prototype.stroke=function(){this.geoSec.appendChild(this.createCellElem("NoFill","1"));this.geoSec.appendChild(this.createCellElem("NoLine","0"))};mxVsdxCanvas2D.prototype.fill=function(){this.geoSec.appendChild(this.createCellElem("NoFill","0"));this.geoSec.appendChild(this.createCellElem("NoLine","1"))};mxVsdxCanvas2D.prototype.fillAndStroke=function(){this.geoSec.appendChild(this.createCellElem("NoFill","0"));this.geoSec.appendChild(this.createCellElem("NoLine","0"))};function BmpDecoder(c,n){this.pos=0;this.buffer=c;this.is_with_alpha=!!n;if(66!=this.buffer[0]&&77!=this.buffer[1])throw Error("Invalid BMP File");this.pos+=2;this.parseHeader();this.parseBGR()}
BmpDecoder.prototype.parseHeader=function(){var c=this.buffer;this.fileSize=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.reserved=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.offset=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.headerSize=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.width=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];
this.pos+=4;this.height=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.planes=c[this.pos+1]<<8|c[this.pos];this.pos+=2;this.bitPP=c[this.pos+1]<<8|c[this.pos];this.pos+=2;this.compress=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.rawSize=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.hr=c[this.pos+3]<<24|c[this.pos+2]<<16|c[this.pos+1]<<8|c[this.pos];this.pos+=4;this.vr=c[this.pos+3]<<24|c[this.pos+
@@ -783,67 +783,69 @@ BmpDecoder.prototype.bit24=function(){var c=3*this.width%4;0!=c&&(c=4-c);for(var
BmpDecoder.prototype.bit32=function(){for(var c=this.height-1;0<=c;c--)for(var n=0;n<this.width;n++){var m=this.buffer[this.pos++],k=this.buffer[this.pos++],f=this.buffer[this.pos++],e=this.buffer[this.pos++],b=c*this.width*4+4*n;this.data[b]=f;this.data[b+1]=k;this.data[b+2]=m;this.data[b+3]=e}};BmpDecoder.prototype.getData=function(){return this.data};var __extends=this&&this.__extends||function(c,n){function m(){this.constructor=c}for(var k in n)n.hasOwnProperty(k)&&(c[k]=n[k]);c.prototype=null===n?Object.create(n):(m.prototype=n.prototype,new m)},com;
(function(c){(function(n){(function(m){var k=function(){function f(c){this.RESPONSE_END="</mxfile>";this.RESPONSE_DIAGRAM_START="";this.RESPONSE_DIAGRAM_END="</diagram>";this.RESPONSE_HEADER='<?xml version="1.0" encoding="UTF-8"?><mxfile>';this.vertexMap={};this.edgeShapeMap={};this.vertexShapeMap={};this.parentsMap={};this.layersMap={};this.debugPaths=!1;this.vsdxModel=null;this.editorUi=c}f.vsdxPlaceholder_$LI$=function(){null==f.vsdxPlaceholder&&(f.vsdxPlaceholder=window.atob?atob("dmlzaW8="):
Base64.decode("dmlzaW8=",!0));return f.vsdxPlaceholder};f.parsererrorNS_$LI$=function(){if(null==f.parsererrorNS&&(f.parsererrorNS="",window.DOMParser)){var c=new DOMParser;try{f.parsererrorNS=c.parseFromString("<","text/xml").getElementsByTagName("parsererror")[0].namespaceURI}catch(b){}}return f.parsererrorNS};f.parseXml=function(c){try{var b=mxUtils.parseXml(c);return 0<b.getElementsByTagNameNS(f.parsererrorNS,"parsererror").length?null:b}catch(a){return null}};f.decodeUTF16LE=function(c){for(var b=
-"",a=0;a<c.length;a+=2)b+=String.fromCharCode(c.charCodeAt(a)|c.charCodeAt(a+1)<<8);return b};f.prototype.scaleGraph=function(c,b){if(1!==b){var a=c.getModel(),d;for(d in a.cells){var h=a.cells[d],p=a.getGeometry(h);if(null!=p&&(this.scaleRect(p,b),this.scaleRect(p.alternateBounds,b),a.isEdge(h)&&(this.scalePoint(p.sourcePoint,b),this.scalePoint(p.targetPoint,b),this.scalePoint(p.offset,b),h=p.points,null!=h)))for(p=0;p<h.length;p++)this.scalePoint(h[p],b)}}};f.prototype.decodeVsdx=function(e,b,a,
-d){var h=this,p={},y={},z=function(){for(var a=f.vsdxPlaceholder+"/document.xml",d=p[a]?p[a]:null,e=d.firstChild;null!=e&&1!=e.nodeType;)e=e.nextSibling;if(null!=e&&1==e.nodeType)h.importNodes(d,e,a,p);else return null;h.vsdxModel=new c.mxgraph.io.vsdx.mxVsdxModel(d,p,y);for(var a=h.vsdxModel.getPages(),z=h.RESPONSE_HEADER,x=function(a){null==a.entries&&(a.entries=[]);return a.entries}(a),a=function(a){a=x[a].getValue();var b=k.createMxGraph();b.getModel().beginUpdate();k.importPage(a,b,b.getDefaultParent());
-k.scaleGraph(b,a.getPageScale()/a.getDrawingScale());b.getModel().endUpdate();z=z.concat(h.RESPONSE_DIAGRAM_START);z=z.concat(h.processPage(b,a));z=z.concat(h.RESPONSE_DIAGRAM_END)},k=h,d=0;d<x.length;d++)a(d);z=z.concat(h.RESPONSE_END);b&&b(z)},x=0,k=0,m=function(){if(k==x)try{z()}catch(A){console.log(A),null!=d?d():b("")}};JSZip.loadAsync(e).then(function(a){0==Object.keys(a.files).length?null!=d&&d():a.forEach(function(a,b){var d=b.name,c=d.toLowerCase(),e=c.length;c.indexOf(".xml")==e-4||c.indexOf(".xml.rels")==
-e-9?(x++,b.async("string").then(function(a){if(0!==a.length){65279==a.charCodeAt(0)&&(a=a.substring(1));var b=f.parseXml(a);null==b&&0===a.charCodeAt(1)&&0===a.charCodeAt(3)&&0===a.charCodeAt(5)&&(b=f.parseXml(f.decodeUTF16LE(a)));null!=b&&(b.vsdxFileName=d,p[d]=b)}k++;m()})):0===c.indexOf(f.vsdxPlaceholder+"/media")&&(x++,function(a,b){var d=a.length-b.length,h=a.indexOf(b,d);return-1!==h&&h===d}(c,".emf")?JSZip.support.blob&&window.EMF_CONVERT_URL?b.async("blob").then(function(a){var b=new FormData;
-b.append("img",a,c);b.append("inputformat","emf");b.append("outputformat","png");var p=new XMLHttpRequest;p.open("POST",EMF_CONVERT_URL);p.responseType="blob";h.editorUi.addRemoteServiceSecurityCheck(p);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var a=new FileReader;a.readAsDataURL(p.response);a.onloadend=function(){var b=a.result.indexOf(",")+1;y[d]=a.result.substr(b);k++;m()}}catch(da){console.log(da),k++,m()}else k++,m()});p.send(b)}):
-(k++,m()):function(a,b){var d=a.length-b.length,h=a.indexOf(b,d);return-1!==h&&h===d}(c,".bmp")?JSZip.support.uint8array&&b.async("uint8array").then(function(a){a=new BmpDecoder(a);var b=document.createElement("canvas");b.width=a.width;b.height=a.height;b.getContext("2d").putImageData(a.imageData,0,0);a=b.toDataURL("image/jpeg");y[d]=a.substr(23);k++;m()}):b.async("base64").then(function(a){y[d]=a;k++;m()}))})},function(a){null!=d&&d(a)})};f.prototype.createMxGraph=function(){var c=new Graph;c.setExtendParents(!1);
-c.setExtendParentsOnAdd(!1);c.setConstrainChildren(!1);c.setHtmlLabels(!0);c.getModel().maintainEdgeParent=!1;return c};f.prototype.processPage=function(c,b){var a=(new mxCodec).encode(c.getModel());a.setAttribute("style","default-style2");var a=mxUtils.getXml(a),d="";if(null!=b)var h=mxUtils.htmlEntities(b.getPageName())+(b.isBackground()?" (Background)":""),d=d+('<diagram name="'+h+'" id="'+h.replace(/\s/g,"_")+'">');return d+=Graph.compress(a)};f.prototype.scalePoint=function(c,b){null!=c&&(c.x*=
-b,c.y*=b);return c};f.prototype.scaleRect=function(c,b){null!=c&&(c.x*=b,c.y*=b,c.height*=b,c.width*=b);return c};f.prototype.importNodes=function(c,b,a,d){var h=a.lastIndexOf("/"),p=a,e=a;if(-1!==h&&(p=a.substring(0,h),e=a.substring(h+1,a.length),a=function(a,b){return a[b]?a[b]:null}(d,p+"/_rels/"+e+".rels"),null!=a)){var f=a.getElementsByTagName("Relationship");a={};for(h=0;h<f.length;h++){var e=f.item(h),x=e.getAttribute("Id"),e=e.getAttribute("Target");a[x]=e}b=b.getElementsByTagName("Rel");
-for(h=0;h<b.length;h++)if(f=b.item(h),e=function(a,b){return a[b]?a[b]:null}(a,f.getAttribute("r:id")),e=p+"/"+e,null!=e&&(x=d[e]?d[e]:null,null!=x)){f=f.parentNode;for(x=x.firstChild;null!=x&&1!=x.nodeType;)x=x.nextSibling;if(null!=x&&1==x.nodeType)for(x=x.firstChild;null!=x;){if(null!=x&&1==x.nodeType){var k=f.appendChild(c.importNode(x,!0));this.importNodes(c,k,e,d)}x=x.nextSibling}}}};f.prototype.importPage=function(c,b,a){var d=c.getBackPage();if(null!=d){b.getModel().setValue(b.getDefaultParent(),
-c.getPageName());var h=new mxCell(d.getPageName());b.addCell(h,b.getModel().getRoot(),0,null,null);this.importPage(d,b,b.getDefaultParent())}d=c.getLayers();this.layersMap[0]=b.getDefaultParent();if(1<d.length)for(h=1;h<d.length;h++){var p=d[h],e=new mxCell;e.setVisible(1==p.Visible);1==p.Lock&&e.setStyle("locked=1;");e.setValue(p.Name);this.layersMap[h]=e;b.addCell(e,b.model.root,h)}p=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==
-a.entries&&(a.entries=[]);return a.entries}(c.getShapes()));d=c.getPageDimensions().y;for(h=c.getId();p.hasNext();){var e=p.next(),e=e.getValue(),f=this.layersMap[e.layerMember];this.addShape(b,e,f?f:a,h,d)}for(c=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(c.getConnects()));c.hasNext();)e=c.next(),a=this.addConnectedEdge(b,e.getValue(),h,d),null!=a&&function(a,b){null==
-a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries.splice(d,1)[0]}(this.edgeShapeMap,a);for(c=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(this.edgeShapeMap));c.hasNext();)a=c.next(),a.getKey().getPageNumber()===h&&this.addUnconnectedEdge(b,function(a,b){null==
-a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.parentsMap,a.getKey()),a.getValue(),d);this.sanitiseGraph(b);return d};f.prototype.addShape=function(e,b,a,d,h){b.parentHeight=h;var p=c.mxgraph.io.vsdx.VsdxShape.getType(b.getShape());if(null!=p&&(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,c.mxgraph.io.vsdx.mxVsdxConstants.TYPE_SHAPE)||function(a,b){return a&&
-a.equals?a.equals(b):a===b}(p,c.mxgraph.io.vsdx.mxVsdxConstants.TYPE_GROUP)||function(a,b){return a&&a.equals?a.equals(b):a===b}(p,c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))){var y=b.getId();if(b.isVertex())return p=null,p=b.isGroup()?this.addGroup(e,b,a,d,h):this.addVertex(e,b,a,d,h),function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,
-value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexShapeMap,new c.mxgraph.io.vsdx.ShapePageId(d,y),b),b=b.getHyperlink(),b.extLink?e.setLinkForCell(p,b.extLink):b.pageLink&&e.setLinkForCell(p,"data:page/id,"+b.pageLink),p;b.setShapeIndex(e.getModel().getChildCount(a));(function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=
-d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.edgeShapeMap,new c.mxgraph.io.vsdx.ShapePageId(d,y),b);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.parentsMap,new c.mxgraph.io.vsdx.ShapePageId(d,
-y),a)}return null};f.prototype.addGroup=function(e,b,a,d,h){var p=b.getDimensions(),y=b.getMaster(),f=b.getStyleFromShape(),x=b.getGeomList();x.isNoFill()&&(f[mxConstants.STYLE_FILLCOLOR]="none",f[mxConstants.STYLE_GRADIENTCOLOR]="none");x.isNoLine()&&(f[mxConstants.STYLE_STROKECOLOR]="none");f.html="1";f[mxConstants.STYLE_WHITE_SPACE]="wrap";var k=c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"="),f=null,m=b.getChildShapes(),f=null!=m&&0<function(a){null==a.entries&&(a.entries=[]);return a.entries.length}(m),
-x=b.isDisplacedLabel()||b.isRotatedLabel()||f,f=b.getOriginPoint(h,!0);if(x)f=e.insertVertex(a,null,null,Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),Math.floor(Math.round(100*p.x)/100),Math.floor(Math.round(100*p.y)/100),k);else var n=b.getTextLabel(),f=e.insertVertex(a,null,n,Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),Math.floor(Math.round(100*p.x)/100),Math.floor(Math.round(100*p.y)/100),k);for(a=function(a){var b=0;return{next:function(){return b<
+"",a=0;a<c.length;a+=2)b+=String.fromCharCode(c.charCodeAt(a)|c.charCodeAt(a+1)<<8);return b};f.prototype.scaleGraph=function(c,b){if(1!==b){var a=c.getModel(),d;for(d in a.cells){var g=a.cells[d],p=a.getGeometry(g);if(null!=p&&(this.scaleRect(p,b),this.scaleRect(p.alternateBounds,b),a.isEdge(g)&&(this.scalePoint(p.sourcePoint,b),this.scalePoint(p.targetPoint,b),this.scalePoint(p.offset,b),g=p.points,null!=g)))for(p=0;p<g.length;p++)this.scalePoint(g[p],b)}}};f.prototype.decodeVsdx=function(e,b,a,
+d){var g=this,p={},y={},A=function(){for(var a=f.vsdxPlaceholder+"/document.xml",d=p[a]?p[a]:null,e=d.firstChild;null!=e&&1!=e.nodeType;)e=e.nextSibling;if(null!=e&&1==e.nodeType)g.importNodes(d,e,a,p);else return null;g.vsdxModel=new c.mxgraph.io.vsdx.mxVsdxModel(d,p,y);for(var a=g.vsdxModel.getPages(),x=g.RESPONSE_HEADER,A=function(a){null==a.entries&&(a.entries=[]);return a.entries}(a),a=function(a){a=A[a].getValue();var b=k.createMxGraph();b.getModel().beginUpdate();k.importPage(a,b,b.getDefaultParent());
+k.scaleGraph(b,a.getPageScale()/a.getDrawingScale());b.getModel().endUpdate();x=x.concat(g.RESPONSE_DIAGRAM_START);x=x.concat(g.processPage(b,a));x=x.concat(g.RESPONSE_DIAGRAM_END)},k=g,d=0;d<A.length;d++)a(d);x=x.concat(g.RESPONSE_END);b&&b(x)},x=0,k=0,m=function(){if(k==x)try{A()}catch(B){console.log(B),null!=d?d():b("")}};JSZip.loadAsync(e).then(function(a){0==Object.keys(a.files).length?null!=d&&d():a.forEach(function(a,b){var d=b.name,c=d.toLowerCase(),e=c.length;c.indexOf(".xml")==e-4||c.indexOf(".xml.rels")==
+e-9?(x++,b.async("string").then(function(a){if(0!==a.length){65279==a.charCodeAt(0)&&(a=a.substring(1));var b=f.parseXml(a);null==b&&0===a.charCodeAt(1)&&0===a.charCodeAt(3)&&0===a.charCodeAt(5)&&(b=f.parseXml(f.decodeUTF16LE(a)));null!=b&&(b.vsdxFileName=d,p[d]=b)}k++;m()})):0===c.indexOf(f.vsdxPlaceholder+"/media")&&(x++,function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(c,".emf")?JSZip.support.blob&&window.EMF_CONVERT_URL?b.async("blob").then(function(a){var b=new FormData;
+b.append("img",a,c);b.append("inputformat","emf");b.append("outputformat","png");var p=new XMLHttpRequest;p.open("POST",EMF_CONVERT_URL);p.responseType="blob";g.editorUi.addRemoteServiceSecurityCheck(p);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var a=new FileReader;a.readAsDataURL(p.response);a.onloadend=function(){var b=a.result.indexOf(",")+1;y[d]=a.result.substr(b);k++;m()}}catch(da){console.log(da),k++,m()}else k++,m()});p.send(b)}):
+(k++,m()):function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(c,".bmp")?JSZip.support.uint8array&&b.async("uint8array").then(function(a){a=new BmpDecoder(a);var b=document.createElement("canvas");b.width=a.width;b.height=a.height;b.getContext("2d").putImageData(a.imageData,0,0);a=b.toDataURL("image/jpeg");y[d]=a.substr(23);k++;m()}):b.async("base64").then(function(a){y[d]=a;k++;m()}))})},function(a){null!=d&&d(a)})};f.prototype.createMxGraph=function(){var c=new Graph;c.setExtendParents(!1);
+c.setExtendParentsOnAdd(!1);c.setConstrainChildren(!1);c.setHtmlLabels(!0);c.getModel().maintainEdgeParent=!1;return c};f.prototype.processPage=function(c,b){var a=(new mxCodec).encode(c.getModel());a.setAttribute("style","default-style2");var a=mxUtils.getXml(a),d="";if(null!=b)var g=mxUtils.htmlEntities(b.getPageName())+(b.isBackground()?" (Background)":""),d=d+('<diagram name="'+g+'" id="'+g.replace(/\s/g,"_")+'">');return d+=Graph.compress(a)};f.prototype.scalePoint=function(c,b){null!=c&&(c.x*=
+b,c.y*=b);return c};f.prototype.scaleRect=function(c,b){null!=c&&(c.x*=b,c.y*=b,c.height*=b,c.width*=b);return c};f.prototype.importNodes=function(c,b,a,d){var g=a.lastIndexOf("/"),p=a,e=a;if(-1!==g&&(p=a.substring(0,g),e=a.substring(g+1,a.length),a=function(a,b){return a[b]?a[b]:null}(d,p+"/_rels/"+e+".rels"),null!=a)){var f=a.getElementsByTagName("Relationship");a={};for(g=0;g<f.length;g++){var e=f.item(g),x=e.getAttribute("Id"),e=e.getAttribute("Target");a[x]=e}b=b.getElementsByTagName("Rel");
+for(g=0;g<b.length;g++)if(f=b.item(g),e=function(a,b){return a[b]?a[b]:null}(a,f.getAttribute("r:id")),e=p+"/"+e,null!=e&&(x=d[e]?d[e]:null,null!=x)){f=f.parentNode;for(x=x.firstChild;null!=x&&1!=x.nodeType;)x=x.nextSibling;if(null!=x&&1==x.nodeType)for(x=x.firstChild;null!=x;){if(null!=x&&1==x.nodeType){var k=f.appendChild(c.importNode(x,!0));this.importNodes(c,k,e,d)}x=x.nextSibling}}}};f.prototype.importPage=function(c,b,a){var d=c.getBackPage();if(null!=d){b.getModel().setValue(b.getDefaultParent(),
+c.getPageName());var g=new mxCell(d.getPageName());b.addCell(g,b.getModel().getRoot(),0,null,null);this.importPage(d,b,b.getDefaultParent())}d=c.getLayers();this.layersMap[0]=b.getDefaultParent();if(1<d.length)for(g=1;g<d.length;g++){var p=d[g],e=new mxCell;e.setVisible(1==p.Visible);1==p.Lock&&e.setStyle("locked=1;");e.setValue(p.Name);this.layersMap[g]=e;b.addCell(e,b.model.root,g)}p=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==
+a.entries&&(a.entries=[]);return a.entries}(c.getShapes()));d=c.getPageDimensions().y;for(g=c.getId();p.hasNext();){var e=p.next(),e=e.getValue(),f=this.layersMap[e.layerMember];this.addShape(b,e,f?f:a,g,d)}for(c=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(c.getConnects()));c.hasNext();)e=c.next(),a=this.addConnectedEdge(b,e.getValue(),g,d),null!=a&&function(a,b){null==
+a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries.splice(d,1)[0]}(this.edgeShapeMap,a);for(c=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(this.edgeShapeMap));c.hasNext();)a=c.next(),a.getKey().getPageNumber()===g&&this.addUnconnectedEdge(b,function(a,b){null==
+a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.parentsMap,a.getKey()),a.getValue(),d);this.sanitiseGraph(b);return d};f.prototype.addShape=function(e,b,a,d,g){b.parentHeight=g;var p=c.mxgraph.io.vsdx.VsdxShape.getType(b.getShape());if(null!=p&&(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,c.mxgraph.io.vsdx.mxVsdxConstants.TYPE_SHAPE)||function(a,b){return a&&
+a.equals?a.equals(b):a===b}(p,c.mxgraph.io.vsdx.mxVsdxConstants.TYPE_GROUP)||function(a,b){return a&&a.equals?a.equals(b):a===b}(p,c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))){var y=b.getId();if(b.isVertex())return p=null,p=b.isGroup()?this.addGroup(e,b,a,d,g):this.addVertex(e,b,a,d,g),function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,
+value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexShapeMap,new c.mxgraph.io.vsdx.ShapePageId(d,y),b),b=b.getHyperlink(),b.extLink?e.setLinkForCell(p,b.extLink):b.pageLink&&e.setLinkForCell(p,"data:page/id,"+b.pageLink),p;b.setShapeIndex(e.getModel().getChildCount(a));(function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=
+d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.edgeShapeMap,new c.mxgraph.io.vsdx.ShapePageId(d,y),b);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.parentsMap,new c.mxgraph.io.vsdx.ShapePageId(d,
+y),a)}return null};f.prototype.addGroup=function(e,b,a,d,g){var p=b.getDimensions(),y=b.getMaster(),f=b.getStyleFromShape(),x=b.getGeomList();x.isNoFill()&&(f[mxConstants.STYLE_FILLCOLOR]="none",f[mxConstants.STYLE_GRADIENTCOLOR]="none");x.isNoLine()&&(f[mxConstants.STYLE_STROKECOLOR]="none");f.html="1";f[mxConstants.STYLE_WHITE_SPACE]="wrap";var k=c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"="),f=null,m=b.getChildShapes(),f=null!=m&&0<function(a){null==a.entries&&(a.entries=[]);return a.entries.length}(m),
+x=b.isDisplacedLabel()||b.isRotatedLabel()||f,f=b.getOriginPoint(g,!0);if(x)f=e.insertVertex(a,null,null,Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),Math.floor(Math.round(100*p.x)/100),Math.floor(Math.round(100*p.y)/100),k);else var n=b.getTextLabel(),f=e.insertVertex(a,null,n,Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),Math.floor(Math.round(100*p.x)/100),Math.floor(Math.round(100*p.y)/100),k);for(a=function(a){var b=0;return{next:function(){return b<
a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(m));a.hasNext();)k=a.next().getValue(),m=k.getId(),k.isVertex()?(n=c.mxgraph.io.vsdx.VsdxShape.getType(k.getShape()),null!=n&&(function(a,b){return a&&a.equals?a.equals(b):a===b}(n,c.mxgraph.io.vsdx.mxVsdxConstants.TYPE_SHAPE)||function(a,b){return a&&a.equals?a.equals(b):a===b}(n,c.mxgraph.io.vsdx.mxVsdxConstants.TYPE_GROUP)||function(a,b){return a&&a.equals?a.equals(b):a===
-b}(n,c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))&&k.isVertex()&&(k.propagateRotation(b.getRotation()),k.isGroup()?this.addGroup(e,k,f,d,p.y):this.addVertex(e,k,f,d,p.y)),null==y&&function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexShapeMap,
-new c.mxgraph.io.vsdx.ShapePageId(d,m),k)):null==y?(function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.edgeShapeMap,new c.mxgraph.io.vsdx.ShapePageId(d,m),k),function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=
-a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.parentsMap,new c.mxgraph.io.vsdx.ShapePageId(d,m),f)):this.addUnconnectedEdge(e,f,k,h);x&&b.createLabelSubShape(e,f);e=b.getRotation();if(0!==e)for(p=f.getGeometry(),h=p.width/2,p=p.height/2,y=0;y<f.getChildCount();y++)x=f.getChildAt(y),c.mxgraph.online.Utils.rotatedGeometry(x.getGeometry(),
-e,h,p);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.vertexMap,new c.mxgraph.io.vsdx.ShapePageId(d,b.getId()),f);return f};f.rotatedEdgePoint=function(c,b,a,d){b=b*Math.PI/180;var h=Math.cos(b);b=Math.sin(b);var p=c.x-a,e=c.y-d;c.x=Math.round(p*
-h-e*b+a);c.y=Math.round(e*h+p*b+d)};f.prototype.addVertex=function(e,b,a,d,h){var p="",y=b.isDisplacedLabel()||b.isRotatedLabel();y||(p=b.getTextLabel());var f=b.getDimensions(),x=b.getStyleFromShape();x.html="1";var k=x.hasOwnProperty(mxConstants.STYLE_SHAPE)||x.hasOwnProperty("stencil");x.hasOwnProperty(mxConstants.STYLE_FILLCOLOR)&&k||(x[mxConstants.STYLE_FILLCOLOR]="none");k||(x[mxConstants.STYLE_STROKECOLOR]="none");x.hasOwnProperty(mxConstants.STYLE_GRADIENTCOLOR)&&k||(x[mxConstants.STYLE_GRADIENTCOLOR]=
-"none");x[mxConstants.STYLE_WHITE_SPACE]="wrap";h=b.getOriginPoint(h,!0);return k||null!=p?(x=c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(x,"="),k=null,k=y?e.insertVertex(a,null,null,Math.floor(Math.round(100*h.x)/100),Math.floor(Math.round(100*h.y)/100),Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),x):e.insertVertex(a,null,p,Math.floor(Math.round(100*h.x)/100),Math.floor(Math.round(100*h.y)/100),Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),x),
-function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexMap,new c.mxgraph.io.vsdx.ShapePageId(d,b.getId()),k),b.setLabelOffset(k,x),y&&b.createLabelSubShape(e,k),k):null};f.calculateAbsolutePoint=function(c){for(var b=0,a=0;null!=c;){var d=c.geometry;
-null!=d&&(b+=d.x,a+=d.y);c=c.parent}return new mxPoint(b,a)};f.prototype.addConnectedEdge=function(e,b,a,d){var h=b.getFromSheet(),h=new c.mxgraph.io.vsdx.ShapePageId(a,h),p=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.edgeShapeMap,h);if(null==p)return null;var y=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=
-a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.parentsMap,new c.mxgraph.io.vsdx.ShapePageId(a,p.getId()));if(null!=y){var z=e.getModel().getGeometry(y);null!=z&&(d=z.height)}var x=p.getStartXY(d),k=p.getEndXY(d),z=p.getRoutingPoints(d,x,p.getRotation());this.rotateChildEdge(e.getModel(),y,x,k,z);var m=null,n=b.getSourceToSheet(),n=null!=n?function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=
-a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.vertexMap,new c.mxgraph.io.vsdx.ShapePageId(a,n)):null,B=!0;if(null==n)n=e.insertVertex(y,null,null,Math.floor(Math.round(100*x.x)/100),Math.floor(Math.round(100*x.y)/100),0,0);else if(n.style&&-1==n.style.indexOf(";rotation="))var m=f.calculateAbsolutePoint(n),G=f.calculateAbsolutePoint(y),D=n.geometry,m=new mxPoint((G.x+x.x-m.x)/D.width,(G.y+x.y-m.y)/D.height);else B=!1;x=null;b=
+b}(n,c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))&&k.isVertex()&&(k.propagateRotation(b.getRotation()),k.isGroup()?this.addGroup(e,k,f,d,p.y):this.addVertex(e,k,f,d,p.y)),null==y&&function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexShapeMap,
+new c.mxgraph.io.vsdx.ShapePageId(d,m),k)):null==y?(function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.edgeShapeMap,new c.mxgraph.io.vsdx.ShapePageId(d,m),k),function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=
+a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.parentsMap,new c.mxgraph.io.vsdx.ShapePageId(d,m),f)):this.addUnconnectedEdge(e,f,k,g);x&&b.createLabelSubShape(e,f);e=b.getRotation();if(0!==e)for(p=f.getGeometry(),g=p.width/2,p=p.height/2,y=0;y<f.getChildCount();y++)x=f.getChildAt(y),c.mxgraph.online.Utils.rotatedGeometry(x.getGeometry(),
+e,g,p);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.vertexMap,new c.mxgraph.io.vsdx.ShapePageId(d,b.getId()),f);return f};f.rotatedEdgePoint=function(c,b,a,d){b=b*Math.PI/180;var g=Math.cos(b);b=Math.sin(b);var p=c.x-a,e=c.y-d;c.x=Math.round(p*
+g-e*b+a);c.y=Math.round(e*g+p*b+d)};f.prototype.addVertex=function(e,b,a,d,g){var p="",y=b.isDisplacedLabel()||b.isRotatedLabel();y||(p=b.getTextLabel());var f=b.getDimensions(),x=b.getStyleFromShape();x.html="1";var k=x.hasOwnProperty(mxConstants.STYLE_SHAPE)||x.hasOwnProperty("stencil");x.hasOwnProperty(mxConstants.STYLE_FILLCOLOR)&&k||(x[mxConstants.STYLE_FILLCOLOR]="none");k||(x[mxConstants.STYLE_STROKECOLOR]="none");x.hasOwnProperty(mxConstants.STYLE_GRADIENTCOLOR)&&k||(x[mxConstants.STYLE_GRADIENTCOLOR]=
+"none");x[mxConstants.STYLE_WHITE_SPACE]="wrap";g=b.getOriginPoint(g,!0);return k||null!=p?(x=c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(x,"="),k=null,k=y?e.insertVertex(a,null,null,Math.floor(Math.round(100*g.x)/100),Math.floor(Math.round(100*g.y)/100),Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),x):e.insertVertex(a,null,p,Math.floor(Math.round(100*g.x)/100),Math.floor(Math.round(100*g.y)/100),Math.floor(Math.round(100*f.x)/100),Math.floor(Math.round(100*f.y)/100),x),
+function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexMap,new c.mxgraph.io.vsdx.ShapePageId(d,b.getId()),k),b.setLabelOffset(k,x),y&&b.createLabelSubShape(e,k),k):null};f.calculateAbsolutePoint=function(c){for(var b=0,a=0;null!=c;){var d=c.geometry;
+null!=d&&(b+=d.x,a+=d.y);c=c.parent}return new mxPoint(b,a)};f.prototype.addConnectedEdge=function(e,b,a,d){var g=b.getFromSheet(),g=new c.mxgraph.io.vsdx.ShapePageId(a,g),p=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.edgeShapeMap,g);if(null==p)return null;var y=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=
+a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.parentsMap,new c.mxgraph.io.vsdx.ShapePageId(a,p.getId()));if(null!=y){var A=e.getModel().getGeometry(y);null!=A&&(d=A.height)}var x=p.getStartXY(d),k=p.getEndXY(d),A=p.getRoutingPoints(d,x,p.getRotation());this.rotateChildEdge(e.getModel(),y,x,k,A);var m=null,n=b.getSourceToSheet(),n=null!=n?function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=
+a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.vertexMap,new c.mxgraph.io.vsdx.ShapePageId(a,n)):null,C=!0;if(null==n)n=e.insertVertex(y,null,null,Math.floor(Math.round(100*x.x)/100),Math.floor(Math.round(100*x.y)/100),0,0);else if(n.style&&-1==n.style.indexOf(";rotation="))var m=f.calculateAbsolutePoint(n),G=f.calculateAbsolutePoint(y),D=n.geometry,m=new mxPoint((G.x+x.x-m.x)/D.width,(G.y+x.y-m.y)/D.height);else C=!1;x=null;b=
b.getTargetToSheet();b=null!=b?function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.vertexMap,new c.mxgraph.io.vsdx.ShapePageId(a,b)):null;G=!0;null==b?b=e.insertVertex(y,null,null,Math.floor(Math.round(100*k.x)/100),Math.floor(Math.round(100*k.y)/100),0,0):b.style&&-1==b.style.indexOf(";rotation=")?(a=f.calculateAbsolutePoint(b),x=f.calculateAbsolutePoint(y),
-D=b.geometry,x=new mxPoint((x.x+k.x-a.x)/D.width,(x.y+k.y-a.y)/D.height)):G=!1;k=p.getStyleFromEdgeShape(d);D=p.getRotation();0!==D?(a=e.insertEdge(y,null,null,n,b,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(k,"=")),B=p.createLabelSubShape(e,a),null!=B&&(B.setStyle(B.getStyle()+";rotation="+(60<D&&240>D?(D+180)%360:D)),B=B.getGeometry(),B.x=0,B.y=0,B.relative=!0,B.offset=new mxPoint(-B.width/2,-B.height/2))):(a=e.insertEdge(y,null,p.getTextLabel(),n,b,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(k,
-"=")),D=p.getLblEdgeOffset(e.getView(),z),a.getGeometry().offset=D,null!=m&&e.setConnectionConstraint(a,n,!0,new mxConnectionConstraint(m,!1)),B&&z.shift(),null!=x&&e.setConnectionConstraint(a,b,!1,new mxConnectionConstraint(x,!1)),G&&z.pop());B=e.getModel().getGeometry(a);if(n.parent!=b.parent&&null!=y&&1!=y.id&&1==n.parent.id){b=m=0;do x=y.geometry,null!=x&&(m+=x.x,b+=x.y),y=y.parent;while(null!=y);a.parent=n.parent;for(y=0;y<z.length;y++)z[y].x+=m,z[y].y+=b}B.points=z;k.hasOwnProperty("curved")&&
-function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(k,"curved"),"1")&&(B=e.getModel().getGeometry(a),e=p.getControlPoints(d),B.points=e);return h};f.prototype.addUnconnectedEdge=function(e,b,a,d){if(null!=b){var h=e.getModel().getGeometry(b);null!=h&&(d=h.height)}var p=a.getStartXY(d),f=a.getEndXY(d),z=a.getStyleFromEdgeShape(d),x=a.getRoutingPoints(d,p,a.getRotation()),k=a.getRotation();if(0!==k){0===a.getShapeIndex()?h=e.insertEdge(b,null,null,null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(z,
-"=")):(h=e.createEdge(b,null,null,null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(z,"=")),h=e.addEdge(h,b,null,null,a.getShapeIndex()));var m=a.createLabelSubShape(e,h);null!=m&&(m.setStyle(m.getStyle()+";rotation="+(60<k&&240>k?(k+180)%360:k)),k=m.getGeometry(),k.x=0,k.y=0,k.relative=!0,k.offset=new mxPoint(-k.width/2,-k.height/2))}else 0===a.getShapeIndex()?h=e.insertEdge(b,null,a.getTextLabel(),null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(z,"=")):(h=e.createEdge(b,null,a.getTextLabel(),
-null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(z,"=")),h=e.addEdge(h,b,null,null,a.getShapeIndex())),k=a.getLblEdgeOffset(e.getView(),x),h.getGeometry().offset=k;this.rotateChildEdge(e.getModel(),b,p,f,x);b=e.getModel().getGeometry(h);x.pop();x.shift();b.points=x;b.setTerminalPoint(p,!0);b.setTerminalPoint(f,!1);z.hasOwnProperty("curved")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(z,"curved"),"1")&&(b=e.getModel().getGeometry(h),e=a.getControlPoints(d),
-b.points=e);return h};f.prototype.rotateChildEdge=function(c,b,a,d,h){if(null!=b){var p=c.getGeometry(b);c=c.getStyle(b);if(null!=p&&null!=c&&(b=c.indexOf("rotation="),-1<b))for(c=parseFloat(c.substring(b+9,c.indexOf(";",b))),b=p.width/2,p=p.height/2,f.rotatedEdgePoint(a,c,b,p),f.rotatedEdgePoint(d,c,b,p),a=0;a<h.length;a++)f.rotatedEdgePoint(h[a],c,b,p)}};f.prototype.sanitiseGraph=function(c){var b=c.getModel().getRoot();this.sanitiseCell(c,b)};f.prototype.sanitiseCell=function(c,b){for(var a=c.getModel(),
-d=a.getChildCount(b),h=[],p=0;p<d;p++){var e=a.getChildAt(b,p);this.sanitiseCell(c,e)&&0<h.push(e)}for(p=0;p<h.length;p++)a.remove(h[p]);0<d&&(d=a.getChildCount(b));h=(new String(a.getValue(b))).toString();p=a.getStyle(b);return 0!==d||!a.isVertex(b)||null!=a.getValue(b)&&0!==h.length||null==p||-1==p.indexOf(mxConstants.STYLE_FILLCOLOR+"=none")||-1==p.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=p.indexOf("image=")?!1:!0};return f}();m.mxVsdxCodec=k;k.__class="com.mxgraph.io.mxVsdxCodec"})(n.io||
+D=b.geometry,x=new mxPoint((x.x+k.x-a.x)/D.width,(x.y+k.y-a.y)/D.height)):G=!1;k=p.getStyleFromEdgeShape(d);D=p.getRotation();0!==D?(a=e.insertEdge(y,null,null,n,b,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(k,"=")),C=p.createLabelSubShape(e,a),null!=C&&(C.setStyle(C.getStyle()+";rotation="+(60<D&&240>D?(D+180)%360:D)),C=C.getGeometry(),C.x=0,C.y=0,C.relative=!0,C.offset=new mxPoint(-C.width/2,-C.height/2))):(a=e.insertEdge(y,null,p.getTextLabel(),n,b,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(k,
+"=")),D=p.getLblEdgeOffset(e.getView(),A),a.getGeometry().offset=D,null!=m&&e.setConnectionConstraint(a,n,!0,new mxConnectionConstraint(m,!1)),C&&A.shift(),null!=x&&e.setConnectionConstraint(a,b,!1,new mxConnectionConstraint(x,!1)),G&&A.pop());C=e.getModel().getGeometry(a);if(n.parent!=b.parent&&null!=y&&1!=y.id&&1==n.parent.id){b=m=0;do x=y.geometry,null!=x&&(m+=x.x,b+=x.y),y=y.parent;while(null!=y);a.parent=n.parent;for(y=0;y<A.length;y++)A[y].x+=m,A[y].y+=b}C.points=A;k.hasOwnProperty("curved")&&
+function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(k,"curved"),"1")&&(C=e.getModel().getGeometry(a),e=p.getControlPoints(d),C.points=e);return g};f.prototype.addUnconnectedEdge=function(e,b,a,d){if(null!=b){var g=e.getModel().getGeometry(b);null!=g&&(d=g.height)}var p=a.getStartXY(d),y=a.getEndXY(d),f=a.getStyleFromEdgeShape(d),x=a.getRoutingPoints(d,p,a.getRotation()),k=a.getRotation();if(0!==k){0===a.getShapeIndex()?g=e.insertEdge(b,null,null,null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,
+"=")):(g=e.createEdge(b,null,null,null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"=")),g=e.addEdge(g,b,null,null,a.getShapeIndex()));var m=a.createLabelSubShape(e,g);null!=m&&(m.setStyle(m.getStyle()+";rotation="+(60<k&&240>k?(k+180)%360:k)),k=m.getGeometry(),k.x=0,k.y=0,k.relative=!0,k.offset=new mxPoint(-k.width/2,-k.height/2))}else 0===a.getShapeIndex()?g=e.insertEdge(b,null,a.getTextLabel(),null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"=")):(g=e.createEdge(b,null,a.getTextLabel(),
+null,null,c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"=")),g=e.addEdge(g,b,null,null,a.getShapeIndex())),k=a.getLblEdgeOffset(e.getView(),x),g.getGeometry().offset=k;this.rotateChildEdge(e.getModel(),b,p,y,x);b=e.getModel().getGeometry(g);x.pop();x.shift();b.points=x;b.setTerminalPoint(p,!0);b.setTerminalPoint(y,!1);f.hasOwnProperty("curved")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(f,"curved"),"1")&&(b=e.getModel().getGeometry(g),e=a.getControlPoints(d),
+b.points=e);return g};f.prototype.rotateChildEdge=function(c,b,a,d,g){if(null!=b){var p=c.getGeometry(b);c=c.getStyle(b);if(null!=p&&null!=c&&(b=c.indexOf("rotation="),-1<b))for(c=parseFloat(c.substring(b+9,c.indexOf(";",b))),b=p.width/2,p=p.height/2,f.rotatedEdgePoint(a,c,b,p),f.rotatedEdgePoint(d,c,b,p),a=0;a<g.length;a++)f.rotatedEdgePoint(g[a],c,b,p)}};f.prototype.sanitiseGraph=function(c){var b=c.getModel().getRoot();this.sanitiseCell(c,b)};f.prototype.sanitiseCell=function(c,b){for(var a=c.getModel(),
+d=a.getChildCount(b),g=[],p=0;p<d;p++){var e=a.getChildAt(b,p);this.sanitiseCell(c,e)&&0<g.push(e)}for(p=0;p<g.length;p++)a.remove(g[p]);0<d&&(d=a.getChildCount(b));g=(new String(a.getValue(b))).toString();p=a.getStyle(b);return 0!==d||!a.isVertex(b)||null!=a.getValue(b)&&0!==g.length||null==p||-1==p.indexOf(mxConstants.STYLE_FILLCOLOR+"=none")||-1==p.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=p.indexOf("image=")?!1:!0};return f}();m.mxVsdxCodec=k;k.__class="com.mxgraph.io.mxVsdxCodec"})(n.io||
(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){var k=function(f){function e(b){var a=f.call(this)||this;a.RESPONSE_END="";a.RESPONSE_DIAGRAM_START="";a.RESPONSE_DIAGRAM_END="";a.RESPONSE_HEADER="";a.editorUi=b;return a}__extends(e,f);e.prototype.decodeVssx=function(b,a,d,h){var p=this,e="<mxlibrary>[";this.decodeVsdx(b,function(b){e=e.concat(b);var d=p.vsdxModel.getMasterShapes(),y=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=
-[];null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)b.push(a.entries[d].value);return b}(p.vsdxModel.getPages())).next();if(null!=d){var z={str:"",toString:function(){return this.str}},k=0===b.length?"":",",m=function(a){return Object.keys(a).map(function(b){return a[b]})}(d);b=function(a){a=m[a];var b=n.createMxGraph(),h=a.getMasterShape().getShape(),h=new c.mxgraph.io.vsdx.VsdxShape(y,h,!y.isEdge(h),d,null,n.vsdxModel),p=1;if(null!=a.pageSheet){var e=p=1,x=a.pageSheet.DrawingScale;
-null!=x&&(p=parseFloat(x.getAttribute("V"))||1);x=a.pageSheet.PageScale;null!=x&&(e=parseFloat(x.getAttribute("V"))||1);p=e/p}e=null;if(h.isVertex())for(n.edgeShapeMap.entries=[],n.parentsMap.entries=[],e=n.addShape(b,h,b.getDefaultParent(),0,1169),h=function(a){null==a.entries&&(a.entries=[]);return a.entries}(n.edgeShapeMap),x=0;x<h.length;x++){var C=h[x],A=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||
-a.entries[d].key===b)return a.entries[d].value;return null}(n.parentsMap,C.getKey());n.addUnconnectedEdge(b,A,C.getValue(),1169)}else e=n.addUnconnectedEdge(b,null,h,1169);if(null!=e){n.scaleGraph(b,p);h=n.normalizeGeo(e);n.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";z.str=z.str.concat(k);z.str=z.str.concat('{"xml":"');b=f.prototype.processPage.call(n,b,null);z.str=z.str.concat(b);z.str=z.str.concat('","w":');z.str=z.str.concat(h.width);z.str=z.str.concat(',"h":');
-z.str=z.str.concat(h.height);z.str=z.str.concat(',"title":');a=a.getName();null==a&&(a="");a=mxUtils.htmlEntities(JSON.stringify(a));z.str=z.str.concat(a);z.str=z.str.concat("}");k=","}};for(var n=p,D=0;D<m.length;D++)b(D);e=e.concat(z)}e=e.concat("]</mxlibrary>");if(a)try{a(e)}catch(Z){null!=h?h(Z):a("")}},d)};e.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var d=a.sourcePoint;if(b.isEdge()&&null!=d){this.transPoint(a.targetPoint,d);this.transPoint(a.offset,d);b=a.points;if(null!=
-b)for(var h=0;h<b.length;h++)this.transPoint(b[h],d);this.transPoint(d,d)}return a};e.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};e.prototype.processPage=function(b,a){var d=b.getModel(),h="",p="",e;for(e in d.cells){var z=d.cells[e];if(b.getDefaultParent()===d.getParent(z)){var h=h.concat(p),h=h.concat('{"xml":"'),x=this.createMxGraph();x.addCell(z);this.sanitiseGraph(x);if(0===x.getModel().getChildCount(x.getDefaultParent()))return"continue";p=this.normalizeGeo(z);x=f.prototype.processPage.call(this,
-x,null);h=h.concat(x);h=h.concat('","w":');h=h.concat(p.width);h=h.concat(',"h":');h=h.concat(p.height);h=h.concat(',"title":"');p=d.getStyle(z);z="";if(null!=p&&(x=p.indexOf(c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID),0<=x)){x+=c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID.length+1;e=parseInt(p.substring(x,p.indexOf(";",x)));a:{p=this.vertexShapeMap;x=new c.mxgraph.io.vsdx.ShapePageId(a.getId(),e);null==p.entries&&(p.entries=[]);for(var k=0;k<p.entries.length;k++)if(null!=p.entries[k].key.equals&&p.entries[k].key.equals(x)||
-p.entries[k].key===x){p=p.entries[k].value;break a}p=null}null!=p&&(z=p.getName())}h=h.concat(z);h=h.concat('"}');p=","}}this.RESPONSE_DIAGRAM_START=0<h.length?",":"";return h};return e}(c.mxgraph.io.mxVsdxCodec);m.mxVssxCodec=k;k.__class="com.mxgraph.io.mxVssxCodec"})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(c){(function(c){(function(c){(function(c){var e=function(){function b(a,b,h){this.formulaE=this.formulaA=this.d=this.c=this.b=this.a=this.y=this.x=null;this.index=0;this.index=a;this.x=b;this.y=h}b.prototype.getX=function(){return this.x};b.prototype.getY=function(){return this.y};b.prototype.getA=function(){return this.a};b.prototype.getB=function(){return this.b};b.prototype.getC=function(){return this.c};b.prototype.getD=function(){return this.d};b.prototype.getFormulaA=
+(function(c){(function(n){(function(m){var k=function(f){function e(b){var a=f.call(this)||this;a.RESPONSE_END="";a.RESPONSE_DIAGRAM_START="";a.RESPONSE_DIAGRAM_END="";a.RESPONSE_HEADER="";a.editorUi=b;return a}__extends(e,f);e.prototype.decodeVssx=function(b,a,d,g){var p=this,e="<mxlibrary>[";this.decodeVsdx(b,function(b){e=e.concat(b);var d=p.vsdxModel.getMasterShapes(),y=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=
+[];null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)b.push(a.entries[d].value);return b}(p.vsdxModel.getPages())).next();if(null!=d){var k={str:"",toString:function(){return this.str}},A=0===b.length?"":",",m=function(a){return Object.keys(a).map(function(b){return a[b]})}(d);b=function(a){a=m[a];var b=n.createMxGraph(),g=1;if(null!=a.pageSheet){var p=g=1,e=a.pageSheet.DrawingScale;null!=e&&(g=parseFloat(e.getAttribute("V"))||1);e=a.pageSheet.PageScale;null!=e&&(p=parseFloat(e.getAttribute("V"))||
+1);g=p/g}p=!1;for(e=0;null!=a.firstLevelShapes&&e<a.firstLevelShapes.length;e++){var x=a.firstLevelShapes[e].getShape(),z=new c.mxgraph.io.vsdx.VsdxShape(y,x,!y.isEdge(x),d,null,n.vsdxModel),x=null;if(z.isVertex()){n.edgeShapeMap.entries=[];n.parentsMap.entries=[];for(var x=n.addShape(b,z,b.getDefaultParent(),0,1169),z=function(a){null==a.entries&&(a.entries=[]);return a.entries}(n.edgeShapeMap),B=0;B<z.length;B++){var F=z[B],C=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=
+a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(n.parentsMap,F.getKey());n.addUnconnectedEdge(b,C,F.getValue(),1169)}}else x=n.addUnconnectedEdge(b,null,z,1169);p|=null!=x}if(p){n.scaleGraph(b,g);g=n.normalizeGraph(b);n.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";k.str=k.str.concat(A);k.str=k.str.concat('{"xml":"');b=f.prototype.processPage.call(n,b,null);k.str=k.str.concat(b);k.str=k.str.concat('","w":');
+k.str=k.str.concat(g.width);k.str=k.str.concat(',"h":');k.str=k.str.concat(g.height);k.str=k.str.concat(',"title":');a=a.getName();null==a&&(a="");a=mxUtils.htmlEntities(JSON.stringify(a));k.str=k.str.concat(a);k.str=k.str.concat("}");A=","}};for(var n=p,D=0;D<m.length;D++)b(D);e=e.concat(k)}e=e.concat("]</mxlibrary>");if(a)try{a(e)}catch(Z){null!=g?g(Z):a("")}},d)};e.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var d=a.sourcePoint;if(b.isEdge()&&null!=d){this.transPoint(a.targetPoint,
+d);this.transPoint(a.offset,d);b=a.points;if(null!=b)for(var g=0;g<b.length;g++)this.transPoint(b[g],d);this.transPoint(d,d)}return a};e.prototype.normalizeGraph=function(b){function a(a){null!=a&&(null==d?(d=a.x,g=a.y,p=a.x+(a.width||0),c=a.y+(a.height||0)):(d=Math.min(a.x,d),g=Math.min(a.y,g),p=Math.max(a.x+(a.width||0),p),c=Math.max(a.y+(a.height||0),c)))}var d,g,p,c,e;for(e in b.model.cells){var f=b.model.cells[e],k=f.geometry;if(null!=k&&1==f.parent.id)if(f.vertex)a(k);else for(a(k.sourcePoint),
+a(k.targetPoint),f=k.points,k=0;null!=f&&k<f.length;k++)a(f[k])}var m={x:d,y:g};for(e in b.model.cells)if(f=b.model.cells[e],k=f.geometry,null!=k&&1==f.parent.id&&(k.x-=d,k.y-=g,f.isEdge()))for(this.transPoint(k.sourcePoint,m),this.transPoint(k.targetPoint,m),this.transPoint(k.offset,m),f=k.points,k=0;null!=f&&k<f.length;k++)this.transPoint(f[k],m);return{width:p-d,height:c-g}};e.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};e.prototype.processPage=function(b,a){var d=b.getModel(),
+g="",p="",e;for(e in d.cells){var k=d.cells[e];if(b.getDefaultParent()===d.getParent(k)){var g=g.concat(p),g=g.concat('{"xml":"'),x=this.createMxGraph();x.addCell(k);this.sanitiseGraph(x);if(0===x.getModel().getChildCount(x.getDefaultParent()))return"continue";p=this.normalizeGeo(k);x=f.prototype.processPage.call(this,x,null);g=g.concat(x);g=g.concat('","w":');g=g.concat(p.width);g=g.concat(',"h":');g=g.concat(p.height);g=g.concat(',"title":"');p=d.getStyle(k);k="";if(null!=p&&(x=p.indexOf(c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID),
+0<=x)){x+=c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID.length+1;e=parseInt(p.substring(x,p.indexOf(";",x)));a:{p=this.vertexShapeMap;x=new c.mxgraph.io.vsdx.ShapePageId(a.getId(),e);null==p.entries&&(p.entries=[]);for(var m=0;m<p.entries.length;m++)if(null!=p.entries[m].key.equals&&p.entries[m].key.equals(x)||p.entries[m].key===x){p=p.entries[m].value;break a}p=null}null!=p&&(k=p.getName())}g=g.concat(k);g=g.concat('"}');p=","}}this.RESPONSE_DIAGRAM_START=0<g.length?",":"";return g};return e}(c.mxgraph.io.mxVsdxCodec);
+m.mxVssxCodec=k;k.__class="com.mxgraph.io.mxVssxCodec"})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(c){(function(c){(function(c){(function(c){var e=function(){function b(a,b,g){this.formulaE=this.formulaA=this.d=this.c=this.b=this.a=this.y=this.x=null;this.index=0;this.index=a;this.x=b;this.y=g}b.prototype.getX=function(){return this.x};b.prototype.getY=function(){return this.y};b.prototype.getA=function(){return this.a};b.prototype.getB=function(){return this.b};b.prototype.getC=function(){return this.c};b.prototype.getD=function(){return this.d};b.prototype.getFormulaA=
function(){return this.formulaA};b.prototype.getFormulaE=function(){return this.formulaE};b.prototype.getIndex=function(){return this.index};return b}();c.Row=e;e.__class="com.mxgraph.io.vsdx.geometry.Row"})(c.geometry||(c.geometry={}))})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(h){}return null};b.getRowObj=function(a,d){var h=a.getAttribute("T"),p=b.getIndex(a),e;e=(e=a.getAttribute("Del"))&&e.equals?e.equals("1"):"1"===e;if(!e){var f=null;p<=d.length&&(f=d[p-1]);var x=e=null,k=null,
-m=null,n=null,B=null,G=null,D=null;null!=f&&(e=f.x,x=f.y,k=f.getA(),m=f.getB(),n=f.getC(),B=f.getD(),D=f.getFormulaA(),G=f.getFormulaE());for(var f=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),Z=0;Z<f.length;Z++){var Y=f[Z],aa=Y.getAttribute("N"),L=Y.getAttribute("V");switch(aa){case "X":e=b.getDoubleVal(L);break;case "Y":x=b.getDoubleVal(L);break;case "A":k=b.getDoubleVal(L);D=Y.getAttribute("V");break;case "B":m=b.getDoubleVal(L);break;case "C":n=b.getDoubleVal(L);break;case "D":B=b.getDoubleVal(L);
-break;case "E":G=L}}switch(h){case "MoveTo":return new c.mxgraph.io.vsdx.geometry.MoveTo(p,e,x);case "LineTo":return new c.mxgraph.io.vsdx.geometry.LineTo(p,e,x);case "ArcTo":return new c.mxgraph.io.vsdx.geometry.ArcTo(p,e,x,k);case "Ellipse":return new c.mxgraph.io.vsdx.geometry.Ellipse(p,e,x,k,m,n,B);case "EllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.EllipticalArcTo(p,e,x,k,m,n,B);case "InfiniteLine":return new c.mxgraph.io.vsdx.geometry.InfiniteLine(p,e,x,k,m);case "NURBSTo":return new c.mxgraph.io.vsdx.geometry.NURBSTo(p,
-e,x,k,m,n,B,G);case "PolylineTo":return new c.mxgraph.io.vsdx.geometry.PolylineTo(p,e,x,D);case "RelCubBezTo":return new c.mxgraph.io.vsdx.geometry.RelCubBezTo(p,e,x,k,m,n,B);case "RelEllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(p,e,x,k,m,n,B);case "RelLineTo":return new c.mxgraph.io.vsdx.geometry.RelLineTo(p,e,x);case "RelMoveTo":return new c.mxgraph.io.vsdx.geometry.RelMoveTo(p,e,x);case "RelQuadBezTo":return new c.mxgraph.io.vsdx.geometry.RelQuadBezTo(p,e,x,k,m);case "SplineKnot":return new c.mxgraph.io.vsdx.geometry.SplineKnot(p,
-e,x,k);case "SplineStart":return new c.mxgraph.io.vsdx.geometry.SplineStart(p,e,x,k,m,n,B)}}return new c.mxgraph.io.vsdx.geometry.DelRow(p)};return b}();f.RowFactory=e;e.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),e;e=(e=a.getAttribute("Del"))&&e.equals?e.equals("1"):"1"===e;if(!e){var f=null;p<=d.length&&(f=d[p-1]);var k=e=null,m=null,
+n=null,B=null,C=null,G=null,D=null;null!=f&&(e=f.x,k=f.y,m=f.getA(),n=f.getB(),B=f.getC(),C=f.getD(),D=f.getFormulaA(),G=f.getFormulaE());for(var f=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),Z=0;Z<f.length;Z++){var Y=f[Z],aa=Y.getAttribute("N"),L=Y.getAttribute("V");switch(aa){case "X":e=b.getDoubleVal(L);break;case "Y":k=b.getDoubleVal(L);break;case "A":m=b.getDoubleVal(L);D=Y.getAttribute("V");break;case "B":n=b.getDoubleVal(L);break;case "C":B=b.getDoubleVal(L);break;case "D":C=b.getDoubleVal(L);
+break;case "E":G=L}}switch(g){case "MoveTo":return new c.mxgraph.io.vsdx.geometry.MoveTo(p,e,k);case "LineTo":return new c.mxgraph.io.vsdx.geometry.LineTo(p,e,k);case "ArcTo":return new c.mxgraph.io.vsdx.geometry.ArcTo(p,e,k,m);case "Ellipse":return new c.mxgraph.io.vsdx.geometry.Ellipse(p,e,k,m,n,B,C);case "EllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.EllipticalArcTo(p,e,k,m,n,B,C);case "InfiniteLine":return new c.mxgraph.io.vsdx.geometry.InfiniteLine(p,e,k,m,n);case "NURBSTo":return new c.mxgraph.io.vsdx.geometry.NURBSTo(p,
+e,k,m,n,B,C,G);case "PolylineTo":return new c.mxgraph.io.vsdx.geometry.PolylineTo(p,e,k,D);case "RelCubBezTo":return new c.mxgraph.io.vsdx.geometry.RelCubBezTo(p,e,k,m,n,B,C);case "RelEllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(p,e,k,m,n,B,C);case "RelLineTo":return new c.mxgraph.io.vsdx.geometry.RelLineTo(p,e,k);case "RelMoveTo":return new c.mxgraph.io.vsdx.geometry.RelMoveTo(p,e,k);case "RelQuadBezTo":return new c.mxgraph.io.vsdx.geometry.RelQuadBezTo(p,e,k,m,n);case "SplineKnot":return new c.mxgraph.io.vsdx.geometry.SplineKnot(p,
+e,k,m);case "SplineStart":return new c.mxgraph.io.vsdx.geometry.SplineStart(p,e,k,m,n,B,C)}}return new c.mxgraph.io.vsdx.geometry.DelRow(p)};return b}();f.RowFactory=e;e.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){var f=function(){function e(){this.colorElementMap={};this.fontElementMap={}}e.__static_initialize=function(){e.__static_initialized||(e.__static_initialized=!0,e.__static_initializer_0())};e.defaultColors_$LI$=function(){e.__static_initialize();null==e.defaultColors&&(e.defaultColors={});return e.defaultColors};e.__static_initializer_0=function(){e.defaultColors_$LI$()["0"]="#000000";e.defaultColors_$LI$()["1"]="#FFFFFF";e.defaultColors_$LI$()["2"]=
"#FF0000";e.defaultColors_$LI$()["3"]="#00FF00";e.defaultColors_$LI$()["4"]="#0000FF";e.defaultColors_$LI$()["5"]="#FFFF00";e.defaultColors_$LI$()["6"]="#FF00FF";e.defaultColors_$LI$()["7"]="#00FFFF";e.defaultColors_$LI$()["8"]="#800000";e.defaultColors_$LI$()["9"]="#008000";e.defaultColors_$LI$()["10"]="#000080";e.defaultColors_$LI$()["11"]="#808000";e.defaultColors_$LI$()["12"]="#800080";e.defaultColors_$LI$()["13"]="#008080";e.defaultColors_$LI$()["14"]="#C0C0C0";e.defaultColors_$LI$()["15"]="#E6E6E6";
-e.defaultColors_$LI$()["16"]="#CDCDCD";e.defaultColors_$LI$()["17"]="#B3B3B3";e.defaultColors_$LI$()["18"]="#9A9A9A";e.defaultColors_$LI$()["19"]="#808080";e.defaultColors_$LI$()["20"]="#666666";e.defaultColors_$LI$()["21"]="#4D4D4D";e.defaultColors_$LI$()["22"]="#333333";e.defaultColors_$LI$()["23"]="#1A1A1A"};e.prototype.initialise=function(b,a){if(null!=b){var d=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.COLORS);if(0<d.length)for(var h=d.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.COLOR_ENTRY),
-p=h.length,d=0;d<p;d++){var e=h.item(d),f=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.INDEX),e=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.RGB);this.colorElementMap[f]=e}d=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAMES);if(0<d.length)for(h=d.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAME),p=h.length,d=0;d<p;d++)e=h.item(d),f=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID),e=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.FONT_NAME),this.fontElementMap[f]=
+e.defaultColors_$LI$()["16"]="#CDCDCD";e.defaultColors_$LI$()["17"]="#B3B3B3";e.defaultColors_$LI$()["18"]="#9A9A9A";e.defaultColors_$LI$()["19"]="#808080";e.defaultColors_$LI$()["20"]="#666666";e.defaultColors_$LI$()["21"]="#4D4D4D";e.defaultColors_$LI$()["22"]="#333333";e.defaultColors_$LI$()["23"]="#1A1A1A"};e.prototype.initialise=function(b,a){if(null!=b){var d=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.COLORS);if(0<d.length)for(var g=d.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.COLOR_ENTRY),
+p=g.length,d=0;d<p;d++){var e=g.item(d),f=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.INDEX),e=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.RGB);this.colorElementMap[f]=e}d=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAMES);if(0<d.length)for(g=d.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAME),p=g.length,d=0;d<p;d++)e=g.item(d),f=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID),e=e.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.FONT_NAME),this.fontElementMap[f]=
e}};e.prototype.getColor=function(b){var a=function(a,b){return a[b]?a[b]:null}(this.colorElementMap,b);return null==a&&(a=function(a,b){return a[b]?a[b]:null}(e.defaultColors_$LI$(),b),null==a)?"":a};e.prototype.getFont=function(b){var a=this.fontElementMap;b=a[b]?a[b]:null;return null==b?"":b};return e}();f.__static_initialized=!1;k.mxPropertiesManager=f;f.__class="com.mxgraph.io.vsdx.mxPropertiesManager"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b){this.sourceToSheet=this.fromSheet=null;this.sourceToPart=-1;this.targetToSheet=null;this.targetToPart=-1;this.endShape=this.fromCell=null;var a=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.FROM_SHEET);this.fromSheet=null!=a&&0!==a.length?parseFloat(a):-1;a=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.FROM_CELL);this.addFromCell(b,a)}e.prototype.addFromCell=function(b,a){var d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TO_SHEET),
-h=!0;null!=a&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X)?(this.sourceToSheet=null!=d&&0!==d.length?parseFloat(d):-1,h=!0):null!=a&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,c.mxgraph.io.vsdx.mxVsdxConstants.END_X)?(this.targetToSheet=null!=d&&0!==d.length?parseFloat(d):-1,h=!1):null==this.sourceToSheet?(this.sourceToSheet=null!=d&&0!==d.length?parseFloat(d):-1,h=!0):null==this.targetToSheet&&(this.targetToSheet=null!=d&&0!==d.length?
-parseFloat(d):-1,h=!1);this.findToPart(b,h)};e.prototype.findToPart=function(b,a){var d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TO_PART),d=null!=d&&0!==d.length?parseFloat(d):-1;a?this.sourceToPart=d:this.targetToPart=d};e.prototype.getFromSheet=function(){return this.fromSheet};e.prototype.getSourceToSheet=function(){return this.sourceToSheet};e.prototype.getTargetToSheet=function(){return this.targetToSheet};e.prototype.getSourceToPart=function(){return this.sourceToPart};e.prototype.getTargetToPart=
+g=!0;null!=a&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X)?(this.sourceToSheet=null!=d&&0!==d.length?parseFloat(d):-1,g=!0):null!=a&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,c.mxgraph.io.vsdx.mxVsdxConstants.END_X)?(this.targetToSheet=null!=d&&0!==d.length?parseFloat(d):-1,g=!1):null==this.sourceToSheet?(this.sourceToSheet=null!=d&&0!==d.length?parseFloat(d):-1,g=!0):null==this.targetToSheet&&(this.targetToSheet=null!=d&&0!==d.length?
+parseFloat(d):-1,g=!1);this.findToPart(b,g)};e.prototype.findToPart=function(b,a){var d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TO_PART),d=null!=d&&0!==d.length?parseFloat(d):-1;a?this.sourceToPart=d:this.targetToPart=d};e.prototype.getFromSheet=function(){return this.fromSheet};e.prototype.getSourceToSheet=function(){return this.sourceToSheet};e.prototype.getTargetToSheet=function(){return this.targetToSheet};e.prototype.getSourceToPart=function(){return this.sourceToPart};e.prototype.getTargetToPart=
function(){return this.targetToPart};e.prototype.addConnect=function(b){this.endShape=b;var a=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.FROM_CELL);this.addFromCell(b,a)};return e}();k.mxVsdxConnect=f;f.__class="com.mxgraph.io.vsdx.mxVsdxConnect"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(c){(function(c){(function(c){var f=function(){function c(){}c.SET_VALUES_$LI$=function(){null==c.SET_VALUES&&(c.SET_VALUES=["a","b"]);return c.SET_VALUES};c.MY_SET_$LI$=function(){null==c.MY_SET&&(c.MY_SET=c.SET_VALUES_$LI$().slice(0).slice(0));return c.MY_SET};return c}();f.ANGLE="Angle";f.ARC_TO="ArcTo";f.BACKGROUND="Background";f.BACK_PAGE="BackPage";f.BEGIN_ARROW="BeginArrow";f.BEGIN_ARROW_SIZE="BeginArrowSize";f.BEGIN_X="BeginX";f.BEGIN_Y="BeginY";f.BOTTOM_MARGIN="BottomMargin";
f.BULLET="Bullet";f.CASE="Case";f.CHARACTER="Character";f.COLOR="Color";f.COLOR_ENTRY="ColorEntry";f.COLORS="Colors";f.COLOR_TRANS="ColorTrans";f.CONNECT="Connect";f.CONNECTS="Connects";f.CONNECTION="Connection";f.CONTROL="Control";f.DELETED="Del";f.DOCUMENT_SHEET="DocumentSheet";f.ELLIPSE="Ellipse";f.ELLIPTICAL_ARC_TO="EllipticalArcTo";f.END_ARROW="EndArrow";f.END_ARROW_SIZE="EndArrowSize";f.END_X="EndX";f.END_Y="EndY";f.FACE_NAME="FaceName";f.FACE_NAMES="FaceNames";f.FALSE="0";f.FILL="Fill";f.FILL_BKGND=
@@ -854,129 +856,130 @@ f.BULLET="Bullet";f.CASE="Case";f.CHARACTER="Character";f.COLOR="Color";f.COLOR_
"HideText";f.VSDX_ID="vsdxID";f.CONNECT_TO_PART_WHOLE_SHAPE=3;c.mxVsdxConstants=f;f.__class="com.mxgraph.io.vsdx.mxVsdxConstants"})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b,a){this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1;this.rows=null;if((null!=b&&1==b.nodeType||null===b)&&(null!=a&&a instanceof Array||null===a))Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),null!=a&&this.index<a.length&&this.inheritGeo(a[this.index]),
this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}e.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))||0}catch(a){return 0}};e.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType||
-null===b)return this.getIndex$org_w3c_dom_Element(b);if(void 0===b)return this.getIndex$();throw Error("invalid overload");};e.prototype.processGeoElem=function(b){var a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Cell");b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Row");if(null==this.rows){this.rows=[];for(var d=0;d<b.length;d++)0<this.rows.push(null)}for(d=0;d<a.length;d++){var h=a[d],p=h.getAttribute("N"),h=h.getAttribute("V");switch(p){case "NoFill":this.noFill=
-function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoLine":this.noLine=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoShow":this.noShow=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoSnap":this.noSnap=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoQuickDrag":this.noQuickDrag=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h)}}a=this.rows.length;d=!1;for(p=0;p<b.length;p++)h=c.mxgraph.io.vsdx.geometry.RowFactory.getRowObj(b[p],
-this.rows),h.getIndex()>a?(0<this.rows.push(h),d=!0):this.rows[h.getIndex()-1]=h;d&&function(a,b){b.compare?a.sort(function(a,d){return b.compare(a,d)}):a.sort(b)}(this.rows,new e.mxVsdxGeometry$0(this))};e.prototype.inheritGeo=function(b){this.noFill=b.noFill;this.noLine=b.noLine;this.noShow=b.noShow;this.noSnap=b.noSnap;this.noQuickDrag=b.noQuickDrag;var a=this.rows=[];a.push.apply(a,b.rows)};e.prototype.getIndex$=function(){return this.index};e.prototype.isNoFill=function(){return this.noFill};
-e.prototype.isNoLine=function(){return this.noLine};e.prototype.isNoShow=function(){return this.noShow};e.prototype.isNoSnap=function(){return this.noSnap};e.prototype.isNoQuickDrag=function(){return this.noQuickDrag};e.prototype.getRows=function(){return this.rows};e.prototype.getPathXML=function(b,a){if(this.noShow)return"";for(var d="",h=0;h<this.rows.length;h++)var p=this.rows[h],d=d.concat(null!=p?p.handle(b,a):"");return d};return e}();k.mxVsdxGeometry=f;f.__class="com.mxgraph.io.vsdx.mxVsdxGeometry";
-(function(c){var b=function(){function a(a){this.__parent=a}a.prototype.compare=function(a,b){var d=null!=a?a.getIndex():0,h=null!=b?b.getIndex():0;return d-h};return a}();c.mxVsdxGeometry$0=b;b.__interfaces=["java.util.Comparator"]})(f=k.mxVsdxGeometry||(k.mxVsdxGeometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+null===b)return this.getIndex$org_w3c_dom_Element(b);if(void 0===b)return this.getIndex$();throw Error("invalid overload");};e.prototype.processGeoElem=function(b){var a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Cell");b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Row");if(null==this.rows){this.rows=[];for(var d=0;d<b.length;d++)0<this.rows.push(null)}for(d=0;d<a.length;d++){var g=a[d],p=g.getAttribute("N"),g=g.getAttribute("V");switch(p){case "NoFill":this.noFill=
+function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoLine":this.noLine=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoShow":this.noShow=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoSnap":this.noSnap=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoQuickDrag":this.noQuickDrag=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g)}}a=this.rows.length;d=!1;for(p=0;p<b.length;p++)g=c.mxgraph.io.vsdx.geometry.RowFactory.getRowObj(b[p],
+this.rows),g.getIndex()>a?(0<this.rows.push(g),d=!0):this.rows[g.getIndex()-1]=g;d&&function(a,b){b.compare?a.sort(function(a,d){return b.compare(a,d)}):a.sort(b)}(this.rows,new e.mxVsdxGeometry$0(this))};e.prototype.inheritGeo=function(b){this.noFill=b.noFill;this.noLine=b.noLine;this.noShow=b.noShow;this.noSnap=b.noSnap;this.noQuickDrag=b.noQuickDrag;var a=this.rows=[];a.push.apply(a,b.rows)};e.prototype.getIndex$=function(){return this.index};e.prototype.isNoFill=function(){return this.noFill};
+e.prototype.isNoLine=function(){return this.noLine};e.prototype.isNoShow=function(){return this.noShow};e.prototype.isNoSnap=function(){return this.noSnap};e.prototype.isNoQuickDrag=function(){return this.noQuickDrag};e.prototype.getRows=function(){return this.rows};e.prototype.getPathXML=function(b,a){if(this.noShow)return"";for(var d="",g=0;g<this.rows.length;g++)var p=this.rows[g],d=d.concat(null!=p?p.handle(b,a):"");return d};return e}();k.mxVsdxGeometry=f;f.__class="com.mxgraph.io.vsdx.mxVsdxGeometry";
+(function(c){var b=function(){function a(a){this.__parent=a}a.prototype.compare=function(a,b){var d=null!=a?a.getIndex():0,g=null!=b?b.getIndex():0;return d-g};return a}();c.mxVsdxGeometry$0=b;b.__interfaces=["java.util.Comparator"]})(f=k.mxVsdxGeometry||(k.mxVsdxGeometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b){this.geomList=[];this.parentGeomList=null;this.sortNeeded=!1;if(null!=b){this.parentGeomList=b.geomList;var a=this.geomList;a.push.apply(a,b.geomList)}}e.prototype.addGeometry=function(b){b=new c.mxgraph.io.vsdx.mxVsdxGeometry(b,this.parentGeomList);b.getIndex()<this.geomList.length?this.geomList[b.getIndex()]=b:(0<this.geomList.push(b),this.sortNeeded=!0)};e.prototype.sort=function(){this.sortNeeded&&(function(b,a){a.compare?
-b.sort(function(b,h){return a.compare(b,h)}):b.sort(a)}(this.geomList,new e.mxVsdxGeometryList$0(this)),this.sortNeeded=!1)};e.prototype.isNoShow=function(){for(var b=0;b<this.geomList.length;b++)if(!this.geomList[b].isNoShow())return!1;return!0};e.prototype.isNoFill=function(){for(var b=0;b<this.geomList.length;b++){var a=this.geomList[b];if(!a.isNoShow()&&!a.isNoFill())return!1}return!0};e.prototype.isNoLine=function(){for(var b=0;b<this.geomList.length;b++){var a=this.geomList[b];if(!a.isNoShow()&&
-!a.isNoLine())return!1}return!0};e.prototype.hasGeom=function(){return 0!=this.geomList.length};e.prototype.getGeoCount=function(){for(var b=0,a=0;a<this.geomList.length;a++)this.geomList[a].isNoShow()||b++;return b};e.prototype.rotatedPoint=function(b,a,d){var h=b.y*a+b.x*d;b.x=b.x*a-b.y*d;b.y=h};e.prototype.getRoutingPoints=function(b,a,d){this.sort();b=[];0<b.push(a.clone());for(var h=0,p=0,e=0;e<this.geomList.length;e++){var f=this.geomList[e];if(!f.isNoShow())for(var f=f.getRows(),k=0;k<f.length;k++){var m=
-f[k];if(0==k&&null!=m&&m instanceof c.mxgraph.io.vsdx.geometry.MoveTo)h=null!=m.x?m.x:0,p=null!=m.y?m.y:0;else if(null!=m&&m instanceof c.mxgraph.io.vsdx.geometry.LineTo){var n=null!=m.x?m.x:0,m=null!=m.y?m.y:0,A=new mxPoint(n,m);0!==d&&(d=(360-d)*Math.PI/180,this.rotatedPoint(A,Math.cos(d),Math.sin(d)));n=(A.x-h)*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();n+=a.x;m=(A.y-p)*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$()*-1;m+=a.y;n=Math.round(100*n)/100;m=Math.round(100*m)/100;A.x=
-n;A.y=m;0<b.push(A)}}}return b};e.prototype.getShapeXML=function(b){var a=new mxPoint(0,0),d={str:'<shape strokewidth="inherit"><foreground>',toString:function(){return this.str}},h=d.str.length,p;p=this.processGeo(b,a,d,-1,!0);p=this.processGeo(b,a,d,p,!1);if(d.str.length===h)return"";this.closePath(d,p);d.str=d.str.concat("</foreground></shape>");return d.str};e.prototype.processGeo=function(b,a,d,h,p){var e=b.getRounding(),f="";0<e&&(f=' rounded="1" arcSize="'+e*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor+
-'" ');for(e=0;e<this.geomList.length;e++){var k=this.geomList[e];if(p!==k.isNoFill()){var m=k.getPathXML(a,b);0!==m.length&&(k=this.getGeoStyle(k),-1===h?d.str=d.str.concat("<path"+f+">"):h!==k&&(this.closePath(d,h),d.str=d.str.concat("<path"+f+">")),d.str=d.str.concat(m),h=k)}}return h};e.prototype.getGeoStyle=function(b){var a=0;b.isNoLine()||b.isNoFill()?b.isNoFill()?b.isNoLine()||(a=3):a=2:a=1;return a};e.prototype.closePath=function(b,a){b.str=b.str.concat("</path>");1===a?b.str=b.str.concat("<fillstroke/>"):
+b.sort(function(b,g){return a.compare(b,g)}):b.sort(a)}(this.geomList,new e.mxVsdxGeometryList$0(this)),this.sortNeeded=!1)};e.prototype.isNoShow=function(){for(var b=0;b<this.geomList.length;b++)if(!this.geomList[b].isNoShow())return!1;return!0};e.prototype.isNoFill=function(){for(var b=0;b<this.geomList.length;b++){var a=this.geomList[b];if(!a.isNoShow()&&!a.isNoFill())return!1}return!0};e.prototype.isNoLine=function(){for(var b=0;b<this.geomList.length;b++){var a=this.geomList[b];if(!a.isNoShow()&&
+!a.isNoLine())return!1}return!0};e.prototype.hasGeom=function(){return 0!=this.geomList.length};e.prototype.getGeoCount=function(){for(var b=0,a=0;a<this.geomList.length;a++)this.geomList[a].isNoShow()||b++;return b};e.prototype.rotatedPoint=function(b,a,d){var g=b.y*a+b.x*d;b.x=b.x*a-b.y*d;b.y=g};e.prototype.getRoutingPoints=function(b,a,d){this.sort();b=[];0<b.push(a.clone());for(var g=0,p=0,e=0;e<this.geomList.length;e++){var f=this.geomList[e];if(!f.isNoShow())for(var f=f.getRows(),k=0;k<f.length;k++){var m=
+f[k];if(0==k&&null!=m&&m instanceof c.mxgraph.io.vsdx.geometry.MoveTo)g=null!=m.x?m.x:0,p=null!=m.y?m.y:0;else if(null!=m&&m instanceof c.mxgraph.io.vsdx.geometry.LineTo){var n=null!=m.x?m.x:0,m=null!=m.y?m.y:0,B=new mxPoint(n,m);0!==d&&(d=(360-d)*Math.PI/180,this.rotatedPoint(B,Math.cos(d),Math.sin(d)));n=(B.x-g)*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();n+=a.x;m=(B.y-p)*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$()*-1;m+=a.y;n=Math.round(100*n)/100;m=Math.round(100*m)/100;B.x=
+n;B.y=m;0<b.push(B)}}}return b};e.prototype.getShapeXML=function(b){var a=new mxPoint(0,0),d={str:'<shape strokewidth="inherit"><foreground>',toString:function(){return this.str}},g=d.str.length,p;p=this.processGeo(b,a,d,-1,!0);p=this.processGeo(b,a,d,p,!1);if(d.str.length===g)return"";this.closePath(d,p);d.str=d.str.concat("</foreground></shape>");return d.str};e.prototype.processGeo=function(b,a,d,g,p){var e=b.getRounding(),f="";0<e&&(f=' rounded="1" arcSize="'+e*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor+
+'" ');for(e=0;e<this.geomList.length;e++){var k=this.geomList[e];if(p!==k.isNoFill()){var m=k.getPathXML(a,b);0!==m.length&&(k=this.getGeoStyle(k),-1===g?d.str=d.str.concat("<path"+f+">"):g!==k&&(this.closePath(d,g),d.str=d.str.concat("<path"+f+">")),d.str=d.str.concat(m),g=k)}}return g};e.prototype.getGeoStyle=function(b){var a=0;b.isNoLine()||b.isNoFill()?b.isNoFill()?b.isNoLine()||(a=3):a=2:a=1;return a};e.prototype.closePath=function(b,a){b.str=b.str.concat("</path>");1===a?b.str=b.str.concat("<fillstroke/>"):
2===a?b.str=b.str.concat("<fill/>"):3===a&&(b.str=b.str.concat("<stroke/>"))};return e}();k.mxVsdxGeometryList=f;f.__class="com.mxgraph.io.vsdx.mxVsdxGeometryList";(function(c){var b=function(){function a(a){this.__parent=a}a.prototype.compare=function(a,b){return a.getIndex()-b.getIndex()};return a}();c.mxVsdxGeometryList$0=b;b.__interfaces=["java.util.Comparator"]})(f=k.mxVsdxGeometryList||(k.mxVsdxGeometryList={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com=
{}));
(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b,a){this.masterShape=this.Id=null;this.childShapes={};this.master=b;this.Id=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID)||"";this.processMasterShapes(a)}e.prototype.processMasterShapes=function(b){for(var a=this.master.firstChild;null!=a;){if(null!=a&&1==a.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a.nodeName,"Rel")){var d=b.getRelationship(a.getAttribute("r:id"),c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/_rels/masters.xml.rels"),
-h=d.getAttribute("Target"),d=d.getAttribute("Type"),p=null;null!=d&&function(a,b){var d=a.length-b.length,h=a.indexOf(b,d);return-1!==h&&h===d}(d,"master")&&(p=b.getXmlDoc(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/"+h));if(null!=p)for(h=p.firstChild;null!=h;){if(null!=h&&1==h.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(h.nodeName,"MasterContents")){this.processMasterShape(h,b);break}h=h.nextSibling}}else if(1==a.nodeType&&"PageSheet"==a.nodeName)for(this.pageSheet={},h=
-c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Cell"),d=0;d<h.length;d++)this.pageSheet[h[d].getAttribute("N")]=h[d];a=a.nextSibling}};e.prototype.processMasterShape=function(b,a){for(var d=b.firstChild;null!=d;){if(null!=d&&1==d.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(d.nodeName,"Shapes")){for(d=d.firstChild;null!=d;){if(null!=d&&1==d.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(d.nodeName,"Shape")){var h=d,p=h.getAttribute("ID"),e=new c.mxgraph.io.vsdx.Shape(h,
-a);this.masterShape=null==this.masterShape?e:this.masterShape;this.childShapes[p]=e;this.processMasterShape(h,a)}d=d.nextSibling}break}d=d.nextSibling}};e.prototype.getMasterShape=function(){return this.masterShape};e.prototype.getSubShape=function(b){var a=this.childShapes;return a[b]?a[b]:null};e.prototype.getNameU=function(){return this.master.getAttribute("NameU")||""};e.prototype.getName=function(){return this.master.getAttribute("Name")||""};e.prototype.getUniqueID=function(){var b="";this.master.hasAttribute("UniqueID")&&
-(b=this.master.getAttribute("UniqueID"));return b};e.prototype.getId=function(){return this.Id};e.prototype.getMasterElement=function(){return this.master};return e}();k.mxVsdxMaster=f;f.__class="com.mxgraph.io.vsdx.mxVsdxMaster"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+g=d.getAttribute("Target"),d=d.getAttribute("Type"),p=null;null!=d&&function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(d,"master")&&(p=b.getXmlDoc(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/"+g));if(null!=p)for(g=p.firstChild;null!=g;){if(null!=g&&1==g.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(g.nodeName,"MasterContents")){this.processMasterShape(g,b);break}g=g.nextSibling}}else if(1==a.nodeType&&"PageSheet"==a.nodeName)for(this.pageSheet={},g=
+c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Cell"),d=0;d<g.length;d++)this.pageSheet[g[d].getAttribute("N")]=g[d];a=a.nextSibling}};e.prototype.processMasterShape=function(b,a,d){d||(this.firstLevelShapes=[]);for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.nodeName,"Shapes"))for(var g=b.firstChild;null!=g;){if(null!=g&&1==g.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(g.nodeName,"Shape")){var p=g,e=p.getAttribute("ID"),
+f=new c.mxgraph.io.vsdx.Shape(p,a);this.masterShape=null==this.masterShape?f:this.masterShape;this.childShapes[e]=f;d||this.firstLevelShapes.push(f);this.processMasterShape(p,a,!0)}g=g.nextSibling}else if(null!=b&&1==b.nodeType&&"Connects"==b.nodeName)for(this.connects={},g=b.firstChild;null!=g;)null!=g&&1==g.nodeType&&"Connect"==g.nodeName&&(p=new c.mxgraph.io.vsdx.mxVsdxConnect(g),this.connects[p.getFromSheet()]=p),g=g.nextSibling;b=b.nextSibling}};e.prototype.getMasterShape=function(){return this.masterShape};
+e.prototype.getSubShape=function(b){var a=this.childShapes;return a[b]?a[b]:null};e.prototype.getNameU=function(){return this.master.getAttribute("NameU")||""};e.prototype.getName=function(){return this.master.getAttribute("Name")||""};e.prototype.getUniqueID=function(){var b="";this.master.hasAttribute("UniqueID")&&(b=this.master.getAttribute("UniqueID"));return b};e.prototype.getId=function(){return this.Id};e.prototype.getMasterElement=function(){return this.master};return e}();k.mxVsdxMaster=
+f;f.__class="com.mxgraph.io.vsdx.mxVsdxMaster"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b,a,d){this.pages=this.media=this.xmlDocs=null;this.masters={};this.stylesheets={};this.themes={};this.pm=this.rootElement=null;this.xmlDocs=a;this.media=d;for(b=b.firstChild;null!=b;){if(a=null!=b&&1==b.nodeType)a=b.tagName.toLowerCase(),d=c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"document",a=a&&a.equals?a.equals(d):a===d;if(a){this.rootElement=b;break}b=b.nextSibling}this.pm=new c.mxgraph.io.vsdx.mxPropertiesManager;
this.pm.initialise(this.rootElement,this);this.initStylesheets();this.initThemes();this.initMasters();this.initPages()}e.prototype.initThemes=function(){if(null!=this.xmlDocs)for(var b=!0,a=1;b;){var d=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/theme/theme"+a+".xml");if(null!=d){for(d=d.firstChild;null!=d;){if(null!=d&&1==d.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(d.tagName,"a:theme")){d=new c.mxgraph.io.vsdx.mxVsdxTheme(d);0>
-d.getThemeIndex()&&d.processTheme();var h=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.themes,d.getThemeIndex());null!=h&&h.isPure()||function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,
-value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.themes,d.getThemeIndex(),d);break}d=d.nextSibling}a++}else b=!1}};e.prototype.initStylesheets=function(){var b=this.rootElement.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.STYLE_SHEETS);if(0<b.length)for(var b=b.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.STYLE_SHEET),a=b.length,d=0;d<a;d++){var h=b.item(d),p=h.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID),h=new c.mxgraph.io.vsdx.Style(h,
-this);this.stylesheets[p]=h}for(b=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){return Object.keys(a).map(function(b){return a[b]})}(this.stylesheets));b.hasNext();)h=b.next(),h.stylesheetRefs(this)};e.prototype.initMasters=function(){if(null!=this.xmlDocs){var b=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/masters.xml");if(null!=b)for(b=b.firstChild;null!=b;){if(null!=
+d.getThemeIndex()&&d.processTheme();var g=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.themes,d.getThemeIndex());null!=g&&g.isPure()||function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,
+value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.themes,d.getThemeIndex(),d);break}d=d.nextSibling}a++}else b=!1}};e.prototype.initStylesheets=function(){var b=this.rootElement.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.STYLE_SHEETS);if(0<b.length)for(var b=b.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.STYLE_SHEET),a=b.length,d=0;d<a;d++){var g=b.item(d),p=g.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID),g=new c.mxgraph.io.vsdx.Style(g,
+this);this.stylesheets[p]=g}for(b=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){return Object.keys(a).map(function(b){return a[b]})}(this.stylesheets));b.hasNext();)g=b.next(),g.stylesheetRefs(this)};e.prototype.initMasters=function(){if(null!=this.xmlDocs){var b=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/masters.xml");if(null!=b)for(b=b.firstChild;null!=b;){if(null!=
b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.tagName,c.mxgraph.io.vsdx.mxVsdxConstants.MASTERS)){for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.tagName,"Master")){var a=new c.mxgraph.io.vsdx.mxVsdxMaster(b,this);this.masters[a.getId()]=a}b=b.nextSibling}break}b=b.nextSibling}}};e.prototype.initPages=function(){if(null!=this.xmlDocs){var b=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+
-"/pages/pages.xml");if(null!=b)for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.tagName,c.mxgraph.io.vsdx.mxVsdxConstants.PAGES)){var a=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.PAGE);if(null!=a&&0<a.length){this.pages={};for(var b={},d=a.length,h=0;h<d;h++){var p=a.item(h),p=this.createPage(p);p.isBackground()&&function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&
-a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(b,p.getId(),p);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.pages,
-p.getId(),p)}a=function(a){null==a.entries&&(a.entries=[]);return a.entries}(this.pages);for(d=0;d<a.length;d++)p=a[d].getValue(),h=p.getBackPageId(),null!=h&&(h=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(b,h),p.setBackPage(h))}break}b=b.nextSibling}}};e.prototype.getPages=function(){return this.pages};e.prototype.getThemes=function(){return this.themes};
-e.prototype.getRelationship=function(b,a){var d=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,a);if(null==d||null==b||0===b.length)return null;for(var d=d.getElementsByTagName("Relationship"),h=0;h<d.length;h++){var c=d.item(h);if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c.getAttribute("Id"),b))return c}return null};e.prototype.getMaster=function(b){var a=this.masters;return a[b]?a[b]:null};e.prototype.createPage=function(b){return new c.mxgraph.io.vsdx.mxVsdxPage(b,this)};e.prototype.getPropertiesManager=
+"/pages/pages.xml");if(null!=b)for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.tagName,c.mxgraph.io.vsdx.mxVsdxConstants.PAGES)){var a=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.PAGE);if(null!=a&&0<a.length){this.pages={};for(var b={},d=a.length,g=0;g<d;g++){var p=a.item(g),p=this.createPage(p);p.isBackground()&&function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&
+a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})}(b,p.getId(),p);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.pages,
+p.getId(),p)}a=function(a){null==a.entries&&(a.entries=[]);return a.entries}(this.pages);for(d=0;d<a.length;d++)p=a[d].getValue(),g=p.getBackPageId(),null!=g&&(g=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(b,g),p.setBackPage(g))}break}b=b.nextSibling}}};e.prototype.getPages=function(){return this.pages};e.prototype.getThemes=function(){return this.themes};
+e.prototype.getRelationship=function(b,a){var d=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,a);if(null==d||null==b||0===b.length)return null;for(var d=d.getElementsByTagName("Relationship"),g=0;g<d.length;g++){var c=d.item(g);if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c.getAttribute("Id"),b))return c}return null};e.prototype.getMaster=function(b){var a=this.masters;return a[b]?a[b]:null};e.prototype.createPage=function(b){return new c.mxgraph.io.vsdx.mxVsdxPage(b,this)};e.prototype.getPropertiesManager=
function(){return this.pm};e.prototype.setPropertiesManager=function(b){this.pm=b};e.prototype.getMasterShapes=function(){return this.masters};e.prototype.setMasterShapes=function(b){this.masters=b};e.prototype.getStylesheet=function(b){var a=this.stylesheets;return a[b]?a[b]:null};e.prototype.getXmlDoc=function(b){var a=this.xmlDocs;return a[b]?a[b]:null};e.prototype.getMedia=function(b){var a=this.media;return a[b]?a[b]:null};return e}();k.mxVsdxModel=f;f.__class="com.mxgraph.io.vsdx.mxVsdxModel"})(m.vsdx||
(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b,a){this.pageName=this.Id=null;this.__isBackground=!1;this.pageSheet=this.backPage=this.backPageId=null;this.shapes={};this.connects={};this.cellElements={};this.model=a;this.pageElement=b;this.layers=[];var d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.BACKGROUND),h;if(h=null!=d)h=c.mxgraph.io.vsdx.mxVsdxConstants.TRUE,h=d&&d.equals?d.equals(h):d===h;this.__isBackground=h?!0:!1;d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.BACK_PAGE);
-null!=d&&0<d.length&&(this.backPageId=parseFloat(d));this.Id=parseFloat(b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID));this.pageName=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.NAME)||"";d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"PageSheet");if(0<d.length){d=d[0];h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell");for(var p=0;p<h.length;p++){var e=h[p],f=e.getAttribute("N");this.cellElements[f]=e}d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,
-"Section");for(h=0;h<d.length;h++)if(p=d[h],f=p.getAttribute("N"),"Layer"==f)for(f=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(p,"Row"),p=0;p<f.length;p++){for(var e=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(f[p],"Cell"),k={},m=0;m<e.length;m++)k[e[m].getAttribute("N")]=e[m].getAttribute("V");this.layers[parseInt(f[p].getAttribute("IX"))]=k}}this.parseNodes(b,a,"pages")}e.prototype.parseNodes=function(b,a,d){for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType){var h=
-b,p=h.nodeName;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,"Rel"))this.resolveRel(h,a,d);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,"Shapes"))this.shapes=this.parseShapes(h,null,!1);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,"Connects"))for(h=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONNECT),h=null!=h&&0<h.length?h.item(0):null;null!=h;){if(null!=h&&1==h.nodeType){var p=h,e=new c.mxgraph.io.vsdx.mxVsdxConnect(p),f=e.getFromSheet(),
-f=null!=f&&-1<f?function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.connects,f):null;null!=f?f.addConnect(p):function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},
-getValue:function(){return this.value}})}(this.connects,e.getFromSheet(),e)}h=h.nextSibling}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(p,"PageSheet")&&(this.pageSheet=h)}b=b.nextSibling}};e.prototype.resolveRel=function(b,a,d){d=a.getRelationship(b.getAttribute("r:id"),c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/pages/_rels/"+d+".xml.rels");b=d.getAttribute("Target");d=d.getAttribute("Type");if(function(a,b){var d=a.length-b.length,h=a.indexOf(b,d);return-1!==h&&h===d}((new String(d)).toString(),
-"page")){var h=null;null!=d&&function(a,b){var d=a.length-b.length,h=a.indexOf(b,d);return-1!==h&&h===d}(d,"page")&&(h=a.getXmlDoc(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/pages/"+b));if(null!=h)for(d=h.firstChild;null!=d;){if(null!=d&&1==d.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(d.tagName,"PageContents")){h=b.indexOf(".");-1!==h&&this.parseNodes(d,a,b.substring(0,h));break}d=d.nextSibling}}};e.prototype.parseShapes=function(b,a,d){d={};b=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.SHAPE);
-for(b=null!=b&&0<b.length?b.item(0):null;null!=b;){if(null!=b&&1==b.nodeType){var h=b,p=a;if(null==p){var e=h.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.MASTER);null==e||function(a,b){return a&&a.equals?a.equals(b):a===b}(e,"")||(p=this.model.getMaster(e))}var f=this.isEdge(h);f||null==p||(e=h.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.MASTER_SHAPE),f=p.getMasterElement(),null==e||function(a,b){return a&&a.equals?a.equals(b):a===b}(e,"")||(e=p.getSubShape(e),f=null!=e?e.getShape():f),f=this.isEdge(f));
-h=this.createCell(h,!f,p);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(d,h.getId(),h)}b=b.nextSibling}return d};e.prototype.createCell=function(b,a,d){return new c.mxgraph.io.vsdx.VsdxShape(this,b,a,this.model.getMasterShapes(),d,this.model)};
+(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b,a){this.pageName=this.Id=null;this.__isBackground=!1;this.pageSheet=this.backPage=this.backPageId=null;this.shapes={};this.connects={};this.cellElements={};this.model=a;this.pageElement=b;this.layers=[];var d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.BACKGROUND),g;if(g=null!=d)g=c.mxgraph.io.vsdx.mxVsdxConstants.TRUE,g=d&&d.equals?d.equals(g):d===g;this.__isBackground=g?!0:!1;d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.BACK_PAGE);
+null!=d&&0<d.length&&(this.backPageId=parseFloat(d));this.Id=parseFloat(b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID));this.pageName=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.NAME)||"";d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"PageSheet");if(0<d.length){d=d[0];g=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell");for(var p=0;p<g.length;p++){var e=g[p],f=e.getAttribute("N");this.cellElements[f]=e}d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,
+"Section");for(g=0;g<d.length;g++)if(p=d[g],f=p.getAttribute("N"),"Layer"==f)for(f=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(p,"Row"),p=0;p<f.length;p++){for(var e=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(f[p],"Cell"),k={},m=0;m<e.length;m++)k[e[m].getAttribute("N")]=e[m].getAttribute("V");this.layers[parseInt(f[p].getAttribute("IX"))]=k}}this.parseNodes(b,a,"pages")}e.prototype.parseNodes=function(b,a,d){for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType){var g=
+b,p=g.nodeName;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,"Rel"))this.resolveRel(g,a,d);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,"Shapes"))this.shapes=this.parseShapes(g,null,!1);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(p,"Connects"))for(g=g.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONNECT),g=null!=g&&0<g.length?g.item(0):null;null!=g;){if(null!=g&&1==g.nodeType){var p=g,e=new c.mxgraph.io.vsdx.mxVsdxConnect(p),f=e.getFromSheet(),
+f=null!=f&&-1<f?function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(this.connects,f):null;null!=f?f.addConnect(p):function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},
+getValue:function(){return this.value}})}(this.connects,e.getFromSheet(),e)}g=g.nextSibling}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(p,"PageSheet")&&(this.pageSheet=g)}b=b.nextSibling}};e.prototype.resolveRel=function(b,a,d){d=a.getRelationship(b.getAttribute("r:id"),c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/pages/_rels/"+d+".xml.rels");b=d.getAttribute("Target");d=d.getAttribute("Type");if(function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}((new String(d)).toString(),
+"page")){var g=null;null!=d&&function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(d,"page")&&(g=a.getXmlDoc(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/pages/"+b));if(null!=g)for(d=g.firstChild;null!=d;){if(null!=d&&1==d.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(d.tagName,"PageContents")){g=b.indexOf(".");-1!==g&&this.parseNodes(d,a,b.substring(0,g));break}d=d.nextSibling}}};e.prototype.parseShapes=function(b,a,d){d={};b=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.SHAPE);
+for(b=null!=b&&0<b.length?b.item(0):null;null!=b;){if(null!=b&&1==b.nodeType){var g=b,p=a;if(null==p){var e=g.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.MASTER);null==e||function(a,b){return a&&a.equals?a.equals(b):a===b}(e,"")||(p=this.model.getMaster(e))}var f=this.isEdge(g);f||null==p||(e=g.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.MASTER_SHAPE),f=p.getMasterElement(),null==e||function(a,b){return a&&a.equals?a.equals(b):a===b}(e,"")||(e=p.getSubShape(e),f=null!=e?e.getShape():f),f=this.isEdge(f));
+g=this.createCell(g,!f,p);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var g=0;g<a.entries.length;g++)if(null!=a.entries[g].key.equals&&a.entries[g].key.equals(b)||a.entries[g].key===b){a.entries[g].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(d,g.getId(),g)}b=b.nextSibling}return d};e.prototype.createCell=function(b,a,d){return new c.mxgraph.io.vsdx.VsdxShape(this,b,a,this.model.getMasterShapes(),d,this.model)};
e.prototype.isEdge=function(b){if(null!=b&&(b=b.childNodes,null!=b))for(b=b.item(0);null!=b;){if(null!=b&&1==b.nodeType){var a=b;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a.nodeName,"Cell")&&(a=a.getAttribute("N"),function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"BeginX")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"BeginY")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"EndY")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"EndX")))return!0}b=b.nextSibling}return!1};
-e.prototype.getPageDimensions=function(){var b=0,a=0,d=function(a,b){return a[b]?a[b]:null}(this.cellElements,"PageHeight"),h=function(a,b){return a[b]?a[b]:null}(this.cellElements,"PageWidth");null!=d&&(b=parseFloat(d.getAttribute("V"))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),b=Math.round(100*b)/100);null!=h&&(a=parseFloat(h.getAttribute("V"))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),a=Math.round(100*a)/100);return new mxPoint(a,b)};e.prototype.getDrawingScale=function(){var b;
+e.prototype.getPageDimensions=function(){var b=0,a=0,d=function(a,b){return a[b]?a[b]:null}(this.cellElements,"PageHeight"),g=function(a,b){return a[b]?a[b]:null}(this.cellElements,"PageWidth");null!=d&&(b=parseFloat(d.getAttribute("V"))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),b=Math.round(100*b)/100);null!=g&&(a=parseFloat(g.getAttribute("V"))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),a=Math.round(100*a)/100);return new mxPoint(a,b)};e.prototype.getDrawingScale=function(){var b;
b=this.cellElements;b=b.DrawingScale?b.DrawingScale:null;return null!=b?parseFloat(b.getAttribute("V"))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$():1};e.prototype.getPageScale=function(){var b;b=this.cellElements;b=b.PageScale?b.PageScale:null;return null!=b?parseFloat(b.getAttribute("V"))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$():1};e.prototype.getCellValue=function(b){var a=this.cellElements;b=a[b]?a[b]:null;return null!=b?b.getAttribute("V")||"":null};e.prototype.getCellIntValue=
function(b,a){var d=this.getCellValue(b);return null!=d?parseInt(d):a};e.prototype.getId=function(){return this.Id};e.prototype.getPageName=function(){return this.pageName};e.prototype.getShapes=function(){return this.shapes};e.prototype.getLayers=function(){return this.layers};e.prototype.getConnects=function(){return this.connects};e.prototype.isBackground=function(){return this.__isBackground};e.prototype.getBackPageId=function(){return this.backPageId};e.prototype.setBackPage=function(b){this.backPage=
b};e.prototype.getBackPage=function(){return this.backPage};return e}();k.mxVsdxPage=f;f.__class="com.mxgraph.io.vsdx.mxVsdxPage"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b){this.themeIndex=-1;this.themeVariant=0;this.baseColors={};this.variantsColors=function(a){var b=function(a){if(0!=a.length){for(var d=[],h=0;h<a[0];h++)d.push(b(a.slice(1)));return d}};return b(a)}([4,7]);this.isMonotoneVariant=Array(4);this.defaultClr=new c.mxgraph.io.vsdx.theme.Color(255,255,255);this.defaultLineClr=new c.mxgraph.io.vsdx.theme.Color(0,0,0);this.defaultLineStyle=new c.mxgraph.io.vsdx.theme.LineStyle;
-this.fillStyles=[];this.connFillStyles=[];this.lineStyles=[];this.connLineStyles=[];this.lineStylesExt=[];this.connLineStylesExt=[];this.connFontColors=[];this.connFontStyles=[];this.fontColors=[];this.fontStyles=[];this.variantEmbellishment=[0,0,0,0];this.variantFillIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],h=0;h<a[0];h++)d.push(b(a.slice(1)));return d};return b(a)}([4,4]);this.variantLineIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],h=0;h<a[0];h++)d.push(b(a.slice(1)));
-return d};return b(a)}([4,4]);this.variantEffectIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],h=0;h<a[0];h++)d.push(b(a.slice(1)));return d};return b(a)}([4,4]);this.variantFontIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],h=0;h<a[0];h++)d.push(b(a.slice(1)));return d};return b(a)}([4,4]);this.isProcessed=!1;this.__isPure=!0;this.name=this.bkgndColor=this.theme=null;this.theme=b;this.name=b.getAttribute("name")||"";b=function(a,b){return a[b]?a[b]:
+(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b){this.themeIndex=-1;this.themeVariant=0;this.baseColors={};this.variantsColors=function(a){var b=function(a){if(0!=a.length){for(var d=[],g=0;g<a[0];g++)d.push(b(a.slice(1)));return d}};return b(a)}([4,7]);this.isMonotoneVariant=Array(4);this.defaultClr=new c.mxgraph.io.vsdx.theme.Color(255,255,255);this.defaultLineClr=new c.mxgraph.io.vsdx.theme.Color(0,0,0);this.defaultLineStyle=new c.mxgraph.io.vsdx.theme.LineStyle;
+this.fillStyles=[];this.connFillStyles=[];this.lineStyles=[];this.connLineStyles=[];this.lineStylesExt=[];this.connLineStylesExt=[];this.connFontColors=[];this.connFontStyles=[];this.fontColors=[];this.fontStyles=[];this.variantEmbellishment=[0,0,0,0];this.variantFillIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],g=0;g<a[0];g++)d.push(b(a.slice(1)));return d};return b(a)}([4,4]);this.variantLineIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],g=0;g<a[0];g++)d.push(b(a.slice(1)));
+return d};return b(a)}([4,4]);this.variantEffectIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],g=0;g<a[0];g++)d.push(b(a.slice(1)));return d};return b(a)}([4,4]);this.variantFontIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var d=[],g=0;g<a[0];g++)d.push(b(a.slice(1)));return d};return b(a)}([4,4]);this.isProcessed=!1;this.__isPure=!0;this.name=this.bkgndColor=this.theme=null;this.theme=b;this.name=b.getAttribute("name")||"";b=function(a,b){return a[b]?a[b]:
null}(e.themesIds_$LI$(),this.name);null!=b&&(this.themeIndex=b)}e.__static_initialize=function(){e.__static_initialized||(e.__static_initialized=!0,e.__static_initializer_0(),e.__static_initializer_1())};e.themesIds_$LI$=function(){e.__static_initialize();null==e.themesIds&&(e.themesIds={});return e.themesIds};e.__static_initializer_0=function(){e.themesIds_$LI$().Office=33;e.themesIds_$LI$().Linear=34;e.themesIds_$LI$().Zephyr=35;e.themesIds_$LI$().Integral=36;e.themesIds_$LI$().Simple=37;e.themesIds_$LI$().Whisp=
38;e.themesIds_$LI$().Daybreak=39;e.themesIds_$LI$().Parallel=40;e.themesIds_$LI$().Sequence=41;e.themesIds_$LI$().Slice=42;e.themesIds_$LI$().Ion=43;e.themesIds_$LI$().Retrospect=44;e.themesIds_$LI$().Organic=45;e.themesIds_$LI$().Bubble=46;e.themesIds_$LI$().Clouds=47;e.themesIds_$LI$().Gemstone=48;e.themesIds_$LI$().Lines=49;e.themesIds_$LI$().Facet=50;e.themesIds_$LI$().Prominence=51;e.themesIds_$LI$().Smoke=52;e.themesIds_$LI$().Radiance=53;e.themesIds_$LI$().Shade=54;e.themesIds_$LI$().Pencil=
-55;e.themesIds_$LI$().Pen=56;e.themesIds_$LI$().Marker=57;e.themesIds_$LI$().Whiteboard=58};e.colorIds_$LI$=function(){e.__static_initialize();null==e.colorIds&&(e.colorIds={});return e.colorIds};e.__static_initializer_1=function(){(function(b,a,d){null==b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===a){b.entries[h].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),
-0,"dk1");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===a){b.entries[h].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),1,"lt1");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===
-a){b.entries[h].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),2,"accent1");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===a){b.entries[h].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),3,"accent2");
-(function(b,a,d){null==b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===a){b.entries[h].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),4,"accent3");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===a){b.entries[h].value=
-d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),5,"accent4");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===a){b.entries[h].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),6,"accent5");(function(b,a,d){null==
-b.entries&&(b.entries=[]);for(var h=0;h<b.entries.length;h++)if(null!=b.entries[h].key.equals&&b.entries[h].key.equals(a)||b.entries[h].key===a){b.entries[h].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),7,"accent6")};e.prototype.getThemeIndex=function(){return this.themeIndex};e.prototype.setVariant=function(b){this.themeVariant=b};e.prototype.isPure=function(){return this.__isPure};e.prototype.processTheme=
-function(){if(!this.isProcessed){try{for(var b=this.theme.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.nodeName,"a:themeElements"))for(var a=b.firstChild;null!=a;){if(null!=a&&1==a.nodeType){var d=a,h=d.nodeName;(function(a,b){return a&&a.equals?a.equals(b):a===b})(h,"a:clrScheme")?(function(a,b){return a&&a.equals?a.equals(b):a===b}(this.name,d.getAttribute("name"))||(this.__isPure=!1),this.processColors(d)):function(a,b){return a&&a.equals?
-a.equals(b):a===b}(h,"a:fontScheme")?(function(a,b){return a&&a.equals?a.equals(b):a===b}(this.name,d.getAttribute("name"))||(this.__isPure=!1),this.processFonts(d)):function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"a:fmtScheme")?(function(a,b){return a&&a.equals?a.equals(b):a===b}(this.name,d.getAttribute("name"))||(this.__isPure=!1),this.processFormats(d)):function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"a:extLst")&&this.processExtras(d)}a=a.nextSibling}b=b.nextSibling}}catch(p){console.error(p.message,
-p)}this.isProcessed=!0}};e.prototype.processExtras=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var a=0;a<b.length;a++){var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b[a]);switch(d.nodeName){case "vt:fmtConnectorScheme":var h;h=this.name;var p=d.getAttribute("name");h=h&&h.equals?h.equals(p):h===p;h||(this.__isPure=!1);d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d);for(h=0;h<d.length;h++)switch(p=d[h],p.nodeName){case "a:fillStyleLst":for(var p=
-c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p),e=0;e<p.length;e++)0<this.connFillStyles.push(c.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(p[e]));break;case "a:lnStyleLst":for(p=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p),e=0;e<p.length;e++)0<this.connLineStyles.push(new c.mxgraph.io.vsdx.theme.LineStyle(p[e]))}break;case "vt:lineStyles":d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d);for(h=0;h<d.length;h++)switch(p=d[h],p.nodeName){case "vt:fmtConnectorSchemeLineStyles":p=
-c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p);for(e=0;e<p.length;e++)0<this.connLineStylesExt.push(new c.mxgraph.io.vsdx.theme.LineStyleExt(p[e]));break;case "vt:fmtSchemeLineStyles":for(p=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p),e=0;e<p.length;e++)0<this.lineStylesExt.push(new c.mxgraph.io.vsdx.theme.LineStyleExt(p[e]))}break;case "vt:fontStylesGroup":d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d);for(h=0;h<d.length;h++)switch(p=d[h],p.nodeName){case "vt:connectorFontStyles":this.fillFontStyles(p,
-this.connFontColors,this.connFontStyles);break;case "vt:fontStyles":this.fillFontStyles(p,this.fontColors,this.fontStyles)}break;case "vt:variationStyleSchemeLst":for(d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),p=h=0;p<d.length;p++){e=d[p];this.variantEmbellishment[h]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(e,"embellishment");for(var e=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(e),f=0,k=0;k<e.length;k++){var m=e[k];this.variantFillIdx[h][f]=
-c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"fillIdx");this.variantLineIdx[h][f]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"lineIdx");this.variantEffectIdx[h][f]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"effectIdx");this.variantFontIdx[h][f]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"fontIdx");f++}h++}}}};e.prototype.fillFontStyles=function(b,a,d){b=
-c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var h=0;h<b.length;h++){var p=b[h];0<d.push(c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(p,"style"));p=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p);null!=p&&0<a.push(c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p)))}};e.prototype.processFormats=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var a=
-0;a<b.length;a++){var d=b[a];switch(d.nodeName){case "a:fillStyleLst":for(var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),h=0;h<d.length;h++)0<this.fillStyles.push(c.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(d[h]));break;case "a:lnStyleLst":for(d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),h=0;h<d.length;h++)0<this.lineStyles.push(new c.mxgraph.io.vsdx.theme.LineStyle(d[h]))}}};e.prototype.processFonts=function(b){};e.prototype.processColors=function(b){for(b=b.firstChild;null!=
-b;){if(null!=b&&1==b.nodeType){var a=b,d=a.nodeName,a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),h;h=(h=d)&&h.equals?h.equals("a:extLst"):"a:extLst"===h;h?3===a.length&&(0>this.themeIndex&&this.extractThemeIndex(a[0]),this.addBkgndColor(a[1]),this.addVariantColors(a[2])):(d=d.substring(2),0<a.length&&this.addBasicColor(d,a[0]))}b=b.nextSibling}};e.prototype.addVariantColors=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b);if(null!=b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);
-for(var a=0,d=0;d<b.length;d++){var h=b[d];this.addVariantColorsSet(a++,h)}}};e.prototype.addVariantColorsSet=function(b,a){var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a);this.isMonotoneVariant[b]=a.hasAttribute("monotone");for(var h=0;h<d.length;h++){var p=d[h];switch(p.nodeName){case "vt:varColor1":this.variantsColors[b][0]=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p));break;case "vt:varColor2":this.variantsColors[b][1]=
+55;e.themesIds_$LI$().Pen=56;e.themesIds_$LI$().Marker=57;e.themesIds_$LI$().Whiteboard=58};e.colorIds_$LI$=function(){e.__static_initialize();null==e.colorIds&&(e.colorIds={});return e.colorIds};e.__static_initializer_1=function(){(function(b,a,d){null==b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===a){b.entries[g].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),
+0,"dk1");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===a){b.entries[g].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),1,"lt1");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===
+a){b.entries[g].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),2,"accent1");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===a){b.entries[g].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),3,"accent2");
+(function(b,a,d){null==b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===a){b.entries[g].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),4,"accent3");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===a){b.entries[g].value=
+d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),5,"accent4");(function(b,a,d){null==b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===a){b.entries[g].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),6,"accent5");(function(b,a,d){null==
+b.entries&&(b.entries=[]);for(var g=0;g<b.entries.length;g++)if(null!=b.entries[g].key.equals&&b.entries[g].key.equals(a)||b.entries[g].key===a){b.entries[g].value=d;return}b.entries.push({key:a,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(e.colorIds_$LI$(),7,"accent6")};e.prototype.getThemeIndex=function(){return this.themeIndex};e.prototype.setVariant=function(b){this.themeVariant=b};e.prototype.isPure=function(){return this.__isPure};e.prototype.processTheme=
+function(){if(!this.isProcessed){try{for(var b=this.theme.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.nodeName,"a:themeElements"))for(var a=b.firstChild;null!=a;){if(null!=a&&1==a.nodeType){var d=a,g=d.nodeName;(function(a,b){return a&&a.equals?a.equals(b):a===b})(g,"a:clrScheme")?(function(a,b){return a&&a.equals?a.equals(b):a===b}(this.name,d.getAttribute("name"))||(this.__isPure=!1),this.processColors(d)):function(a,b){return a&&a.equals?
+a.equals(b):a===b}(g,"a:fontScheme")?(function(a,b){return a&&a.equals?a.equals(b):a===b}(this.name,d.getAttribute("name"))||(this.__isPure=!1),this.processFonts(d)):function(a,b){return a&&a.equals?a.equals(b):a===b}(g,"a:fmtScheme")?(function(a,b){return a&&a.equals?a.equals(b):a===b}(this.name,d.getAttribute("name"))||(this.__isPure=!1),this.processFormats(d)):function(a,b){return a&&a.equals?a.equals(b):a===b}(g,"a:extLst")&&this.processExtras(d)}a=a.nextSibling}b=b.nextSibling}}catch(p){console.error(p.message,
+p)}this.isProcessed=!0}};e.prototype.processExtras=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var a=0;a<b.length;a++){var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b[a]);switch(d.nodeName){case "vt:fmtConnectorScheme":var g;g=this.name;var p=d.getAttribute("name");g=g&&g.equals?g.equals(p):g===p;g||(this.__isPure=!1);d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d);for(g=0;g<d.length;g++)switch(p=d[g],p.nodeName){case "a:fillStyleLst":for(var p=
+c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p),e=0;e<p.length;e++)0<this.connFillStyles.push(c.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(p[e]));break;case "a:lnStyleLst":for(p=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p),e=0;e<p.length;e++)0<this.connLineStyles.push(new c.mxgraph.io.vsdx.theme.LineStyle(p[e]))}break;case "vt:lineStyles":d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d);for(g=0;g<d.length;g++)switch(p=d[g],p.nodeName){case "vt:fmtConnectorSchemeLineStyles":p=
+c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p);for(e=0;e<p.length;e++)0<this.connLineStylesExt.push(new c.mxgraph.io.vsdx.theme.LineStyleExt(p[e]));break;case "vt:fmtSchemeLineStyles":for(p=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(p),e=0;e<p.length;e++)0<this.lineStylesExt.push(new c.mxgraph.io.vsdx.theme.LineStyleExt(p[e]))}break;case "vt:fontStylesGroup":d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d);for(g=0;g<d.length;g++)switch(p=d[g],p.nodeName){case "vt:connectorFontStyles":this.fillFontStyles(p,
+this.connFontColors,this.connFontStyles);break;case "vt:fontStyles":this.fillFontStyles(p,this.fontColors,this.fontStyles)}break;case "vt:variationStyleSchemeLst":for(d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),p=g=0;p<d.length;p++){e=d[p];this.variantEmbellishment[g]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(e,"embellishment");for(var e=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(e),f=0,k=0;k<e.length;k++){var m=e[k];this.variantFillIdx[g][f]=
+c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"fillIdx");this.variantLineIdx[g][f]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"lineIdx");this.variantEffectIdx[g][f]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"effectIdx");this.variantFontIdx[g][f]=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(m,"fontIdx");f++}g++}}}};e.prototype.fillFontStyles=function(b,a,d){b=
+c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var g=0;g<b.length;g++){var p=b[g];0<d.push(c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(p,"style"));p=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p);null!=p&&0<a.push(c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p)))}};e.prototype.processFormats=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var a=
+0;a<b.length;a++){var d=b[a];switch(d.nodeName){case "a:fillStyleLst":for(var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),g=0;g<d.length;g++)0<this.fillStyles.push(c.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(d[g]));break;case "a:lnStyleLst":for(d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),g=0;g<d.length;g++)0<this.lineStyles.push(new c.mxgraph.io.vsdx.theme.LineStyle(d[g]))}}};e.prototype.processFonts=function(b){};e.prototype.processColors=function(b){for(b=b.firstChild;null!=
+b;){if(null!=b&&1==b.nodeType){var a=b,d=a.nodeName,a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),g;g=(g=d)&&g.equals?g.equals("a:extLst"):"a:extLst"===g;g?3===a.length&&(0>this.themeIndex&&this.extractThemeIndex(a[0]),this.addBkgndColor(a[1]),this.addVariantColors(a[2])):(d=d.substring(2),0<a.length&&this.addBasicColor(d,a[0]))}b=b.nextSibling}};e.prototype.addVariantColors=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b);if(null!=b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);
+for(var a=0,d=0;d<b.length;d++){var g=b[d];this.addVariantColorsSet(a++,g)}}};e.prototype.addVariantColorsSet=function(b,a){var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a);this.isMonotoneVariant[b]=a.hasAttribute("monotone");for(var g=0;g<d.length;g++){var p=d[g];switch(p.nodeName){case "vt:varColor1":this.variantsColors[b][0]=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p));break;case "vt:varColor2":this.variantsColors[b][1]=
c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p));break;case "vt:varColor3":this.variantsColors[b][2]=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p));break;case "vt:varColor4":this.variantsColors[b][3]=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p));break;case "vt:varColor5":this.variantsColors[b][4]=
c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p));break;case "vt:varColor6":this.variantsColors[b][5]=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p));break;case "vt:varColor7":this.variantsColors[b][6]=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(p))}}};e.prototype.addBkgndColor=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b);
null!=b&&(this.bkgndColor=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b)))};e.prototype.extractThemeIndex=function(b){b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b);null!=b&&(this.themeIndex=parseInt(b.getAttribute("schemeEnum")))};e.prototype.addBasicColor=function(b,a){this.baseColors[b]=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(a)};e.prototype.getSchemeColor=function(b){this.processTheme();var a=this.baseColors;
b=a[b]?a[b]:null;return null!=b?b.getColor$com_mxgraph_io_vsdx_mxVsdxTheme(this):this.defaultClr};e.prototype.getStyleColor=function(b){this.processTheme();if(8>b){var a=function(a,b){return a[b]?a[b]:null}(this.baseColors,function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b)return a.entries[d].value;return null}(e.colorIds_$LI$(),b));if(null!=a)return a.getColor$com_mxgraph_io_vsdx_mxVsdxTheme(this)}else if(8===
b){if(null!=this.bkgndColor)return this.bkgndColor.getColor$com_mxgraph_io_vsdx_mxVsdxTheme(this)}else{var a=null,d=0;200<=b?d=b-200:100<=b&&(d=b-100);0<=d&&6>=d&&(a=this.variantsColors[this.themeVariant][d]);if(null!=a)return a.getColor$com_mxgraph_io_vsdx_mxVsdxTheme(this)}return this.defaultClr};e.prototype.getFillGraientColor=function(b){return this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$boolean(b,!0)};e.prototype.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals=function(b){return this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$boolean(b,
-!1)};e.prototype.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$boolean=function(b,a){this.processTheme();var d=b.getQuickStyleFillColor(),h=null;switch(b.getQuickStyleFillMatrix()){case 1:case 2:case 3:case 4:case 5:case 6:h=this.fillStyles[b.getQuickStyleFillMatrix()-1];break;case 100:case 101:case 102:case 103:this.isMonotoneVariant[this.themeVariant]&&(d=100),h=b.getQuickStyleFillMatrix()-100,h=this.fillStyles[this.variantFillIdx[this.themeVariant][h]-1]}d=null!=h?a?null!=h&&h instanceof
-c.mxgraph.io.vsdx.theme.GradFill?h.applyStyle(d,this).getGradientClr():null:h.applyStyle(d,this):a?null:this.getStyleColor(d);h=b.getQuickStyleVariation();if(null!=d&&0<(h&8)){var h=this.getStyleColor(8).toHsl(),p=this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),e=p.toHsl(),f=d.toHsl();.1666<=Math.abs(h.getLum()-f.getLum())||(.7292>=h.getLum()?d=new c.mxgraph.io.vsdx.theme.Color(255,255,255):Math.abs(h.getLum()-e.getLum())>Math.abs(h.getLum()-f.getLum())&&(d=p))}return d};e.prototype.getFillColor=
+!1)};e.prototype.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$boolean=function(b,a){this.processTheme();var d=b.getQuickStyleFillColor(),g=null;switch(b.getQuickStyleFillMatrix()){case 1:case 2:case 3:case 4:case 5:case 6:g=this.fillStyles[b.getQuickStyleFillMatrix()-1];break;case 100:case 101:case 102:case 103:this.isMonotoneVariant[this.themeVariant]&&(d=100),g=b.getQuickStyleFillMatrix()-100,g=this.fillStyles[this.variantFillIdx[this.themeVariant][g]-1]}d=null!=g?a?null!=g&&g instanceof
+c.mxgraph.io.vsdx.theme.GradFill?g.applyStyle(d,this).getGradientClr():null:g.applyStyle(d,this):a?null:this.getStyleColor(d);g=b.getQuickStyleVariation();if(null!=d&&0<(g&8)){var g=this.getStyleColor(8).toHsl(),p=this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),e=p.toHsl(),f=d.toHsl();.1666<=Math.abs(g.getLum()-f.getLum())||(.7292>=g.getLum()?d=new c.mxgraph.io.vsdx.theme.Color(255,255,255):Math.abs(g.getLum()-e.getLum())>Math.abs(g.getLum()-f.getLum())&&(d=p))}return d};e.prototype.getFillColor=
function(b,a){if(!(null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)||"boolean"!==typeof a&&null!==a){if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&void 0===a)return this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");}return this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$boolean(b,a)};e.prototype.getLineStyle=function(b,a){this.processTheme();var d=null;switch(b){case 1:case 2:case 3:case 4:case 5:case 6:d=
-a[b-1];break;case 100:case 101:case 102:case 103:d=a===this.lineStyles?this.lineStyles[this.variantLineIdx[this.themeVariant][b-100]-1]:this.defaultLineStyle}return d};e.prototype.getLineStyleExt=function(b,a){this.processTheme();var d=null;switch(b){case 0:case 1:case 2:case 3:case 4:case 5:case 6:d=a[b]}return d};e.prototype.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList=function(b,a){this.processTheme();var d=b.getQuickStyleLineColor(),h=this.getLineStyle(b.getQuickStyleLineMatrix(),
-a);switch(b.getQuickStyleLineMatrix()){case 100:case 101:case 102:case 103:this.isMonotoneVariant[this.themeVariant]&&(d=100)}d=null!=h?h.getLineColor(d,this):this.getStyleColor(d);if(0<(b.getQuickStyleVariation()&4)){var h=this.getStyleColor(8).toHsl(),p=this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),e=p.toHsl(),f=d.toHsl();.1666<=Math.abs(h.getLum()-f.getLum())||(.7292>=h.getLum()?d=new c.mxgraph.io.vsdx.theme.Color(255,255,255):Math.abs(h.getLum()-e.getLum())>Math.abs(h.getLum()-
+a[b-1];break;case 100:case 101:case 102:case 103:d=a===this.lineStyles?this.lineStyles[this.variantLineIdx[this.themeVariant][b-100]-1]:this.defaultLineStyle}return d};e.prototype.getLineStyleExt=function(b,a){this.processTheme();var d=null;switch(b){case 0:case 1:case 2:case 3:case 4:case 5:case 6:d=a[b]}return d};e.prototype.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList=function(b,a){this.processTheme();var d=b.getQuickStyleLineColor(),g=this.getLineStyle(b.getQuickStyleLineMatrix(),
+a);switch(b.getQuickStyleLineMatrix()){case 100:case 101:case 102:case 103:this.isMonotoneVariant[this.themeVariant]&&(d=100)}d=null!=g?g.getLineColor(d,this):this.getStyleColor(d);if(0<(b.getQuickStyleVariation()&4)){var g=this.getStyleColor(8).toHsl(),p=this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),e=p.toHsl(),f=d.toHsl();.1666<=Math.abs(g.getLum()-f.getLum())||(.7292>=g.getLum()?d=new c.mxgraph.io.vsdx.theme.Color(255,255,255):Math.abs(g.getLum()-e.getLum())>Math.abs(g.getLum()-
f.getLum())&&(d=p))}return d};e.prototype.getLineColor=function(b,a){if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&(null!=a&&a instanceof Array||null===a))return this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,a);if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&void 0===a)return this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");};e.prototype.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals=
function(b){return this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,this.lineStyles)};e.prototype.getConnLineColor=function(b){return this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,this.connLineStyles)};e.prototype.getDefaultLineClr=function(){return this.defaultLineClr};e.prototype.isLineDashed$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList=function(b,a,d){a=this.getLineStyleExt(b.getQuickStyleLineMatrix(),
a);if(null!=a)return a.isDashed();b=this.getLineStyle(b.getQuickStyleLineMatrix(),d);return null!=b?b.isDashed():!1};e.prototype.isLineDashed=function(b,a,d){if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&(null!=a&&a instanceof Array||null===a)&&(null!=d&&d instanceof Array||null===d))return this.isLineDashed$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,a,d);if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===
b)&&void 0===a&&void 0===d)return this.isLineDashed$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");};e.prototype.isLineDashed$com_mxgraph_io_vsdx_theme_QuickStyleVals=function(b){return this.isLineDashed$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,this.lineStylesExt,this.lineStyles)};e.prototype.isConnLineDashed=function(b){return this.isLineDashed$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,
this.connLineStylesExt,this.connLineStyles)};e.prototype.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList=function(b,a,d){a=this.getLineStyleExt(b.getQuickStyleLineMatrix(),a);if(null!=a)return a.getLineDashPattern();b=this.getLineStyle(b.getQuickStyleLineMatrix(),d);return null!=b?b.getLineDashPattern():null};e.prototype.getLineDashPattern=function(b,a,d){if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&(null!=a&&a instanceof
Array||null===a)&&(null!=d&&d instanceof Array||null===d))return this.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,a,d);if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&void 0===a&&void 0===d)return this.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");};e.prototype.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals=function(b){return this.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,
-this.lineStylesExt,this.lineStyles)};e.prototype.getConnLineDashPattern=function(b){return this.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,this.connLineStylesExt,this.connLineStyles)};e.prototype.getArrowSize=function(b,a,d,h){d=this.getLineStyleExt(b.getQuickStyleLineMatrix(),d);if(null!=d)return a?d.getStartSize():d.getEndSize();b=this.getLineStyle(b.getQuickStyleLineMatrix(),h);return null!=b?a?b.getStartSize():b.getEndSize():4};e.prototype.getStartSize=
+this.lineStylesExt,this.lineStyles)};e.prototype.getConnLineDashPattern=function(b){return this.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,this.connLineStylesExt,this.connLineStyles)};e.prototype.getArrowSize=function(b,a,d,g){d=this.getLineStyleExt(b.getQuickStyleLineMatrix(),d);if(null!=d)return a?d.getStartSize():d.getEndSize();b=this.getLineStyle(b.getQuickStyleLineMatrix(),g);return null!=b?a?b.getStartSize():b.getEndSize():4};e.prototype.getStartSize=
function(b){return this.getArrowSize(b,!0,this.lineStylesExt,this.lineStyles)};e.prototype.getConnStartSize=function(b){return this.getArrowSize(b,!0,this.connLineStylesExt,this.connLineStyles)};e.prototype.getEndSize=function(b){return this.getArrowSize(b,!1,this.lineStylesExt,this.lineStyles)};e.prototype.getConnEndSize=function(b){return this.getArrowSize(b,!1,this.connLineStylesExt,this.connLineStyles)};e.prototype.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList=function(b,
-a){this.processTheme();var d=b.getQuickStyleFontColor(),h=null;switch(b.getQuickStyleFontMatrix()){case 1:case 2:case 3:case 4:case 5:case 6:h=a[b.getQuickStyleFontMatrix()-1];break;case 100:case 101:case 102:case 103:this.isMonotoneVariant[this.themeVariant]&&(d=100),h=b.getQuickStyleFontMatrix()-100,a!==this.fontColors?(h=this.baseColors,h=h.dk1?h.dk1:null):h=a[this.variantFontIdx[this.themeVariant][h]-1]}d=null!=h?h.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(d,this):this.getStyleColor(d);if(0<
-(b.getQuickStyleVariation()&2)){var p=this.getStyleColor(8).toHsl(),e=d.toHsl(),h=this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),f=h.toHsl(),k=this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),m=k.toHsl();.1666<=Math.abs(p.getLum()-e.getLum())||(.7292>=p.getLum()?d=new c.mxgraph.io.vsdx.theme.Color(255,255,255):(m=Math.abs(p.getLum()-m.getLum()),f=Math.abs(p.getLum()-f.getLum()),p=Math.abs(p.getLum()-e.getLum()),p=Math.max(m,f,p),p==m?d=k:p==f&&(d=h)))}return d};e.prototype.getFontColor=
+a){this.processTheme();var d=b.getQuickStyleFontColor(),g=null;switch(b.getQuickStyleFontMatrix()){case 1:case 2:case 3:case 4:case 5:case 6:g=a[b.getQuickStyleFontMatrix()-1];break;case 100:case 101:case 102:case 103:this.isMonotoneVariant[this.themeVariant]&&(d=100),g=b.getQuickStyleFontMatrix()-100,a!==this.fontColors?(g=this.baseColors,g=g.dk1?g.dk1:null):g=a[this.variantFontIdx[this.themeVariant][g]-1]}d=null!=g?g.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(d,this):this.getStyleColor(d);if(0<
+(b.getQuickStyleVariation()&2)){var p=this.getStyleColor(8).toHsl(),e=d.toHsl(),g=this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),f=g.toHsl(),k=this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),m=k.toHsl();.1666<=Math.abs(p.getLum()-e.getLum())||(.7292>=p.getLum()?d=new c.mxgraph.io.vsdx.theme.Color(255,255,255):(m=Math.abs(p.getLum()-m.getLum()),f=Math.abs(p.getLum()-f.getLum()),p=Math.abs(p.getLum()-e.getLum()),p=Math.max(m,f,p),p==m?d=k:p==f&&(d=g)))}return d};e.prototype.getFontColor=
function(b,a){if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&(null!=a&&a instanceof Array||null===a))return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,a);if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&void 0===a)return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");};e.prototype.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals=function(b){return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,
-this.fontColors)};e.prototype.getConnFontColor=function(b){return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,this.connFontColors)};e.prototype.getArrowType=function(b,a,d,h){d=this.getLineStyleExt(b.getQuickStyleLineMatrix(),d);if(null!=d)return a?d.getStart():d.getEnd();b=this.getLineStyle(b.getQuickStyleLineMatrix(),h);return null!=b?a?b.getStart():b.getEnd():0};e.prototype.getEdgeMarker=function(b,a){return this.getArrowType(a,b,this.lineStylesExt,this.lineStyles)};
+this.fontColors)};e.prototype.getConnFontColor=function(b){return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,this.connFontColors)};e.prototype.getArrowType=function(b,a,d,g){d=this.getLineStyleExt(b.getQuickStyleLineMatrix(),d);if(null!=d)return a?d.getStart():d.getEnd();b=this.getLineStyle(b.getQuickStyleLineMatrix(),g);return null!=b?a?b.getStart():b.getEnd():0};e.prototype.getEdgeMarker=function(b,a){return this.getArrowType(a,b,this.lineStylesExt,this.lineStyles)};
e.prototype.getConnEdgeMarker=function(b,a){return this.getArrowType(a,b,this.connLineStylesExt,this.connLineStyles)};e.prototype.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList=function(b,a){var d=this.getLineStyle(b.getQuickStyleLineMatrix(),a);return null!=d?d.getLineWidth():0};e.prototype.getLineWidth=function(b,a){if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&(null!=a&&a instanceof Array||null===a))return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,
a);if((null!=b&&b instanceof c.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&void 0===a)return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");};e.prototype.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals=function(b){return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,this.lineStyles)};e.prototype.getConnLineWidth=function(b){return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,
this.connLineStyles)};return e}();f.__static_initialized=!1;k.mxVsdxTheme=f;f.__class="com.mxgraph.io.vsdx.mxVsdxTheme"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){var f=function(){function e(){}e.conversionFactor_$LI$=function(){null==e.conversionFactor&&(e.conversionFactor=e.screenCoordinatesPerCm*e.CENTIMETERS_PER_INCHES);return e.conversionFactor};e.getDirectChildNamedElements=function(b,a){for(var d=[],h=b.firstChild;null!=h;h=h.nextSibling){var c;if(c=null!=h&&1==h.nodeType){c=a;var e=h.nodeName;c=c&&c.equals?c.equals(e):c===e}c&&0<d.push(h)}return d};e.getDirectChildElements=function(b){var a=[];for(b=
-b.firstChild;null!=b;b=b.nextSibling)null!=b&&1==b.nodeType&&0<a.push(b);return a};e.getDirectFirstChildElement=function(b){for(b=b.firstChild;null!=b;b=b.nextSibling)if(null!=b&&1==b.nodeType)return b;return null};e.getIntAttr$org_w3c_dom_Element$java_lang_String$int=function(b,a,d){try{var h=b.getAttribute(a);if(null!=h)return parseInt(h)}catch(p){}return d};e.getIntAttr=function(b,a,d){if((null==b||1!=b.nodeType)&&null!==b||"string"!==typeof a&&null!==a||"number"!==typeof d&&null!==d){if((null==
-b||1!=b.nodeType)&&null!==b||"string"!==typeof a&&null!==a||void 0!==d)throw Error("invalid overload");return c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(b,a)}return c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String$int(b,a,d)};e.getIntAttr$org_w3c_dom_Element$java_lang_String=function(b,a){return e.getIntAttr$org_w3c_dom_Element$java_lang_String$int(b,a,0)};e.getStyleString=function(b,a){for(var d="",h=function(a){var b=0;return{next:function(){return b<
-a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){return Object.keys(a).map(function(b){return a[b]})}(b)),c=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(Object.keys(b));c.hasNext();){var e=c.next(),f=h.next();if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(e,mxConstants.STYLE_SHAPE)||!function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(b[e]?b[e]:null,"image")&&!function(a,b,d){void 0===
+(function(c){(function(n){(function(m){(function(k){var f=function(){function e(){}e.conversionFactor_$LI$=function(){null==e.conversionFactor&&(e.conversionFactor=e.screenCoordinatesPerCm*e.CENTIMETERS_PER_INCHES);return e.conversionFactor};e.getDirectChildNamedElements=function(b,a){for(var d=[],g=b.firstChild;null!=g;g=g.nextSibling){var c;if(c=null!=g&&1==g.nodeType){c=a;var e=g.nodeName;c=c&&c.equals?c.equals(e):c===e}c&&0<d.push(g)}return d};e.getDirectChildElements=function(b){var a=[];for(b=
+b.firstChild;null!=b;b=b.nextSibling)null!=b&&1==b.nodeType&&0<a.push(b);return a};e.getDirectFirstChildElement=function(b){for(b=b.firstChild;null!=b;b=b.nextSibling)if(null!=b&&1==b.nodeType)return b;return null};e.getIntAttr$org_w3c_dom_Element$java_lang_String$int=function(b,a,d){try{var g=b.getAttribute(a);if(null!=g)return parseInt(g)}catch(p){}return d};e.getIntAttr=function(b,a,d){if((null==b||1!=b.nodeType)&&null!==b||"string"!==typeof a&&null!==a||"number"!==typeof d&&null!==d){if((null==
+b||1!=b.nodeType)&&null!==b||"string"!==typeof a&&null!==a||void 0!==d)throw Error("invalid overload");return c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(b,a)}return c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String$int(b,a,d)};e.getIntAttr$org_w3c_dom_Element$java_lang_String=function(b,a){return e.getIntAttr$org_w3c_dom_Element$java_lang_String$int(b,a,0)};e.getStyleString=function(b,a){for(var d="",g=function(a){var b=0;return{next:function(){return b<
+a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){return Object.keys(a).map(function(b){return a[b]})}(b)),c=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(Object.keys(b));c.hasNext();){var e=c.next(),f=g.next();if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(e,mxConstants.STYLE_SHAPE)||!function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(b[e]?b[e]:null,"image")&&!function(a,b,d){void 0===
d&&(d=0);return a.substr(d,b.length)===b}(b[e]?b[e]:null,"rounded="))try{d=d+e+a}catch(x){console.error("mxVsdxUtils.getStyleString,"+x+",style.length="+d.length+",key.length="+e.length+",asig.length="+a.length)}d=d+f+";"}return d};e.surroundByTags=function(b,a){return"<"+a+">"+b+"</"+a+">"};e.htmlEntities=function(b){return b.replace(RegExp("&","g"),"&amp;").replace(RegExp('"',"g"),"&quot;").replace(RegExp("'","g"),"&prime;").replace(RegExp("<","g"),"&lt;").replace(RegExp(">","g"),"&gt;")};e.toInitialCapital=
-function(b){b=b.split(" ");for(var a="",d=0;d<b.length;d++)var h=b[d],c=h.substring(0,1),h=h.substring(1),c=c.toUpperCase(),a=a+(c+h);return a.substring(0,a.length)};e.toSmallCaps=function(b,a){var d="",h=d;if(a&&a.equals?a.equals(h):a===h)d=b;else for(var h=b.split(""),c=0;c<h.length;c++){var e=h[c];(null==e.charCodeAt?e:e.charCodeAt(0))>=(null=="a".charCodeAt?"a":97)&&(null==e.charCodeAt?e:e.charCodeAt(0))<=(null=="z".charCodeAt?"z":122)?(e=(new String(e)).toString(),e=e.toUpperCase(),d+='<font style="font-size:'+
-parseFloat(a)/1.28+'px">'+e+"</font>"):d+=e}return d};e.getStyleMap=function(b,a){for(var d={},h=b.split(";"),c=0;c<h.length;c++){var e=h[c],f=e.indexOf(a),k=e.substring(0,f),e=e.substring(f+1);d[k]=e}return d};e.isInsideTriangle=function(b,a,d,h,c,e,f,k){c-=d;e-=h;f-=d;k-=h;h=c*k-f*e;d=(b*(e-k)+a*(f-c)+c*k-f*e)/h;f=(b*k-a*f)/h;b=(a*c-b*e)/h;return 0<d&&1>d&&0<f&&1>f&&0<b&&1>b?!0:!1};return e}();f.screenCoordinatesPerCm=40;f.CENTIMETERS_PER_INCHES=2.54;k.mxVsdxUtils=f;f.__class="com.mxgraph.io.vsdx.mxVsdxUtils"})(m.vsdx||
+function(b){b=b.split(" ");for(var a="",d=0;d<b.length;d++)var g=b[d],c=g.substring(0,1),g=g.substring(1),c=c.toUpperCase(),a=a+(c+g);return a.substring(0,a.length)};e.toSmallCaps=function(b,a){var d="",g=d;if(a&&a.equals?a.equals(g):a===g)d=b;else for(var g=b.split(""),c=0;c<g.length;c++){var e=g[c];(null==e.charCodeAt?e:e.charCodeAt(0))>=(null=="a".charCodeAt?"a":97)&&(null==e.charCodeAt?e:e.charCodeAt(0))<=(null=="z".charCodeAt?"z":122)?(e=(new String(e)).toString(),e=e.toUpperCase(),d+='<font style="font-size:'+
+parseFloat(a)/1.28+'px">'+e+"</font>"):d+=e}return d};e.getStyleMap=function(b,a){for(var d={},g=b.split(";"),c=0;c<g.length;c++){var e=g[c],f=e.indexOf(a),k=e.substring(0,f),e=e.substring(f+1);d[k]=e}return d};e.isInsideTriangle=function(b,a,d,g,c,e,f,k){c-=d;e-=g;f-=d;k-=g;g=c*k-f*e;d=(b*(e-k)+a*(f-c)+c*k-f*e)/g;f=(b*k-a*f)/g;b=(a*c-b*e)/g;return 0<d&&1>d&&0<f&&1>f&&0<b&&1>b?!0:!1};return e}();f.screenCoordinatesPerCm=40;f.CENTIMETERS_PER_INCHES=2.54;k.mxVsdxUtils=f;f.__class="com.mxgraph.io.vsdx.mxVsdxUtils"})(m.vsdx||
(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(c){(function(c){(function(c){var f=function(){function c(b,a,d,h){this.paraIndex=this.fields=this.charIndices=this.values=null;this.values=[];0<this.values.push(b);this.charIndices=[];0<this.charIndices.push(a);this.fields=[];0<this.fields.push(h);this.paraIndex=d}c.prototype.addText=function(b,a,d){0<this.values.push(b);0<this.charIndices.push(a);0<this.fields.push(d)};c.prototype.getParagraphIndex=function(){return this.paraIndex};c.prototype.getValue=function(b){return this.values[b]};
+(function(c){(function(c){(function(c){(function(c){var f=function(){function c(b,a,d,g){this.paraIndex=this.fields=this.charIndices=this.values=null;this.values=[];0<this.values.push(b);this.charIndices=[];0<this.charIndices.push(a);this.fields=[];0<this.fields.push(g);this.paraIndex=d}c.prototype.addText=function(b,a,d){0<this.values.push(b);0<this.charIndices.push(a);0<this.fields.push(d)};c.prototype.getParagraphIndex=function(){return this.paraIndex};c.prototype.getValue=function(b){return this.values[b]};
c.prototype.numValues=function(){return this.values.length};c.prototype.getChar=function(b){return this.charIndices[b]};c.prototype.getField=function(b){return this.fields[b]};return c}();c.Paragraph=f;f.__class="com.mxgraph.io.vsdx.Paragraph"})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b){this.elem=b}e.prototype.getIndexedCell=function(b,a){for(var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(this.elem,"Row"),h=0;h<d.length;h++){var e=d[h],f=e.getAttribute("IX");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(f,b)||null==b)for(var e=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(e,"Cell"),k=0;k<e.length;k++){var m=e[k],f=m.getAttribute("N");if(function(a,b){return a&&
+(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b){this.elem=b}e.prototype.getIndexedCell=function(b,a){for(var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(this.elem,"Row"),g=0;g<d.length;g++){var e=d[g],f=e.getAttribute("IX");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(f,b)||null==b)for(var e=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(e,"Cell"),k=0;k<e.length;k++){var m=e[k],f=m.getAttribute("N");if(function(a,b){return a&&
a.equals?a.equals(b):a===b}(f,a))return m}}return null};return e}();k.Section=f;f.__class="com.mxgraph.io.vsdx.Section"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(c){(function(c){(function(c){var f=function(){function c(b,a){this.pageNumber=0;this.pageNumber=b;this.Id=a}c.prototype.getId=function(){return this.Id};c.prototype.getPageNumber=function(){return this.pageNumber};c.prototype.equals=function(b){return null==b||this.constructor!==b.constructor||this.pageNumber!==b.pageNumber||this.Id!==b.Id?!1:!0};c.prototype.hashCode=function(){return 1E5*this.pageNumber+this.Id};return c}();c.ShapePageId=f;f.__class="com.mxgraph.io.vsdx.ShapePageId"})(c.vsdx||
(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a,b,h){this.blue=this.green=this.red=0;this.gradientClr=null;this.red=a;this.green=b;this.blue=h}b.NONE_$LI$=function(){null==b.NONE&&(b.NONE=new b(-1,-1,-1));return b.NONE};b.prototype.getRed=function(){return this.red};b.prototype.setRed=function(a){this.red=a};b.prototype.getGreen=function(){return this.green};b.prototype.setGreen=function(a){this.green=a};b.prototype.getBlue=function(){return this.blue};
-b.prototype.setBlue=function(a){this.blue=a};b.prototype.toHsl=function(){var a=this.getRed()/255,b=this.getGreen()/255,h=this.getBlue()/255,e=Math.max(a,Math.max(b,h)),f=Math.min(a,Math.min(b,h)),k=(e+f)/2;if(e===f)a=f=0;else var m=e-f,f=.5<k?m/(2-e-f):m/(e+f),a=(e===a?(b-h)/m+(b<h?6:0):e===b?(h-a)/m+2:(a-b)/m+4)/6;return new c.mxgraph.io.vsdx.theme.HSLColor(a,f,k)};b.prototype.toHsv=function(){var a=this.getRed()/255,b=this.getGreen()/255,h=this.getBlue()/255,e=Math.max(a,Math.max(b,h)),f=Math.min(a,
-Math.min(b,h)),k=e-f,a=e===f?0:(e===a?(b-h)/k+(b<h?6:0):e===b?(h-a)/k+2:(a-b)/k+4)/6;return new c.mxgraph.io.vsdx.theme.HSVColor(a,0===e?0:k/e,e)};b.decodeColorHex=function(a){a=parseInt(a,16);return new b(a>>16&255,a>>8&255,a&255)};b.prototype.toHexStr=function(){var a=this.red.toString(16),a=1==a.length?"0"+a:a,b=this.green.toString(16),b=1==b.length?"0"+b:b,h=this.blue.toString(16),h=1==h.length?"0"+h:h;return"#"+a+b+h};b.prototype.getGradientClr=function(){return this.gradientClr};b.prototype.setGradientClr=
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a,b,g){this.blue=this.green=this.red=0;this.gradientClr=null;this.red=a;this.green=b;this.blue=g}b.NONE_$LI$=function(){null==b.NONE&&(b.NONE=new b(-1,-1,-1));return b.NONE};b.prototype.getRed=function(){return this.red};b.prototype.setRed=function(a){this.red=a};b.prototype.getGreen=function(){return this.green};b.prototype.setGreen=function(a){this.green=a};b.prototype.getBlue=function(){return this.blue};
+b.prototype.setBlue=function(a){this.blue=a};b.prototype.toHsl=function(){var a=this.getRed()/255,b=this.getGreen()/255,g=this.getBlue()/255,e=Math.max(a,Math.max(b,g)),f=Math.min(a,Math.min(b,g)),k=(e+f)/2;if(e===f)a=f=0;else var m=e-f,f=.5<k?m/(2-e-f):m/(e+f),a=(e===a?(b-g)/m+(b<g?6:0):e===b?(g-a)/m+2:(a-b)/m+4)/6;return new c.mxgraph.io.vsdx.theme.HSLColor(a,f,k)};b.prototype.toHsv=function(){var a=this.getRed()/255,b=this.getGreen()/255,g=this.getBlue()/255,e=Math.max(a,Math.max(b,g)),f=Math.min(a,
+Math.min(b,g)),k=e-f,a=e===f?0:(e===a?(b-g)/k+(b<g?6:0):e===b?(g-a)/k+2:(a-b)/k+4)/6;return new c.mxgraph.io.vsdx.theme.HSVColor(a,0===e?0:k/e,e)};b.decodeColorHex=function(a){a=parseInt(a,16);return new b(a>>16&255,a>>8&255,a&255)};b.prototype.toHexStr=function(){var a=this.red.toString(16),a=1==a.length?"0"+a:a,b=this.green.toString(16),b=1==b.length?"0"+b:b,g=this.blue.toString(16),g=1==g.length?"0"+g:g;return"#"+a+b+g};b.prototype.getGradientClr=function(){return this.gradientClr};b.prototype.setGradientClr=
function(a){this.gradientClr=a};return b}();f.Color=e;e.__class="com.mxgraph.io.vsdx.theme.Color"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(){}b.getFillStyle=function(a){var b=null;switch(a.nodeName){case "a:solidFill":b=new c.mxgraph.io.vsdx.theme.SolidFillStyle(c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a)));break;case "a:noFill":b=new c.mxgraph.io.vsdx.theme.NoFillStyle;break;case "a:gradFill":b=new c.mxgraph.io.vsdx.theme.GradFill(a)}return b};return b}();f.FillStyleFactory=
e;e.__class="com.mxgraph.io.vsdx.theme.FillStyleFactory"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a){this.color2=this.color1=null;a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"a:gsLst");0<a.length&&(a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a[0]),2<=a.length&&(this.color2=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a[0])),this.color1=c.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(c.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a[a.length-
1]))));null==this.color1&&(this.color1=this.color2=new c.mxgraph.io.vsdx.theme.SrgbClr("FFFFFF"))}b.prototype.applyStyle=function(a,b){var d=this.color1.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b);d.setGradientClr(this.color2.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b));return d};return b}();f.GradFill=e;e.__class="com.mxgraph.io.vsdx.theme.GradFill";e.__interfaces=["com.mxgraph.io.vsdx.theme.FillStyle"]})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph=
{}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a,b,h){this.lum=this.sat=this.hue=0;this.hue=a;this.sat=b;this.lum=h}b.prototype.getHue=function(){return this.hue};b.prototype.setHue=function(a){this.hue=a};b.prototype.getSat=function(){return this.sat};b.prototype.setSat=function(a){this.sat=a};b.prototype.getLum=function(){return this.lum};b.prototype.setLum=function(a){this.lum=a};b.prototype.hue2rgb=function(a,b,h){0>h&&(h+=1);1<h&&--h;return h<1/6?
-a+6*(b-a)*h:.5>h?b:h<2/3?a+(b-a)*(2/3-h)*6:a};b.prototype.toRgb=function(){var a,b,h;h=this.hue;b=this.sat;a=this.lum;if(0===b)a=b=h=a;else{var e=.5>a?a*(1+b):a+b-a*b,f=2*a-e;a=this.hue2rgb(f,e,h+1/3);b=this.hue2rgb(f,e,h);h=this.hue2rgb(f,e,h-1/3)}return new c.mxgraph.io.vsdx.theme.Color(255*a|0,255*b|0,255*h|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.lum*=1+a/100;this.lum=this.clamp01(this.lum);return this};b.prototype.shade=function(a){this.lum*=
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a,b,g){this.lum=this.sat=this.hue=0;this.hue=a;this.sat=b;this.lum=g}b.prototype.getHue=function(){return this.hue};b.prototype.setHue=function(a){this.hue=a};b.prototype.getSat=function(){return this.sat};b.prototype.setSat=function(a){this.sat=a};b.prototype.getLum=function(){return this.lum};b.prototype.setLum=function(a){this.lum=a};b.prototype.hue2rgb=function(a,b,g){0>g&&(g+=1);1<g&&--g;return g<1/6?
+a+6*(b-a)*g:.5>g?b:g<2/3?a+(b-a)*(2/3-g)*6:a};b.prototype.toRgb=function(){var a,b,g;g=this.hue;b=this.sat;a=this.lum;if(0===b)a=b=g=a;else{var e=.5>a?a*(1+b):a+b-a*b,f=2*a-e;a=this.hue2rgb(f,e,g+1/3);b=this.hue2rgb(f,e,g);g=this.hue2rgb(f,e,g-1/3)}return new c.mxgraph.io.vsdx.theme.Color(255*a|0,255*b|0,255*g|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.lum*=1+a/100;this.lum=this.clamp01(this.lum);return this};b.prototype.shade=function(a){this.lum*=
a/100;this.lum=this.clamp01(this.lum);return this};b.prototype.satMod=function(a){this.sat*=a/100;this.sat=this.clamp01(this.sat);return this};b.prototype.lumMod=function(a){this.lum*=a/100;this.lum=this.clamp01(this.lum);return this};return b}();f.HSLColor=e;e.__class="com.mxgraph.io.vsdx.theme.HSLColor"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a,b,h){this.h=a;this.s=b;this.v=h}b.prototype.toRgb=function(){var a=6*this.h,b=this.s,h=Math.floor(a),e=a-h,a=this.v*(1-b),f=this.v*(1-e*b),b=this.v*(1-(1-e)*b),h=(h|0)%6;return new c.mxgraph.io.vsdx.theme.Color(255*[this.v,f,a,a,b,this.v][h]|0,255*[b,this.v,this.v,f,a,a][h]|0,255*[a,a,b,this.v,this.v,f][h]|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.v*=
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a,b,g){this.h=a;this.s=b;this.v=g}b.prototype.toRgb=function(){var a=6*this.h,b=this.s,g=Math.floor(a),e=a-g,a=this.v*(1-b),f=this.v*(1-e*b),b=this.v*(1-(1-e)*b),g=(g|0)%6;return new c.mxgraph.io.vsdx.theme.Color(255*[this.v,f,a,a,b,this.v][g]|0,255*[b,this.v,this.v,f,a,a][g]|0,255*[a,a,b,this.v,this.v,f][g]|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.v*=
1+a/100;this.v=this.clamp01(this.v);return this};b.prototype.shade=function(a){this.v*=a/100;this.v=this.clamp01(this.v);return this};b.prototype.satMod=function(a){this.s*=a/100;this.s=this.clamp01(this.s);return this};b.prototype.lumMod=function(a){this.v*=a/100;this.v=this.clamp01(this.v);return this};b.prototype.hueMod=function(a){this.h*=a/100;this.h=this.clamp01(this.h);return this};return b}();f.HSVColor=e;e.__class="com.mxgraph.io.vsdx.theme.HSVColor"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx=
{}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(a){this.isLineDashed=!1;this.lineDashPattern=[];this.isMiterJoin=this.isBevelJoin=this.isRoundJoin=!1;if(null!=a&&1==a.nodeType||null===a){Array.prototype.slice.call(arguments);this.lineWidth=0;this.headEndType=this.fillStyle=this.lineComp=this.lineCap=null;this.headEndLen=this.headEndWidth=0;this.tailEndType=null;this.tailEndLen=this.tailEndWidth=0;this.isLineDashed=!1;this.lineDashPattern=[];this.isMiterJoin=
this.isBevelJoin=this.isRoundJoin=!1;this.lineWidth=0;this.headEndType=this.fillStyle=this.lineComp=this.lineCap=null;this.headEndLen=this.headEndWidth=0;this.tailEndType=null;this.tailEndLen=this.tailEndWidth=0;this.lineWidth=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"w");var d=a.getAttribute("cap");if(null!=d)switch(d){case "rnd":this.lineCap=b.LineCapType.ROUND;break;case "sq":this.lineCap=b.LineCapType.SQUARE;break;case "flat":this.lineCap=b.LineCapType.FLAT}d=
-a.getAttribute("cmpd");if(null!=d)switch(d){case "sng":this.lineComp=b.CompoundLineType.SINGLE;break;case "dbl":this.lineComp=b.CompoundLineType.DOUBLE;break;case "thickThin":this.lineComp=b.CompoundLineType.THICK_THIN_DOUBLE;break;case "thinThick":this.lineComp=b.CompoundLineType.THIN_THICK_DOUBLE;break;case "tri":this.lineComp=b.CompoundLineType.THIN_THICK_THIN_TRIPLE}for(var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),h=0;h<d.length;h++){var e=d[h];switch(e.nodeName){case "a:noFill":case "a:solidFill":case "a:gradFill":case "a:pattFill":this.fillStyle=
+a.getAttribute("cmpd");if(null!=d)switch(d){case "sng":this.lineComp=b.CompoundLineType.SINGLE;break;case "dbl":this.lineComp=b.CompoundLineType.DOUBLE;break;case "thickThin":this.lineComp=b.CompoundLineType.THICK_THIN_DOUBLE;break;case "thinThick":this.lineComp=b.CompoundLineType.THIN_THICK_DOUBLE;break;case "tri":this.lineComp=b.CompoundLineType.THIN_THICK_THIN_TRIPLE}for(var d=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),g=0;g<d.length;g++){var e=d[g];switch(e.nodeName){case "a:noFill":case "a:solidFill":case "a:gradFill":case "a:pattFill":this.fillStyle=
c.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(e);break;case "a:prstDash":e=e.getAttribute("val");this.isLineDashed=!0;switch(e){case "solid":this.isLineDashed=!1;break;case "sysDot":case "dot":0<this.lineDashPattern.push(1);0<this.lineDashPattern.push(4);break;case "lgDash":0<this.lineDashPattern.push(12);0<this.lineDashPattern.push(4);break;case "sysDashDot":case "dashDot":0<this.lineDashPattern.push(8);0<this.lineDashPattern.push(4);0<this.lineDashPattern.push(1);0<this.lineDashPattern.push(4);
break;case "lgDashDot":0<this.lineDashPattern.push(12);0<this.lineDashPattern.push(4);0<this.lineDashPattern.push(1);0<this.lineDashPattern.push(4);break;case "sysDashDotDot":case "lgDashDotDot":0<this.lineDashPattern.push(12),0<this.lineDashPattern.push(4),0<this.lineDashPattern.push(1),0<this.lineDashPattern.push(4),0<this.lineDashPattern.push(1),0<this.lineDashPattern.push(4)}break;case "a:custDash":this.isLineDashed=!0;for(var e=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(e,"a:ds"),
f=0;f<e.length;f++){var k=e[f],m=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(k,"d"),k=c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(k,"sp");0<this.lineDashPattern.push(m/1E4);0<this.lineDashPattern.push(k/1E4)}break;case "a:round":this.isRoundJoin=!0;break;case "a:bevel":this.isBevelJoin=!0;break;case "a:miter":c.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(e,"lim");this.isMiterJoin=!0;break;case "a:headEnd":this.headEndType=
@@ -998,60 +1001,60 @@ function(a){this.shade=a;this.hasEffects=!0};b.prototype.setComp=function(a){thi
a;this.hasEffects=!0};b.prototype.setRed=function(a){this.red=a;this.hasEffects=!0};b.prototype.setRedOff=function(a){this.redOff=a;this.hasEffects=!0};b.prototype.setRedMod=function(a){this.redMod=a;this.hasEffects=!0};b.prototype.setGreen=function(a){this.green=a;this.hasEffects=!0};b.prototype.setGreenOff=function(a){this.greenOff=a;this.hasEffects=!0};b.prototype.setGreenMod=function(a){this.greenMod=a;this.hasEffects=!0};b.prototype.setBlue=function(a){this.blue=a;this.hasEffects=!0};b.prototype.setBlueOff=
function(a){this.blueOff=a;this.hasEffects=!0};b.prototype.setBlueMod=function(a){this.blueMod=a;this.hasEffects=!0};b.prototype.setGamma=function(a){this.gamma=a;this.hasEffects=!0};b.prototype.setInvGamma=function(a){this.invGamma=a;this.hasEffects=!0};return b}();f.OoxmlColor=e;e.__class="com.mxgraph.io.vsdx.theme.OoxmlColor"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(){function b(){}b.getOoxmlColor=function(a){var b=null;switch(a.nodeName){case "a:scrgbClr":b=new c.mxgraph.io.vsdx.theme.ScrgbClr(parseInt(a.getAttribute("r")),parseInt(a.getAttribute("g")),parseInt(a.getAttribute("b")));break;case "a:srgbClr":b=new c.mxgraph.io.vsdx.theme.SrgbClr(a.getAttribute("val"));break;case "a:hslClr":b=new c.mxgraph.io.vsdx.theme.HslClr(parseInt(a.getAttribute("hue")),parseInt(a.getAttribute("sat")),
-parseInt(a.getAttribute("lum")));break;case "a:sysClr":b=new c.mxgraph.io.vsdx.theme.SysClr(a.getAttribute("val"),a.getAttribute("lastClr"));break;case "a:schemeClr":b=new c.mxgraph.io.vsdx.theme.SchemeClr(a.getAttribute("val"));break;case "a:prstClr":b=new c.mxgraph.io.vsdx.theme.SrgbClr(a.getAttribute("val"))}a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a);for(var h=0;h<a.length;h++){var e=a[h],f=parseInt(e.getAttribute("val"))/1E3|0;switch(e.nodeName){case "a:tint":b.setTint(f);break;
+parseInt(a.getAttribute("lum")));break;case "a:sysClr":b=new c.mxgraph.io.vsdx.theme.SysClr(a.getAttribute("val"),a.getAttribute("lastClr"));break;case "a:schemeClr":b=new c.mxgraph.io.vsdx.theme.SchemeClr(a.getAttribute("val"));break;case "a:prstClr":b=new c.mxgraph.io.vsdx.theme.SrgbClr(a.getAttribute("val"))}a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a);for(var g=0;g<a.length;g++){var e=a[g],f=parseInt(e.getAttribute("val"))/1E3|0;switch(e.nodeName){case "a:tint":b.setTint(f);break;
case "a:shade":b.setShade(f);break;case "a:satMod":b.setSatMod(f);break;case "a:lumMod":b.setLumMod(f);break;case "a:hueMod":b.setHueMod(f)}}return b};return b}();f.OoxmlColorFactory=e;e.__class="com.mxgraph.io.vsdx.theme.OoxmlColorFactory"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(c){(function(c){(function(c){(function(c){var e=function(){function b(a,b,h,c,e,f,k,m,n,A){this.quickStyleVariation=this.quickStyleType=this.quickStyleShadowColor=this.quickStyleLineColor=this.quickStyleFontMatrix=this.quickStyleFontColor=this.quickStyleFillMatrix=this.quickStyleFillColor=this.quickStyleEffectsMatrix=0;this.quickStyleEffectsMatrix=a;this.quickStyleFillColor=b;this.quickStyleFillMatrix=h;this.quickStyleFontColor=c;this.quickStyleFontMatrix=e;this.quickStyleLineColor=
-f;this.quickStyleLineMatrix=k;this.quickStyleShadowColor=m;this.quickStyleType=n;this.quickStyleVariation=A}b.prototype.getQuickStyleEffectsMatrix=function(){return this.quickStyleEffectsMatrix};b.prototype.getQuickStyleFillColor=function(){return this.quickStyleFillColor};b.prototype.getQuickStyleFillMatrix=function(){return this.quickStyleFillMatrix};b.prototype.getQuickStyleFontColor=function(){return this.quickStyleFontColor};b.prototype.getQuickStyleFontMatrix=function(){return this.quickStyleFontMatrix};
+(function(c){(function(c){(function(c){(function(c){(function(c){var e=function(){function b(a,b,g,c,e,f,k,m,n,B){this.quickStyleVariation=this.quickStyleType=this.quickStyleShadowColor=this.quickStyleLineColor=this.quickStyleFontMatrix=this.quickStyleFontColor=this.quickStyleFillMatrix=this.quickStyleFillColor=this.quickStyleEffectsMatrix=0;this.quickStyleEffectsMatrix=a;this.quickStyleFillColor=b;this.quickStyleFillMatrix=g;this.quickStyleFontColor=c;this.quickStyleFontMatrix=e;this.quickStyleLineColor=
+f;this.quickStyleLineMatrix=k;this.quickStyleShadowColor=m;this.quickStyleType=n;this.quickStyleVariation=B}b.prototype.getQuickStyleEffectsMatrix=function(){return this.quickStyleEffectsMatrix};b.prototype.getQuickStyleFillColor=function(){return this.quickStyleFillColor};b.prototype.getQuickStyleFillMatrix=function(){return this.quickStyleFillMatrix};b.prototype.getQuickStyleFontColor=function(){return this.quickStyleFontColor};b.prototype.getQuickStyleFontMatrix=function(){return this.quickStyleFontMatrix};
b.prototype.getQuickStyleLineColor=function(){return this.quickStyleLineColor};b.prototype.getQuickStyleLineMatrix=function(){return this.quickStyleLineMatrix};b.prototype.getQuickStyleShadowColor=function(){return this.quickStyleShadowColor};b.prototype.getQuickStyleType=function(){return this.quickStyleType};b.prototype.getQuickStyleVariation=function(){return this.quickStyleVariation};b.prototype.setQuickStyleEffectsMatrix=function(a){this.quickStyleEffectsMatrix=a};b.prototype.setQuickStyleFillColor=
function(a){this.quickStyleFillColor=a};b.prototype.setQuickStyleFillMatrix=function(a){this.quickStyleFillMatrix=a};b.prototype.setQuickStyleFontColor=function(a){this.quickStyleFontColor=a};b.prototype.setQuickStyleFontMatrix=function(a){this.quickStyleFontMatrix=a};b.prototype.setQuickStyleLineColor=function(a){this.quickStyleLineColor=a};b.prototype.setQuickStyleLineMatrix=function(a){this.quickStyleLineMatrix=a};b.prototype.setQuickStyleShadowColor=function(a){this.quickStyleShadowColor=a};b.prototype.setQuickStyleType=
function(a){this.quickStyleType=a};b.prototype.setQuickStyleVariation=function(a){this.quickStyleVariation=a};return b}();c.QuickStyleVals=e;e.__class="com.mxgraph.io.vsdx.theme.QuickStyleVals"})(c.theme||(c.theme={}))})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(c){(function(c){(function(c){(function(c){var e=function(){function b(a){this.color=null;this.color=a}b.prototype.applyStyle=function(a,b){return this.color.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b)};return b}();c.SolidFillStyle=e;e.__class="com.mxgraph.io.vsdx.theme.SolidFillStyle";e.__interfaces=["com.mxgraph.io.vsdx.theme.FillStyle"]})(c.theme||(c.theme={}))})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(c){(function(c){var k=function(){function c(){}c.MAX_AREA_$LI$=function(){null==c.MAX_AREA&&(c.MAX_AREA=1E8);return c.MAX_AREA};return c}();k.MAX_REQUEST_SIZE=52428800;k.IMAGE_DOMAIN="http://img.diagramly.com/";c.Constants=k;k.__class="com.mxgraph.online.Constants"})(c.online||(c.online={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(c){(function(c){var k=function(){function c(){}c.getRotatedPoint=function(c,b,a,d){var h=c.x-d.x;c=c.y-d.y;return new mxPoint(h*b-c*a+d.x,c*b+h*a+d.y)};c.rotatedGeometry=function(c,b,a,d){b=b*Math.PI/180;var h=Math.cos(b);b=Math.sin(b);var e=c.getCenterX()-a,f=c.getCenterY()-d;c.x=Math.round(e*h-f*b+a-c.width/2);c.y=Math.round(f*h+e*b+d-c.height/2)};return c}();k.CHARSET_FOR_URL_ENCODING="ISO-8859-1";c.Utils=k;k.__class="com.mxgraph.online.Utils"})(c.online||(c.online={}))})(c.mxgraph||
+(function(c){(function(c){(function(c){var k=function(){function c(){}c.getRotatedPoint=function(c,b,a,d){var g=c.x-d.x;c=c.y-d.y;return new mxPoint(g*b-c*a+d.x,c*b+g*a+d.y)};c.rotatedGeometry=function(c,b,a,d){b=b*Math.PI/180;var g=Math.cos(b);b=Math.sin(b);var e=c.getCenterX()-a,f=c.getCenterY()-d;c.x=Math.round(e*g-f*b+a-c.width/2);c.y=Math.round(f*g+e*b+d-c.height/2)};return c}();k.CHARSET_FOR_URL_ENCODING="ISO-8859-1";c.Utils=k;k.__class="com.mxgraph.online.Utils"})(c.online||(c.online={}))})(c.mxgraph||
(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,c,e){a=b.call(this,a,h,c)||this;a.a=e;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var d=b.getHeight(),h=b.getWidth(),e=Math.floor(Math.round(b.getLastX()*h)/100),f=Math.floor(Math.round(b.getLastY()*d)/100),k=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=d-m,n=this.a*
-c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),e=Math.abs(k-e),f=Math.abs(m-f),e=f=.5*n+(e*e+f*f)/(8*n),B=Math.abs(f),f=Math.round(100*f/h*100)/100,e=Math.round(100*e/d*100)/100,k=Math.round(100*k/h*100)/100,m=Math.round(100*m/d*100)/100,n=Math.round(100*n)/100,f=Math.abs(f),e=Math.abs(e),d=0>n?"1":"0",n=B<Math.abs(n)?"1":"0";b.setLastX(k);b.setLastY(m);return'<arc rx="'+(new String(f)).toString()+'" ry="'+(new String(e)).toString()+'" x="'+(new String(k)).toString()+'" y="'+(new String(m)).toString()+
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c,e){a=b.call(this,a,g,c)||this;a.a=e;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var d=b.getHeight(),g=b.getWidth(),e=Math.floor(Math.round(b.getLastX()*g)/100),f=Math.floor(Math.round(b.getLastY()*d)/100),k=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=d-m,n=this.a*
+c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),e=Math.abs(k-e),f=Math.abs(m-f),e=f=.5*n+(e*e+f*f)/(8*n),C=Math.abs(f),f=Math.round(100*f/g*100)/100,e=Math.round(100*e/d*100)/100,k=Math.round(100*k/g*100)/100,m=Math.round(100*m/d*100)/100,n=Math.round(100*n)/100,f=Math.abs(f),e=Math.abs(e),d=0>n?"1":"0",n=C<Math.abs(n)?"1":"0";b.setLastX(k);b.setLastY(m);return'<arc rx="'+(new String(f)).toString()+'" ry="'+(new String(e)).toString()+'" x="'+(new String(k)).toString()+'" y="'+(new String(m)).toString()+
'" x-axis-rotation="0" large-arc-flag="'+n+'" sweep-flag="'+d+'"/>'}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.ArcTo=e;e.__class="com.mxgraph.io.vsdx.geometry.ArcTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a){return b.call(this,a,null,null)||this}__extends(a,b);a.prototype.handle=function(a,b){return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.DelRow=e;e.__class="com.mxgraph.io.vsdx.geometry.DelRow"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,c,e,f,k,m){a=b.call(this,a,h,c)||this;a.a=e;a.b=f;a.c=k;a.d=m;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=b.getHeight(),h=b.getWidth(),e=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=d-f,k=this.a*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
-m=this.b*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=d-m,n=this.c*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),B=this.d*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=Math.abs(k-e),m=Math.abs(m-f),m=Math.sqrt(k*k+m*m),n=Math.abs(n-e),B=Math.abs(d-B-f),e=100*e/h,B=Math.round(100*Math.sqrt(n*n+B*B)/d/2*100)/100,h=Math.round(100*m/h/2*100)/100,n=Math.round(100*(e-2*h))/100,e=Math.round(100*(e+2*h))/100,d=Math.round(100*f/d*100)/100;return'<move x="'+(new String(n)).toString()+
-'" y="'+(new String(d)).toString()+'"/><arc rx="'+(new String(h)).toString()+'" ry="'+(new String(B)).toString()+'" x="'+(new String(e)).toString()+'" y="'+(new String(d)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/><arc rx="'+(new String(h)).toString()+'" ry="'+(new String(B)).toString()+'" x="'+(new String(n)).toString()+'" y="'+(new String(d)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/>'}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.Ellipse=
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c,e,f,k,m){a=b.call(this,a,g,c)||this;a.a=e;a.b=f;a.c=k;a.d=m;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=b.getHeight(),g=b.getWidth(),e=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=d-f,k=this.a*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
+m=this.b*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=d-m,n=this.c*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),C=this.d*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=Math.abs(k-e),m=Math.abs(m-f),m=Math.sqrt(k*k+m*m),n=Math.abs(n-e),C=Math.abs(d-C-f),e=100*e/g,C=Math.round(100*Math.sqrt(n*n+C*C)/d/2*100)/100,g=Math.round(100*m/g/2*100)/100,n=Math.round(100*(e-2*g))/100,e=Math.round(100*(e+2*g))/100,d=Math.round(100*f/d*100)/100;return'<move x="'+(new String(n)).toString()+
+'" y="'+(new String(d)).toString()+'"/><arc rx="'+(new String(g)).toString()+'" ry="'+(new String(C)).toString()+'" x="'+(new String(e)).toString()+'" y="'+(new String(d)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/><arc rx="'+(new String(g)).toString()+'" ry="'+(new String(C)).toString()+'" x="'+(new String(n)).toString()+'" y="'+(new String(d)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/>'}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.Ellipse=
e;e.__class="com.mxgraph.io.vsdx.geometry.Ellipse"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,c,e,f,k,m){a=b.call(this,a,h,c)||this;a.a=e;a.b=f;a.c=k;a.d=m;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=b.getHeight(),h=b.getWidth(),e=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=d-f,k=this.a*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
-m=this.b*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),n=this.c,B=this.d,e=100*e/h,f=100*f/d,G=b.getLastX()*h/100,D=b.getLastY()*d/100,Z=e*h/100,Y=f*d/100,aa=d-m,L=-n,n=Math.sqrt(G*G+D*D)*Math.cos(Math.atan2(D,G)-L),m=Math.sqrt(G*G+D*D)*Math.sin(Math.atan2(D,G)-L),S=Math.sqrt(Z*Z+Y*Y)*Math.cos(Math.atan2(Y,Z)-L),U=Math.sqrt(Z*Z+Y*Y)*Math.sin(Math.atan2(Y,Z)-L),da=Math.sqrt(k*k+aa*aa)*Math.cos(Math.atan2(aa,k)-L),ka=Math.sqrt(k*k+aa*aa)*Math.sin(Math.atan2(aa,k)-L),ba=((n-S)*(n+S)*(U-ka)-(S-
-da)*(S+da)*(m-U)+B*B*(m-U)*(U-ka)*(m-ka))/(2*((n-S)*(U-ka)-(S-da)*(m-U))),Da=((n-S)*(S-da)*(n-da)/(B*B)+(S-da)*(m-U)*(m+U)-(n-S)*(U-ka)*(U+ka))/(2*((S-da)*(m-U)-(n-S)*(U-ka))),ga=n-ba,ea=m-Da,ga=Math.sqrt(ga*ga+ea*ea*B*B),B=ga/B,L=180*L/Math.PI,e=Math.round(100*e)/100,f=Math.round(100*f)/100,ga=Math.round(100*ga/h*100)/100,B=Math.round(100*B/d*100)/100,L=Math.round(100*L)/100,d=0<(Z-G)*(aa-D)-(Y-D)*(k-G)?"0":"1",h="0";c.mxgraph.io.vsdx.mxVsdxUtils.isInsideTriangle(ba,Da,n,m,S,U,da,ka)&&this.isReflexAngle(ba,
-Da,n,m,S,U,da,ka)&&(h="1");b.setLastX(e);b.setLastY(f);return'<arc rx="'+(new String(ga)).toString()+'" ry="'+(new String(B)).toString()+'" x="'+(new String(e)).toString()+'" y="'+(new String(f)).toString()+'" x-axis-rotation="'+(new String(L)).toString()+'" large-arc-flag="'+h+'" sweep-flag="'+d+'"/>'}return""};a.prototype.isReflexAngle=function(a,b,c,e,f,k,m,n){c-=a;e-=b;k-=b;f=m-a;n-=b;b=a=0;c=180*(Math.atan2(e,c)-Math.atan2(b,a))/Math.PI;f=180*(Math.atan2(k,f)-Math.atan2(b,a))/Math.PI;a=180*(Math.atan2(n,
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c,e,f,k,m){a=b.call(this,a,g,c)||this;a.a=e;a.b=f;a.c=k;a.d=m;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=b.getHeight(),g=b.getWidth(),e=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=d-f,k=this.a*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
+m=this.b*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),n=this.c,C=this.d,e=100*e/g,f=100*f/d,G=b.getLastX()*g/100,D=b.getLastY()*d/100,Z=e*g/100,Y=f*d/100,aa=d-m,L=-n,n=Math.sqrt(G*G+D*D)*Math.cos(Math.atan2(D,G)-L),m=Math.sqrt(G*G+D*D)*Math.sin(Math.atan2(D,G)-L),S=Math.sqrt(Z*Z+Y*Y)*Math.cos(Math.atan2(Y,Z)-L),U=Math.sqrt(Z*Z+Y*Y)*Math.sin(Math.atan2(Y,Z)-L),da=Math.sqrt(k*k+aa*aa)*Math.cos(Math.atan2(aa,k)-L),ba=Math.sqrt(k*k+aa*aa)*Math.sin(Math.atan2(aa,k)-L),ia=((n-S)*(n+S)*(U-ba)-(S-
+da)*(S+da)*(m-U)+C*C*(m-U)*(U-ba)*(m-ba))/(2*((n-S)*(U-ba)-(S-da)*(m-U))),Da=((n-S)*(S-da)*(n-da)/(C*C)+(S-da)*(m-U)*(m+U)-(n-S)*(U-ba)*(U+ba))/(2*((S-da)*(m-U)-(n-S)*(U-ba))),ga=n-ia,ea=m-Da,ga=Math.sqrt(ga*ga+ea*ea*C*C),C=ga/C,L=180*L/Math.PI,e=Math.round(100*e)/100,f=Math.round(100*f)/100,ga=Math.round(100*ga/g*100)/100,C=Math.round(100*C/d*100)/100,L=Math.round(100*L)/100,d=0<(Z-G)*(aa-D)-(Y-D)*(k-G)?"0":"1",g="0";c.mxgraph.io.vsdx.mxVsdxUtils.isInsideTriangle(ia,Da,n,m,S,U,da,ba)&&this.isReflexAngle(ia,
+Da,n,m,S,U,da,ba)&&(g="1");b.setLastX(e);b.setLastY(f);return'<arc rx="'+(new String(ga)).toString()+'" ry="'+(new String(C)).toString()+'" x="'+(new String(e)).toString()+'" y="'+(new String(f)).toString()+'" x-axis-rotation="'+(new String(L)).toString()+'" large-arc-flag="'+g+'" sweep-flag="'+d+'"/>'}return""};a.prototype.isReflexAngle=function(a,b,c,e,f,k,m,n){c-=a;e-=b;k-=b;f=m-a;n-=b;b=a=0;c=180*(Math.atan2(e,c)-Math.atan2(b,a))/Math.PI;f=180*(Math.atan2(k,f)-Math.atan2(b,a))/Math.PI;a=180*(Math.atan2(n,
m)-Math.atan2(b,a))/Math.PI;c=(c-a)%360;f=(f-a)%360;180<c?c-=360:-180>c&&(c+=360);180<f?f-=360:-180>f&&(f+=360);return(0<c&&0>f||0>c&&0<f)&&180<Math.abs(c-f)?!0:!1};return a}(c.mxgraph.io.vsdx.geometry.Row);f.EllipticalArcTo=e;e.__class="com.mxgraph.io.vsdx.geometry.EllipticalArcTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,c,e,f){a=b.call(this,a,h,c)||this;a.a=e;a.b=f;return a}__extends(a,b);a.prototype.handle=function(a,b){return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.InfiniteLine=e;e.__class="com.mxgraph.io.vsdx.geometry.InfiniteLine"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,c){return b.call(this,a,h,c)||this}__extends(a,b);a.prototype.handle=function(a,b){var d=a.x,h=a.y,e=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());d=Math.round(100*d/f*100)/100;h=Math.round(100*(100-100*h/e))/100;a.x=d;a.y=h;b.setLastX(d);b.setLastY(h);return'<line x="'+
-(new String(d)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(c.mxgraph.io.vsdx.geometry.Row);f.LineTo=e;e.__class="com.mxgraph.io.vsdx.geometry.LineTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,c){return b.call(this,a,h,c)||this}__extends(a,b);a.prototype.handle=function(a,b){var d=a.x,h=a.y,e=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());d=Math.round(100*d/f*100)/100;h=Math.round(100*(100-100*h/e))/100;a.x=d;a.y=h;b.setLastX(d);b.setLastY(h);b.setLastMoveX(d);
-b.setLastMoveY(h);return'<move x="'+(new String(d)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(c.mxgraph.io.vsdx.geometry.Row);f.MoveTo=e;e.__class="com.mxgraph.io.vsdx.geometry.MoveTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,c,e,f,k,m,n){a=b.call(this,a,h,c)||this;a.a=e;a.b=f;a.c=k;a.d=m;a.formulaE=n;return a}__extends(a,b);a.prototype.handle=function(b,h){if(null!=this.x&&null!=this.y&&null!=this.formulaE){var d=h.getHeight(),e=h.getWidth(),f=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=this.formulaE.split("NURBS(").join(""),m=m.split(")").join(""),
-m=new a.Nurbs(this,m,e,d);if(2<=m.getSize()){var n=m.getX(0),A=m.getY(0),B=m.getX(1),G=m.getY(1),f=Math.round(100*f/e*100)/100,k=Math.round(100*(100-100*k/d))/100,n=Math.round(100*n)/100,A=Math.round(100*A)/100,B=Math.round(100*B)/100,G=Math.round(100*G)/100;h.setLastX(f);h.setLastY(k);if(3===m.getDegree()&&m.isOrderedByThree(this.getA())){d=[];e=[];n=[];B=m.getSize();for(A=0;A<B-1;A+=3)0<d.push(new mxPoint(m.getX(A),m.getY(A))),0<e.push(new mxPoint(m.getX(A+1),m.getY(A+1))),A<B-2?0<n.push(new mxPoint(m.getX(A+
-2),m.getY(A+2))):0<n.push(new mxPoint(f,k));f="";for(A=0;A<d.length;A++)f+='<curve x1="'+d[A].x+'" y1="'+d[A].y+'" x2="'+e[A].x+'" y2="'+e[A].y+'" x3="'+n[A].x+'" y3="'+n[A].y+'"/>\n';return f}return'<curve x1="'+(new String(n)).toString()+'" y1="'+(new String(A)).toString()+'" x2="'+(new String(B)).toString()+'" y2="'+(new String(G)).toString()+'" x3="'+(new String(f)).toString()+'" y3="'+(new String(k)).toString()+'"/>'}}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.NURBSTo=e;e.__class=
-"com.mxgraph.io.vsdx.geometry.NURBSTo";(function(b){var a=function(){function a(a,b,d,c){this.__parent=a;this.nurbsValues=[];a=b.split(/\s*,\s*/).slice(0);for(b=0;b<a.length;b++)3<b&&0===b%4?0<this.nurbsValues.push(100*parseFloat(a[b])):3<b&&1===b%4?0<this.nurbsValues.push(100-100*parseFloat(a[b])):0<this.nurbsValues.push(parseFloat(a[b]))}a.prototype.isOrderedByThree=function(a){for(var b=0;b+2<this.getSize();b+=3){var d=Math.round(100*this.getKnot(b))/100,h=Math.round(100*this.getKnot(b+1))/100,
-c=Math.round(100*this.getKnot(b+2))/100;if(d!==h||d!==c||h!==c)return!1}b=Math.round(10*this.getKnot(this.getSize()-2))/10;d=Math.round(10*this.getKnot(this.getSize()-1))/10;a=Math.round(10*a)/10;return b!==d||b!==a||d!==a?!1:!0};a.prototype.getSize=function(){return(this.nurbsValues.length/4|0)-1};a.prototype.getKnotLast=function(){return this.nurbsValues[0]};a.prototype.getDegree=function(){return this.nurbsValues[1]};a.prototype.getXType=function(){return this.nurbsValues[2]};a.prototype.getYType=
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c,e,f){a=b.call(this,a,g,c)||this;a.a=e;a.b=f;return a}__extends(a,b);a.prototype.handle=function(a,b){return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.InfiniteLine=e;e.__class="com.mxgraph.io.vsdx.geometry.InfiniteLine"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c){return b.call(this,a,g,c)||this}__extends(a,b);a.prototype.handle=function(a,b){var d=a.x,g=a.y,e=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),g=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());d=Math.round(100*d/f*100)/100;g=Math.round(100*(100-100*g/e))/100;a.x=d;a.y=g;b.setLastX(d);b.setLastY(g);return'<line x="'+
+(new String(d)).toString()+'" y="'+(new String(g)).toString()+'"/>'};return a}(c.mxgraph.io.vsdx.geometry.Row);f.LineTo=e;e.__class="com.mxgraph.io.vsdx.geometry.LineTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c){return b.call(this,a,g,c)||this}__extends(a,b);a.prototype.handle=function(a,b){var d=a.x,g=a.y,e=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),g=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());d=Math.round(100*d/f*100)/100;g=Math.round(100*(100-100*g/e))/100;a.x=d;a.y=g;b.setLastX(d);b.setLastY(g);b.setLastMoveX(d);
+b.setLastMoveY(g);return'<move x="'+(new String(d)).toString()+'" y="'+(new String(g)).toString()+'"/>'};return a}(c.mxgraph.io.vsdx.geometry.Row);f.MoveTo=e;e.__class="com.mxgraph.io.vsdx.geometry.MoveTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c,e,f,k,m,n){a=b.call(this,a,g,c)||this;a.a=e;a.b=f;a.c=k;a.d=m;a.formulaE=n;return a}__extends(a,b);a.prototype.handle=function(b,g){if(null!=this.x&&null!=this.y&&null!=this.formulaE){var d=g.getHeight(),e=g.getWidth(),f=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),m=this.formulaE.split("NURBS(").join(""),m=m.split(")").join(""),
+m=new a.Nurbs(this,m,e,d);if(2<=m.getSize()){var n=m.getX(0),B=m.getY(0),C=m.getX(1),G=m.getY(1),f=Math.round(100*f/e*100)/100,k=Math.round(100*(100-100*k/d))/100,n=Math.round(100*n)/100,B=Math.round(100*B)/100,C=Math.round(100*C)/100,G=Math.round(100*G)/100;g.setLastX(f);g.setLastY(k);if(3===m.getDegree()&&m.isOrderedByThree(this.getA())){d=[];e=[];n=[];C=m.getSize();for(B=0;B<C-1;B+=3)0<d.push(new mxPoint(m.getX(B),m.getY(B))),0<e.push(new mxPoint(m.getX(B+1),m.getY(B+1))),B<C-2?0<n.push(new mxPoint(m.getX(B+
+2),m.getY(B+2))):0<n.push(new mxPoint(f,k));f="";for(B=0;B<d.length;B++)f+='<curve x1="'+d[B].x+'" y1="'+d[B].y+'" x2="'+e[B].x+'" y2="'+e[B].y+'" x3="'+n[B].x+'" y3="'+n[B].y+'"/>\n';return f}return'<curve x1="'+(new String(n)).toString()+'" y1="'+(new String(B)).toString()+'" x2="'+(new String(C)).toString()+'" y2="'+(new String(G)).toString()+'" x3="'+(new String(f)).toString()+'" y3="'+(new String(k)).toString()+'"/>'}}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.NURBSTo=e;e.__class=
+"com.mxgraph.io.vsdx.geometry.NURBSTo";(function(b){var a=function(){function a(a,b,d,c){this.__parent=a;this.nurbsValues=[];a=b.split(/\s*,\s*/).slice(0);for(b=0;b<a.length;b++)3<b&&0===b%4?0<this.nurbsValues.push(100*parseFloat(a[b])):3<b&&1===b%4?0<this.nurbsValues.push(100-100*parseFloat(a[b])):0<this.nurbsValues.push(parseFloat(a[b]))}a.prototype.isOrderedByThree=function(a){for(var b=0;b+2<this.getSize();b+=3){var d=Math.round(100*this.getKnot(b))/100,g=Math.round(100*this.getKnot(b+1))/100,
+c=Math.round(100*this.getKnot(b+2))/100;if(d!==g||d!==c||g!==c)return!1}b=Math.round(10*this.getKnot(this.getSize()-2))/10;d=Math.round(10*this.getKnot(this.getSize()-1))/10;a=Math.round(10*a)/10;return b!==d||b!==a||d!==a?!1:!0};a.prototype.getSize=function(){return(this.nurbsValues.length/4|0)-1};a.prototype.getKnotLast=function(){return this.nurbsValues[0]};a.prototype.getDegree=function(){return this.nurbsValues[1]};a.prototype.getXType=function(){return this.nurbsValues[2]};a.prototype.getYType=
function(){return this.nurbsValues[3]};a.prototype.getX=function(a){return this.nurbsValues[4*(a+1)]};a.prototype.getY=function(a){return this.nurbsValues[4*(a+1)+1]};a.prototype.getKnot=function(a){return this.nurbsValues[4*(a+1)+2]};a.prototype.getWeight=function(a){return this.nurbsValues[4*(a+1)+3]};return a}();b.Nurbs=a;a.__class="com.mxgraph.io.vsdx.geometry.NURBSTo.Nurbs"})(e=f.NURBSTo||(f.NURBSTo={}))})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph=
{}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f){a=b.call(this,a,c,e)||this;a.formulaA=f;return a}__extends(a,b);a.prototype.handle=function(a,b){var d="";if(null!=this.x&&null!=this.y&&null!=this.formulaA){var h=b.getHeight(),e=b.getWidth(),f=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=Math.round(100*f/e*100)/100,k=Math.round(100*(100-100*k/h))/100,m=this.formulaA.replace(RegExp("\\s",
-"g"),"").toLowerCase().replace(RegExp("polyline\\(","g"),"").replace(RegExp("\\)","g"),""),n;n=m&&m.equals?m.equals("inh"):"inh"===m;if(n)throw Object.defineProperty(Error(),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});m=m.split(",").slice(0).slice(0);n=parseFloat(m.splice(0,1));parseFloat(m.splice(0,1));for(var B,G;0<m.length;)B=parseFloat(m.splice(0,1))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
-G=parseFloat(m.splice(0,1))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),1===n&&(B=100*B/e),1===n&&(G=100*G/h),G=100-G,B=Math.round(100*B)/100,G=Math.round(100*G)/100,b.setLastX(B),b.setLastY(G),d+='<line x="'+(new String(B)).toString()+'" y="'+(new String(G)).toString()+'"/>';d+='<line x="'+(new String(f)).toString()+'" y="'+(new String(k)).toString()+'"/>';b.getLastMoveX()===f&&b.getLastMoveY()===k&&(d+="<close/>")}return d};return a}(c.mxgraph.io.vsdx.geometry.Row);f.PolylineTo=e;e.__class=
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,c,e){a=b.call(this,a,g,c)||this;a.formulaA=e;return a}__extends(a,b);a.prototype.handle=function(a,b){var d="";if(null!=this.x&&null!=this.y&&null!=this.formulaA){var g=b.getHeight(),e=b.getWidth(),f=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=Math.round(100*f/e*100)/100,k=Math.round(100*(100-100*k/g))/100,m=this.formulaA.replace(RegExp("\\s",
+"g"),"").toLowerCase().replace(RegExp("polyline\\(","g"),"").replace(RegExp("\\)","g"),""),n;n=m&&m.equals?m.equals("inh"):"inh"===m;if(n)throw Object.defineProperty(Error(),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});m=m.split(",").slice(0).slice(0);n=parseFloat(m.splice(0,1));parseFloat(m.splice(0,1));for(var C,G;0<m.length;)C=parseFloat(m.splice(0,1))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
+G=parseFloat(m.splice(0,1))*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),1===n&&(C=100*C/e),1===n&&(G=100*G/g),G=100-G,C=Math.round(100*C)/100,G=Math.round(100*G)/100,b.setLastX(C),b.setLastY(G),d+='<line x="'+(new String(C)).toString()+'" y="'+(new String(G)).toString()+'"/>';d+='<line x="'+(new String(f)).toString()+'" y="'+(new String(k)).toString()+'"/>';b.getLastMoveX()===f&&b.getLastMoveY()===k&&(d+="<close/>")}return d};return a}(c.mxgraph.io.vsdx.geometry.Row);f.PolylineTo=e;e.__class=
"com.mxgraph.io.vsdx.geometry.PolylineTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k,m,n){a=b.call(this,a,c,e)||this;a.a=f;a.b=k;a.c=m;a.d=n;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=100*this.x,c=100-100*this.y,h=100*this.a,e=100-100*this.b,f=100*this.c,k=100-100*this.d,d=Math.round(100*d)/100,c=Math.round(100*c)/100,h=Math.round(100*h)/100,e=Math.round(100*e)/100,f=Math.round(100*
-f)/100,k=Math.round(100*k)/100;b.setLastX(d);b.setLastY(c);return'<curve x1="'+(new String(h)).toString()+'" y1="'+(new String(e)).toString()+'" x2="'+(new String(f)).toString()+'" y2="'+(new String(k)).toString()+'" x3="'+(new String(d)).toString()+'" y3="'+(new String(c)).toString()+'"/>'}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.RelCubBezTo=e;e.__class="com.mxgraph.io.vsdx.geometry.RelCubBezTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph=
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k,m,n){a=b.call(this,a,c,e)||this;a.a=f;a.b=k;a.c=m;a.d=n;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=100*this.x,c=100-100*this.y,g=100*this.a,e=100-100*this.b,f=100*this.c,k=100-100*this.d,d=Math.round(100*d)/100,c=Math.round(100*c)/100,g=Math.round(100*g)/100,e=Math.round(100*e)/100,f=Math.round(100*
+f)/100,k=Math.round(100*k)/100;b.setLastX(d);b.setLastY(c);return'<curve x1="'+(new String(g)).toString()+'" y1="'+(new String(e)).toString()+'" x2="'+(new String(f)).toString()+'" y2="'+(new String(k)).toString()+'" x3="'+(new String(d)).toString()+'" y3="'+(new String(c)).toString()+'"/>'}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.RelCubBezTo=e;e.__class="com.mxgraph.io.vsdx.geometry.RelCubBezTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph=
{}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e){return b.call(this,a,c,e)||this}__extends(a,b);a.prototype.handle=function(a,b){var d=a.x,c=a.y;null!=this.x&&null!=this.y&&(d=100*this.x,c=100-100*this.y);d=Math.round(100*d)/100;c=Math.round(100*c)/100;a.x=d;a.y=c;b.setLastX(d);b.setLastY(c);return'<line x="'+(new String(d)).toString()+'" y="'+(new String(c)).toString()+'"/>'};return a}(c.mxgraph.io.vsdx.geometry.Row);f.RelLineTo=e;e.__class="com.mxgraph.io.vsdx.geometry.RelLineTo"})(k.geometry||
(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e){return b.call(this,a,c,e)||this}__extends(a,b);a.prototype.handle=function(a,b){var d=a.x,c=a.y;null!=this.x&&null!=this.y&&(d=100*this.x,c=100-100*this.y);d=Math.round(100*d)/100;c=Math.round(100*c)/100;a.x=d;a.y=c;b.setLastX(d);b.setLastY(c);b.setLastMoveX(d);b.setLastMoveY(c);return'<move x="'+(new String(d)).toString()+'" y="'+(new String(c)).toString()+'"/>'};return a}(c.mxgraph.io.vsdx.geometry.Row);
f.RelMoveTo=e;e.__class="com.mxgraph.io.vsdx.geometry.RelMoveTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k){a=b.call(this,a,c,e)||this;a.a=f;a.b=k;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b){var d=100*this.x,c=100-100*this.y,h=100*this.a,e=100-100*this.b,d=Math.round(100*d)/100,c=Math.round(100*c)/100,h=Math.round(100*h)/100,e=Math.round(100*e)/100;b.setLastX(d);b.setLastY(c);return'<quad x1="'+(new String(h)).toString()+'" y1="'+
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k){a=b.call(this,a,c,e)||this;a.a=f;a.b=k;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b){var d=100*this.x,c=100-100*this.y,g=100*this.a,e=100-100*this.b,d=Math.round(100*d)/100,c=Math.round(100*c)/100,g=Math.round(100*g)/100,e=Math.round(100*e)/100;b.setLastX(d);b.setLastY(c);return'<quad x1="'+(new String(g)).toString()+'" y1="'+
(new String(e)).toString()+'" x2="'+(new String(d)).toString()+'" y2="'+(new String(c)).toString()+'"/>'}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.RelQuadBezTo=e;e.__class="com.mxgraph.io.vsdx.geometry.RelQuadBezTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f){a=b.call(this,a,c,e)||this;a.a=f;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),d=Math.round(100*d)/100,h=Math.round(100*(100-h))/100;b.setLastX(d);b.setLastY(h)}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f){a=b.call(this,a,c,e)||this;a.a=f;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),g=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),d=Math.round(100*d)/100,g=Math.round(100*(100-g))/100;b.setLastX(d);b.setLastY(g)}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);
f.SplineKnot=e;e.__class="com.mxgraph.io.vsdx.geometry.SplineKnot"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k,m,n){a=b.call(this,a,c,e)||this;a.a=f;a.b=k;a.c=m;a.d=n;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){b.getHeight();b.getWidth();var d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();b.setLastKnot(this.c);d=Math.round(100*d)/
-100;h=Math.round(100*(100-h))/100;b.getLastX();b.getLastY();b.setLastX(d);b.setLastY(h);return"<curve "}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.SplineStart=e;e.__class="com.mxgraph.io.vsdx.geometry.SplineStart"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b,a){this.cellElements={};this.sections={};this.styleParents={};this.style=this.pm=this.Id=this.shape=null;this.shape=b;this.pm=a.getPropertiesManager();var d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID);try{this.Id=null!=d&&0!==d.length?parseFloat(d):-1}catch(h){this.Id=-1}this.cacheCells(a);this.stylesheetRefs(a)}e.__static_initialize=function(){e.__static_initialized||(e.__static_initialized=!0,e.__static_initializer_0(),
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k,m,n){a=b.call(this,a,c,e)||this;a.a=f;a.b=k;a.c=m;a.d=n;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){b.getHeight();b.getWidth();var d=this.x*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),g=this.y*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();b.setLastKnot(this.c);d=Math.round(100*d)/
+100;g=Math.round(100*(100-g))/100;b.getLastX();b.getLastY();b.setLastX(d);b.setLastY(g);return"<curve "}return""};return a}(c.mxgraph.io.vsdx.geometry.Row);f.SplineStart=e;e.__class="com.mxgraph.io.vsdx.geometry.SplineStart"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(n){(function(m){(function(k){var f=function(){function e(b,a){this.cellElements={};this.sections={};this.styleParents={};this.style=this.pm=this.Id=this.shape=null;this.shape=b;this.pm=a.getPropertiesManager();var d=b.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.ID);try{this.Id=null!=d&&0!==d.length?parseFloat(d):-1}catch(g){this.Id=-1}this.cacheCells(a);this.stylesheetRefs(a)}e.__static_initialize=function(){e.__static_initialized||(e.__static_initialized=!0,e.__static_initializer_0(),
e.__static_initializer_1())};e.styleTypes_$LI$=function(){e.__static_initialize();null==e.styleTypes&&(e.styleTypes={});return e.styleTypes};e.__static_initializer_0=function(){e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.FILL]=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.FILL_BKGND]=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.FILL_BKGND_TRANS]=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;
e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.FILL_FOREGND]=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.FILL_FOREGND_TRANS]=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.FILL_PATTERN]=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.SHDW_PATTERN]=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE]=
c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$().QuickStyleFillColor=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$().QuickStyleFillMatrix=c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW]=c.mxgraph.io.vsdx.mxVsdxConstants.LINE_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW]=c.mxgraph.io.vsdx.mxVsdxConstants.LINE_STYLE;e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.LINE_PATTERN]=
@@ -1061,15 +1064,15 @@ e.styleTypes_$LI$()[c.mxgraph.io.vsdx.mxVsdxConstants.LEFT_MARGIN]=c.mxgraph.io.
c.mxgraph.io.vsdx.mxVsdxConstants.TEXT_STYLE;e.styleTypes_$LI$().QuickStyleFontColor=c.mxgraph.io.vsdx.mxVsdxConstants.TEXT_STYLE;e.styleTypes_$LI$().QuickStyleFontMatrix=c.mxgraph.io.vsdx.mxVsdxConstants.TEXT_STYLE};e.prototype.getTheme=function(){return null};e.prototype.getQuickStyleVals=function(){return null};e.prototype.isVertex=function(){return!1};e.prototype.styleDebug=function(b){e.vsdxStyleDebug&&console.info(b)};e.prototype.stylesheetRefs=function(b){this.styleParents[c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE]=
b.getStylesheet(this.shape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE));this.styleParents[c.mxgraph.io.vsdx.mxVsdxConstants.LINE_STYLE]=b.getStylesheet(this.shape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.LINE_STYLE));this.styleParents[c.mxgraph.io.vsdx.mxVsdxConstants.TEXT_STYLE]=b.getStylesheet(this.shape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TEXT_STYLE));this.style=b.getStylesheet("0")};e.prototype.cacheCells=function(b){if(null!=this.shape){var a=this.shape.childNodes;
if(null!=a)for(a=a.item(0);null!=a;)null!=a&&1==a.nodeType&&this.parseShapeElem(a,b),a=a.nextSibling}};e.prototype.parseShapeElem=function(b,a){var d=b.nodeName;(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"Cell")?this.cellElements[b.getAttribute("N")]=b:function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Section")&&this.parseSection(b)};e.prototype.parseSection=function(b){var a=new c.mxgraph.io.vsdx.Section(b);this.sections[b.getAttribute("N")]=a};e.prototype.hasProperty=function(b,
-a){return this.cellElements.hasOwnProperty(a)};e.prototype.getValue=function(b,a){return null!=b?b.getAttribute("V")||"":a};e.prototype.getValueAsDouble=function(b,a){if(null!=b){var d=b.getAttribute("V");if(null!=d){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Themed"))return 0;try{var h=parseFloat(d);(function(a,b){return a&&a.equals?a.equals(b):a===b})(b.getAttribute("U"),"PT")&&(h*=c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());return Math.round(100*h)/100}catch(p){console.error(p.message,
+a){return this.cellElements.hasOwnProperty(a)};e.prototype.getValue=function(b,a){return null!=b?b.getAttribute("V")||"":a};e.prototype.getValueAsDouble=function(b,a){if(null!=b){var d=b.getAttribute("V");if(null!=d){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Themed"))return 0;try{var g=parseFloat(d);(function(a,b){return a&&a.equals?a.equals(b):a===b})(b.getAttribute("U"),"PT")&&(g*=c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());return Math.round(100*g)/100}catch(p){console.error(p.message,
p)}}}return a};e.prototype.getScreenNumericalValue$org_w3c_dom_Element$double=function(b,a){if(null!=b){var d=b.getAttribute("V");if(null!=d)try{var c=parseFloat(d);return this.getScreenNumericalValue$double(c)}catch(p){console.error(p.message,p)}}return a};e.prototype.getScreenNumericalValue=function(b,a){if((null==b||1!=b.nodeType)&&null!==b||"number"!==typeof a&&null!==a){if("number"!==typeof b&&null!==b||void 0!==a)throw Error("invalid overload");return this.getScreenNumericalValue$double(b)}return this.getScreenNumericalValue$org_w3c_dom_Element$double(b,
a)};e.prototype.getScreenNumericalValue$double=function(b){return b*c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$()};e.prototype.getAttribute=function(b,a,d){var c=this.cellElements;b=c[b]?c[b]:null;null!=b&&(d=b.getAttribute(a)||"");return d};e.prototype.getChildValues=function(b,a){for(var d={},c=b.firstChild;null!=c;){if(null!=c&&1==c.nodeType){var e=c,f,k;((f=e.nodeName)&&f.equals?f.equals("Cell"):"Cell"===f)?(f=e.getAttribute("N")||"",k=e.getAttribute("V")||""):(f=e.nodeName,k=e.textContent);
-if(null!=a){var m=a[f]?a[f]:null;null!=m&&(k=e.getAttribute(m)||"")}d[f]=k}c=c.nextSibling}return d};e.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String=function(b,a,d){var h=function(a,b){return a[b]?a[b]:null}(this.sections,d),f=null,k=!1;null!=h&&(f=h.getIndexedCell(a,b));if(null!=f){var h=f.getAttribute("F"),m=f.getAttribute("V");if(null!=h&&null!=m)if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"Inh")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(m,
-"Themed"))k=!0;else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"THEMEVAL()")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(m,"Themed")&&null!=this.style){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.COLOR,b))return f;h=this.style.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,d);if(null!=h)return h}}if(null==f||k)if(k=function(a,b){return a[b]?a[b]:null}(e.styleTypes_$LI$(),d),k=function(a,b){return a[b]?a[b]:
+if(null!=a){var m=a[f]?a[f]:null;null!=m&&(k=e.getAttribute(m)||"")}d[f]=k}c=c.nextSibling}return d};e.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String=function(b,a,d){var g=function(a,b){return a[b]?a[b]:null}(this.sections,d),f=null,k=!1;null!=g&&(f=g.getIndexedCell(a,b));if(null!=f){var g=f.getAttribute("F"),m=f.getAttribute("V");if(null!=g&&null!=m)if(function(a,b){return a&&a.equals?a.equals(b):a===b}(g,"Inh")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(m,
+"Themed"))k=!0;else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(g,"THEMEVAL()")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(m,"Themed")&&null!=this.style){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.COLOR,b))return f;g=this.style.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,d);if(null!=g)return g}}if(null==f||k)if(k=function(a,b){return a[b]?a[b]:null}(e.styleTypes_$LI$(),d),k=function(a,b){return a[b]?a[b]:
null}(this.styleParents,k),null!=k&&(b=k.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,d),null!=b))return b;return f};e.prototype.getCellElement=function(b,a,d){if("string"!==typeof b&&null!==b||"string"!==typeof a&&null!==a||"string"!==typeof d&&null!==d){if("string"!==typeof b&&null!==b||void 0!==a||void 0!==d)throw Error("invalid overload");return this.getCellElement$java_lang_String(b)}return this.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,d)};
-e.prototype.getCellElement$java_lang_String=function(b){var a=function(a,b){return a[b]?a[b]:null}(this.cellElements,b),d=!1;if(null!=a){var h=a.getAttribute("F"),f=a.getAttribute("V");if(null!=h&&null!=f)if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"Inh")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"Themed"))d=!0;else if(-1!=h.indexOf("THEMEVAL()")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"Themed")&&null!=this.style){if(function(a,b){return a&&a.equals?a.equals(b):
+e.prototype.getCellElement$java_lang_String=function(b){var a=function(a,b){return a[b]?a[b]:null}(this.cellElements,b),d=!1;if(null!=a){var g=a.getAttribute("F"),f=a.getAttribute("V");if(null!=g&&null!=f)if(function(a,b){return a&&a.equals?a.equals(b):a===b}(g,"Inh")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"Themed"))d=!0;else if(-1!=g.indexOf("THEMEVAL()")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"Themed")&&null!=this.style){if(function(a,b){return a&&a.equals?a.equals(b):
a===b}("FillForegnd",b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.LINE_COLOR,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.LINE_PATTERN,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW_SIZE,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW_SIZE,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW,
-b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.LINE_WEIGHT,b))return a;h=this.style.getCellElement$java_lang_String(b);if(null!=h)return h}}if(null==a||d)if(d=function(a,b){return a[b]?a[b]:null}(e.styleTypes_$LI$(),b),d=function(a,b){return a[b]?a[b]:null}(this.styleParents,d),null!=d&&(b=d.getCellElement$java_lang_String(b),null!=b))return b;return a};e.prototype.getStrokeColor=
+b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.LINE_WEIGHT,b))return a;g=this.style.getCellElement$java_lang_String(b);if(null!=g)return g}}if(null==a||d)if(d=function(a,b){return a[b]?a[b]:null}(e.styleTypes_$LI$(),b),d=function(a,b){return a[b]?a[b]:null}(this.styleParents,d),null!=d&&(b=d.getCellElement$java_lang_String(b),null!=b))return b;return a};e.prototype.getStrokeColor=
function(){var b="";(function(a,b){return a&&a.equals?a.equals(b):a===b})(this.getValue(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.LINE_PATTERN),"1"),"0")?b="none":(b=this.getColor(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.LINE_COLOR)),function(a,b){return a&&a.equals?a.equals(b):a===b}("Themed",b)&&(b=this.getTheme(),b=null!=b?(this.isVertex()?b.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(this.getQuickStyleVals()):b.getConnLineColor(this.getQuickStyleVals())).toHexStr():
""));return b};e.prototype.getFillColor=function(){if(function(a,b){return a&&a.equals?a.equals(b):a===b}("1",this.getValue(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.FILL_GRADIENT_ENABLED),"0"))){var b=function(a,b){return a[b]?a[b]:null}(this.sections,"FillGradient");if(null!=b&&(b=this.getColor(b.getIndexedCell("0","GradientStopColor")),null!=b&&0!==b.length))return b}b=this.getColor(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.FILL_FOREGND));
(function(a,b){return a&&a.equals?a.equals(b):a===b})("Themed",b)&&(b=this.getTheme(),null!=b?(b=b.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(this.getQuickStyleVals()),b=b.toHexStr()):b="#FFFFFF");var a=this.getValue(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.FILL_PATTERN),"0");return null!=a&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0")?"none":b};e.prototype.getColor=function(b){b=this.getValue(b,"");(function(a,b){return a&&a.equals?a.equals(b):
@@ -1093,30 +1096,30 @@ b=[];0<b.push(e.DASH);0<b.push(e.SHORT_SPACE);0<b.push(e.SHORT_DASH);0<b.push(e.
0<b.push(e.DOT);0<b.push(e.LONG_SPACE);0<e.lineDashPatterns_$LI$().push(b);b=[];0<b.push(e.LONG_DASH);0<b.push(e.LONG_SPACE);0<b.push(e.DOT);0<b.push(e.LONG_SPACE);0<b.push(e.DOT);0<b.push(e.LONG_SPACE);0<e.lineDashPatterns_$LI$().push(b);b=[];0<b.push(e.LONG_DASH);0<b.push(e.LONG_SPACE);0<b.push(e.LONG_DASH);0<b.push(e.LONG_SPACE);0<b.push(e.DOT);0<b.push(e.LONG_SPACE);0<e.lineDashPatterns_$LI$().push(b);b=[];0<b.push(e.XLONG_DASH);0<b.push(e.LONG_SPACE);0<b.push(e.DASH);0<b.push(e.LONG_SPACE);0<
e.lineDashPatterns_$LI$().push(b);b=[];0<b.push(e.XLONG_DASH);0<b.push(e.LONG_SPACE);0<b.push(e.DASH);0<b.push(e.LONG_SPACE);0<b.push(e.DASH);0<b.push(e.LONG_SPACE);0<e.lineDashPatterns_$LI$().push(b);b=[];0<b.push(e.XSHORT_DASH);0<b.push(e.SHORT_SPACE);0<e.lineDashPatterns_$LI$().push(b)};e.getLineDashPattern=function(b){return 0<=b&&23>=b?e.lineDashPatterns_$LI$()[b]:e.lineDashPatterns_$LI$()[0]};return e}();f.__static_initialized=!1;f.vsdxStyleDebug=!1;f.SPACE=4;f.SHORT_SPACE=2;f.LONG_SPACE=6;
f.DOT=1;f.DASH=8;f.LONG_DASH=12;f.SHORT_DASH=4;f.XLONG_DASH=20;f.XSHORT_DASH=2;k.Style=f;f.__class="com.mxgraph.io.vsdx.Style"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,e){var d=b.call(this)||this;d.__com_mxgraph_io_vsdx_theme_HslClr_hue=a/360;d.__com_mxgraph_io_vsdx_theme_HslClr_sat=h/100;d.__com_mxgraph_io_vsdx_theme_HslClr_lum=e/100;d.color=(new c.mxgraph.io.vsdx.theme.HSLColor(a,h,e)).toRgb();return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.HslClr=e;e.__class="com.mxgraph.io.vsdx.theme.HslClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,e){var d=b.call(this)||this;d.__com_mxgraph_io_vsdx_theme_HslClr_hue=a/360;d.__com_mxgraph_io_vsdx_theme_HslClr_sat=g/100;d.__com_mxgraph_io_vsdx_theme_HslClr_lum=e/100;d.color=(new c.mxgraph.io.vsdx.theme.HSLColor(a,g,e)).toRgb();return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.HslClr=e;e.__class="com.mxgraph.io.vsdx.theme.HslClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||
(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a){var d=b.call(this)||this;d.val=a;d.color=new c.mxgraph.io.vsdx.theme.Color(255,255,255);return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.PrstClr=e;e.__class="com.mxgraph.io.vsdx.theme.PrstClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a){var d=b.call(this)||this;d.isDynamic=!0;d.val=a;return d}__extends(a,b);a.prototype.calcColor=function(a,c){var d;d=this.val;d="phClr".equals?"phClr".equals(d):"phClr"===d;d?this.color=c.getStyleColor(a):(this.color=c.getSchemeColor(this.val),this.isDynamic=!1);b.prototype.calcColor.call(this,a,c)};return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.SchemeClr=e;e.__class="com.mxgraph.io.vsdx.theme.SchemeClr"})(k.theme||
(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h,e){var d=b.call(this)||this;d.r=0;d.g=0;d.b=0;d.r=a;d.g=h;d.b=e;d.color=new c.mxgraph.io.vsdx.theme.Color(a,h,e);return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.ScrgbClr=e;e.__class="com.mxgraph.io.vsdx.theme.ScrgbClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g,e){var d=b.call(this)||this;d.r=0;d.g=0;d.b=0;d.r=a;d.g=g;d.b=e;d.color=new c.mxgraph.io.vsdx.theme.Color(a,g,e);return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.ScrgbClr=e;e.__class="com.mxgraph.io.vsdx.theme.ScrgbClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a){var d=b.call(this)||this;d.hexVal=null;d.hexVal=a;d.color=c.mxgraph.io.vsdx.theme.Color.decodeColorHex(a);return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.SrgbClr=e;e.__class="com.mxgraph.io.vsdx.theme.SrgbClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,h){var d=b.call(this)||this;d.lastClr=null;d.val=a;var e=d.lastClr=h;if(null==e)switch(a){case "windowText":e="000000";break;case "window":e="FFFFFF";break;default:e="FFFFFF"}d.color=c.mxgraph.io.vsdx.theme.Color.decodeColorHex(e);return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.SysClr=e;e.__class="com.mxgraph.io.vsdx.theme.SysClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,g){var d=b.call(this)||this;d.lastClr=null;d.val=a;var e=d.lastClr=g;if(null==e)switch(a){case "windowText":e="000000";break;case "window":e="FFFFFF";break;default:e="FFFFFF"}d.color=c.mxgraph.io.vsdx.theme.Color.decodeColorHex(e);return d}__extends(a,b);return a}(c.mxgraph.io.vsdx.theme.OoxmlColor);f.SysClr=e;e.__class="com.mxgraph.io.vsdx.theme.SysClr"})(k.theme||(k.theme={}))})(m.vsdx||(m.vsdx={}))})(n.io||
(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k,m,n){return b.call(this,a,c,e,f,k,m,n)||this}__extends(a,b);a.prototype.handle=function(a,h){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=h.getHeight()/c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),e=h.getWidth()/c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();this.x*=e;this.y*=d;this.a*=e;this.b*=d}return b.prototype.handle.call(this,
-a,h)};return a}(c.mxgraph.io.vsdx.geometry.EllipticalArcTo);f.RelEllipticalArcTo=e;e.__class="com.mxgraph.io.vsdx.geometry.RelEllipticalArcTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
+(function(c){(function(n){(function(m){(function(k){(function(f){var e=function(b){function a(a,c,e,f,k,m,n){return b.call(this,a,c,e,f,k,m,n)||this}__extends(a,b);a.prototype.handle=function(a,g){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var d=g.getHeight()/c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),e=g.getWidth()/c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();this.x*=e;this.y*=d;this.a*=e;this.b*=d}return b.prototype.handle.call(this,
+a,g)};return a}(c.mxgraph.io.vsdx.geometry.EllipticalArcTo);f.RelEllipticalArcTo=e;e.__class="com.mxgraph.io.vsdx.geometry.RelEllipticalArcTo"})(k.geometry||(k.geometry={}))})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){(function(k){var f=function(e){function b(a,b){var d=this;d.text=null;d.fields=null;d.geom=null;d.imageData=null;d.theme=null;d.quickStyleVals=null;d=e.call(this,a,b)||this;d.paragraphs=null;d.styleMap={};d.width=0;d.height=0;d.rotation=0;d.lastX=0;d.lastY=0;d.lastMoveX=0;d.lastMoveY=0;d.lastKnot=-1;d.geomList=null;d.geomListProcessed=!1;d.themeVariant=0;d.cp="0";d.pp="0";d.tp="0";d.fld="0";d.width=d.getScreenNumericalValue$org_w3c_dom_Element$double(function(a,
b){return a[b]?a[b]:null}(d.cellElements,c.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0);d.height=d.getScreenNumericalValue$org_w3c_dom_Element$double(function(a,b){return a[b]?a[b]:null}(d.cellElements,c.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),0);return d}__extends(b,e);b.UNICODE_LINE_SEP_$LI$=function(){null==b.UNICODE_LINE_SEP&&(b.ERROR_IMAGE="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCjxzdmcNCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyINCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiDQogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIg0KICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiDQogICB3aWR0aD0iMjUwIg0KICAgaGVpZ2h0PSIyNTAiDQogICBpZD0ic3ZnMzMxOSINCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiDQogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ2Ig0KICAgdmVyc2lvbj0iMS4wIg0KICAgc29kaXBvZGk6ZG9jbmFtZT0ibm9waG90b19pLnN2ZyINCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMzMzIxIj4NCiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUNCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIg0KICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiA1MjYuMTgxMDkgOiAxIg0KICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCINCiAgICAgICBpbmtzY2FwZTp2cF96PSI3NDQuMDk0NDggOiA1MjYuMTgxMDkgOiAxIg0KICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIzNzIuMDQ3MjQgOiAzNTAuNzg3MzkgOiAxIg0KICAgICAgIGlkPSJwZXJzcGVjdGl2ZTMzMjciIC8+DQogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlDQogICAgICAgaWQ9InBlcnNwZWN0aXZlMzM0MiINCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMzcyLjA0NzI0IDogMzUwLjc4NzM5IDogMSINCiAgICAgICBpbmtzY2FwZTp2cF96PSI3NDQuMDk0NDggOiA1MjYuMTgxMDkgOiAxIg0KICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCINCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogNTI2LjE4MTA5IDogMSINCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPg0KICA8L2RlZnM+DQogIDxzb2RpcG9kaTpuYW1lZHZpZXcNCiAgICAgaWQ9ImJhc2UiDQogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiINCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiDQogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCINCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCINCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiINCiAgICAgaW5rc2NhcGU6em9vbT0iMi4yNDI5NDI3Ig0KICAgICBpbmtzY2FwZTpjeD0iMTIxLjk3NjQ4Ig0KICAgICBpbmtzY2FwZTpjeT0iMTIyLjQ0MTk4Ig0KICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiDQogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSINCiAgICAgc2hvd2dyaWQ9ImZhbHNlIg0KICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE2NjQiDQogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijg0NCINCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii0zIg0KICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTE4IiAvPg0KICA8bWV0YWRhdGENCiAgICAgaWQ9Im1ldGFkYXRhMzMyNCI+DQogICAgPHJkZjpSREY+DQogICAgICA8Y2M6V29yaw0KICAgICAgICAgcmRmOmFib3V0PSIiPg0KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4NCiAgICAgICAgPGRjOnR5cGUNCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4NCiAgICAgICAgPGRjOnRpdGxlPkZvdG9ncmFmaWVydmVyYm90PC9kYzp0aXRsZT4NCiAgICAgICAgPGRjOmRhdGU+MjAwOC0wNi0yOTwvZGM6ZGF0ZT4NCiAgICAgICAgPGRjOmNyZWF0b3I+DQogICAgICAgICAgPGNjOkFnZW50Pg0KICAgICAgICAgICAgPGRjOnRpdGxlPlRvcnJzdGVuIFNrb21wPC9kYzp0aXRsZT4NCiAgICAgICAgICA8L2NjOkFnZW50Pg0KICAgICAgICA8L2RjOmNyZWF0b3I+DQogICAgICAgIDxkYzpyaWdodHM+DQogICAgICAgICAgPGNjOkFnZW50Pg0KICAgICAgICAgICAgPGRjOnRpdGxlPlRvcnN0ZW4gU2tvbXA8L2RjOnRpdGxlPg0KICAgICAgICAgIDwvY2M6QWdlbnQ+DQogICAgICAgIDwvZGM6cmlnaHRzPg0KICAgICAgICA8ZGM6cHVibGlzaGVyPg0KICAgICAgICAgIDxjYzpBZ2VudD4NCiAgICAgICAgICAgIDxkYzp0aXRsZT5Ub3JzdGVuIFNrb21wPC9kYzp0aXRsZT4NCiAgICAgICAgICA8L2NjOkFnZW50Pg0KICAgICAgICA8L2RjOnB1Ymxpc2hlcj4NCiAgICAgICAgPGRjOmxhbmd1YWdlPmRlX0RFPC9kYzpsYW5ndWFnZT4NCiAgICAgICAgPGRjOnN1YmplY3Q+DQogICAgICAgICAgPHJkZjpCYWc+DQogICAgICAgICAgICA8cmRmOmxpPlBpa3RvZ3JhbW07IEZvdG9ncmFmaWVydmVyYm90PC9yZGY6bGk+DQogICAgICAgICAgPC9yZGY6QmFnPg0KICAgICAgICA8L2RjOnN1YmplY3Q+DQogICAgICAgIDxkYzpkZXNjcmlwdGlvbj5Gb3RvZ3JhZmllcnZlcmJvdCBhbHMgUGlrdG9ncmFtbSA8L2RjOmRlc2NyaXB0aW9uPg0KICAgICAgICA8Y2M6bGljZW5zZQ0KICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL3B1YmxpY2RvbWFpbi8iIC8+DQogICAgICA8L2NjOldvcms+DQogICAgICA8Y2M6TGljZW5zZQ0KICAgICAgICAgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9wdWJsaWNkb21haW4vIj4NCiAgICAgICAgPGNjOnBlcm1pdHMNCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyNSZXByb2R1Y3Rpb24iIC8+DQogICAgICAgIDxjYzpwZXJtaXRzDQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjRGlzdHJpYnV0aW9uIiAvPg0KICAgICAgICA8Y2M6cGVybWl0cw0KICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI0Rlcml2YXRpdmVXb3JrcyIgLz4NCiAgICAgIDwvY2M6TGljZW5zZT4NCiAgICA8L3JkZjpSREY+DQogIDwvbWV0YWRhdGE+DQogIDxnDQogICAgIGlua3NjYXBlOmxhYmVsPSJFYmVuZSAxIg0KICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIg0KICAgICBpZD0ibGF5ZXIxIj4NCiAgICA8cGF0aA0KICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjEiDQogICAgICAgZD0iTSAxNjQuNTMxMjUgNjIuNjg3NSBDIDE2Mi43OTExNSA2Mi42ODc1MDEgMTYxLjM3NSA2NC4wNzI0MTYgMTYxLjM3NSA2NS44MTI1IEwgMTYxLjM3NSA2OC43NSBMIDM4LjM3NSA2OC43NSBDIDM1LjA5MjI5OCA2OC43NDk5OTkgMzIuNDY4NzUgNzEuMzczNTQ4IDMyLjQ2ODc1IDc0LjY1NjI1IEwgMzIuNDY4NzUgMTgxLjM3NSBDIDMyLjQ2ODc1IDE4NC42NTc3IDM1LjA5MjMwNyAxODcuMzEyNTEgMzguMzc1IDE4Ny4zMTI1IEwgMjExLjYyNSAxODcuMzEyNSBDIDIxNC45MDc2OSAxODcuMzEyNSAyMTcuNTMxMjcgMTg0LjY1NzcgMjE3LjUzMTI1IDE4MS4zNzUgTCAyMTcuNTMxMjUgNzQuNjU2MjUgQyAyMTcuNTMxMjUgNzEuMzczNTUxIDIxNC45MDc2OCA2OC43NSAyMTEuNjI1IDY4Ljc1IEwgMjAyLjA2MjUgNjguNzUgTCAyMDIuMDYyNSA2NS44MTI1IEMgMjAyLjA2MjUgNjQuMDcyNDEgMjAwLjY0NjM1IDYyLjY4NzUgMTk4LjkwNjI1IDYyLjY4NzUgTCAxNjQuNTMxMjUgNjIuNjg3NSB6IE0gNDYuODEyNSA3OCBMIDg4LjY1NjI1IDc4IEMgOTAuMzk2MzQyIDc4IDkxLjgxMjUgNzkuMzg0OTA3IDkxLjgxMjUgODEuMTI1IEwgOTEuODEyNSA5Ni4zMTI1IEMgOTEuODEyNSA5OC4wNTI1OTIgOTAuMzk2MzQzIDk5LjQzNzUgODguNjU2MjUgOTkuNDM3NSBMIDQ2LjgxMjUgOTkuNDM3NSBDIDQ1LjA3MjQwOCA5OS40Mzc1IDQzLjY4NzUgOTguMDUyNTkzIDQzLjY4NzUgOTYuMzEyNSBMIDQzLjY4NzUgODEuMTI1IEMgNDMuNjg3NSA3OS4zODQ5MDggNDUuMDcyNDA3IDc4IDQ2LjgxMjUgNzggeiBNIDE0NiA4OC4yMTg3NSBDIDE2Ny43MzQ3NSA4OC4yMTg3NTMgMTg1LjM3NSAxMDYuMTUwNzEgMTg1LjM3NSAxMjguMjUgQyAxODUuMzc0OTkgMTUwLjM0OTI4IDE2Ny43MzQ3NCAxNjguMjgxMjUgMTQ2IDE2OC4yODEyNSBDIDEyNC4yNjUyNyAxNjguMjgxMjYgMTA2LjYyNSAxNTAuMzQ5MjkgMTA2LjYyNSAxMjguMjUgQyAxMDYuNjI1IDEwNi4xNTA3MSAxMjQuMjY1MjYgODguMjE4NzUgMTQ2IDg4LjIxODc1IHogTSAxNDYgOTEuNzE4NzUgQyAxMjYuMTY1NTcgOTEuNzE4NzUgMTEwLjA2MjUgMTA4LjA4Mjg5IDExMC4wNjI1IDEyOC4yNSBDIDExMC4wNjI1IDE0OC40MTcxMSAxMjYuMTY1NTcgMTY0Ljc4MTI2IDE0NiAxNjQuNzgxMjUgQyAxNjUuODM0NDMgMTY0Ljc4MTI1IDE4MS45Mzc1IDE0OC40MTcxIDE4MS45Mzc1IDEyOC4yNSBDIDE4MS45Mzc1IDEwOC4wODI4OSAxNjUuODM0NDMgOTEuNzE4NzUgMTQ2IDkxLjcxODc1IHogTSAxNDYgOTYuNTkzNzUgQyAxNjMuMTc3NjggOTYuNTkzNzUyIDE3Ny4xMjUgMTEwLjc4NDIgMTc3LjEyNSAxMjguMjUgQyAxNzcuMTI0OTkgMTQ1LjcxNTggMTYzLjE3NzY5IDE1OS44NzUgMTQ2IDE1OS44NzUgQyAxMjguODIyMzEgMTU5Ljg3NSAxMTQuODc1IDE0NS43MTU4IDExNC44NzUgMTI4LjI1IEMgMTE0Ljg3NSAxMTAuNzg0MTkgMTI4LjgyMjMxIDk2LjU5Mzc1IDE0NiA5Ni41OTM3NSB6IE0gMTc2LjUgMTcyLjcxODc1IEwgMjA2LjE4NzUgMTcyLjcxODc1IEMgMjA3LjQyMTM4IDE3Mi43MTg3NSAyMDguNDA2MjUgMTczLjEyNzgzIDIwOC40MDYyNSAxNzMuNjI1IEwgMjA4LjQwNjI1IDE3Ny45Njg3NSBDIDIwOC40MDYyNSAxNzguNDY1OTIgMjA3LjQyMTM4IDE3OC44NDM3NSAyMDYuMTg3NSAxNzguODQzNzUgTCAxNzYuNSAxNzguODQzNzUgQyAxNzUuMjY2MTEgMTc4Ljg0Mzc1IDE3NC4yODEyNSAxNzguNDY1OTIgMTc0LjI4MTI1IDE3Ny45Njg3NSBMIDE3NC4yODEyNSAxNzMuNjI1IEMgMTc0LjI4MTI1IDE3My4xMjc4MyAxNzUuMjY2MTIgMTcyLjcxODc1IDE3Ni41IDE3Mi43MTg3NSB6ICINCiAgICAgICBpZD0icmVjdDMyMDkiIC8+DQogICAgPHBhdGgNCiAgICAgICBzdHlsZT0iZmlsbDojYzQyNjFkO2ZpbGwtb3BhY2l0eToxIg0KICAgICAgIGQ9Ik0gMjAgMCBDIDE4LjU1OTkzOCAwIDE3LjE2NDc0NyAwLjE1MDk4NjY2IDE1LjgxMjUgMC40Mzc1IEMgMTUuMjEwMjkxIDAuNTY1MTk1NzggMTQuNjExOTEzIDAuNzI2MjExMjYgMTQuMDMxMjUgMC45MDYyNSBDIDEzLjU1NDc3MyAxLjA1Mzk4NTIgMTMuMDg1MzQ5IDEuMjI0ODUzNiAxMi42MjUgMS40MDYyNSBDIDEyLjMyODc2NiAxLjUyMzA3MzkgMTIuMDM5MDMzIDEuNjUwOTE4MiAxMS43NSAxLjc4MTI1IEMgMTEuMzQ3Mjc4IDEuOTYyMzU5OCAxMC45NTA0MDYgMi4xMzc0MTY1IDEwLjU2MjUgMi4zNDM3NSBDIDEwLjUyMTU1NSAyLjM2NTU2ODggMTAuNDc4MjczIDIuMzg0MTU1NSAxMC40Mzc1IDIuNDA2MjUgQyAxMC40MTY5MzQgMi40MTczNzU0IDEwLjM5NTUyMiAyLjQyNjMwNDkgMTAuMzc1IDIuNDM3NSBDIDkuODMyNjg2MSAyLjczMzM0NDYgOS4zMjI2NDQ4IDMuMDYzMjQ1MiA4LjgxMjUgMy40MDYyNSBDIDguMjgzMTIyMSAzLjc2MjE4NjUgNy43NzI3NzI4IDQuMTU4OTIwOSA3LjI4MTI1IDQuNTYyNSBDIDcuMjc1MDU1IDQuNTY3NTg2NiA3LjI1NjE4ODggNC41NTc0MDYxIDcuMjUgNC41NjI1IEMgNy4yMzg1NDc5IDQuNTcxOTQzNCA3LjIzMDE4MDYgNC41ODQyODE2IDcuMjE4NzUgNC41OTM3NSBDIDcuMTA0NzM1MiA0LjY4ODAxNTkgNi45ODY4NTA3IDQuNzc4MjY4NyA2Ljg3NSA0Ljg3NSBDIDYuNTE1NzAyMSA1LjE4NjQyNjQgNi4xNzk3OTA5IDUuNTA3NzA5MSA1Ljg0Mzc1IDUuODQzNzUgQyA1LjQwNDQwMjUgNi4yODE4MDc4IDQuOTkwNzQ0OSA2Ljc0MTM1NTQgNC41OTM3NSA3LjIxODc1IEMgNC41NzkwMDg2IDcuMjM2NTQ2MiA0LjU3NzE4MDYgNy4yNjM0MDE1IDQuNTYyNSA3LjI4MTI1IEMgMy43Njc0ODk4IDguMjQzOTE4MSAzLjA0MjI3MjEgOS4yNzE4NzA1IDIuNDM3NSAxMC4zNzUgQyAyLjQyNjIyMzIgMTAuMzk1NjM1IDIuNDE3NDU2MSAxMC40MTY4MiAyLjQwNjI1IDEwLjQzNzUgQyAyLjEwODM5MDggMTAuOTg1MzQ4IDEuODQwMjIzMyAxMS41NDcyMTQgMS41OTM3NSAxMi4xMjUgQyAxLjU3NTU4NjUgMTIuMTY3NjY1IDEuNTQ5MTI1NSAxMi4yMDcxODIgMS41MzEyNSAxMi4yNSBDIDEuMjg3NzEzMSAxMi44MzI0MzMgMS4wOTQ2NzU0IDEzLjQyMTgyMiAwLjkwNjI1IDE0LjAzMTI1IEMgMC43Mjk2MzAxNCAxNC42MDI0OTUgMC41NjMwOTYzNCAxNS4xODg4MjggMC40Mzc1IDE1Ljc4MTI1IEMgMC4xNDY5MTQwNCAxNy4xNDI1NzggLTQuMzkwNjEzM2UtMTggMTguNTQ5NDY2IDAgMjAgTCAwIDIzMCBDIDAgMjQxLjA4IDguOTIgMjUwIDIwIDI1MCBMIDIzMCAyNTAgQyAyMzEuNDQwMDYgMjUwIDIzMi44MzUyNSAyNDkuODQ5MDEgMjM0LjE4NzUgMjQ5LjU2MjUgQyAyMzQuNzg5MDMgMjQ5LjQzNDk3IDIzNS4zODg2NiAyNDkuMjczODEgMjM1Ljk2ODc1IDI0OS4wOTM3NSBDIDIzNi40NDQ3NiAyNDguOTQ2IDIzNi45MTUwNSAyNDguNzc1MjYgMjM3LjM3NSAyNDguNTkzNzUgQyAyMzcuNjcxMjMgMjQ4LjQ3NjkzIDIzNy45NjA5NyAyNDguMzQ5MDggMjM4LjI1IDI0OC4yMTg3NSBDIDIzOC4yNzk4MSAyNDguMjA1MzEgMjM4LjMxNDAyIDI0OC4yMDEwOSAyMzguMzQzNzUgMjQ4LjE4NzUgQyAyMzguNzU4MzYgMjQ3Ljk5ODMgMjM5LjE2Mzc0IDI0Ny44MDk4MSAyMzkuNTYyNSAyNDcuNTkzNzUgQyAyMzkuNTgzMTggMjQ3LjU4MjU0IDIzOS42MDQzNiAyNDcuNTczNzggMjM5LjYyNSAyNDcuNTYyNSBDIDI0MC4xNjkyNSAyNDcuMjY1MTIgMjQwLjY3NTU4IDI0Ni45Mzg3MyAyNDEuMTg3NSAyNDYuNTkzNzUgQyAyNDEuNjY4NzggMjQ2LjI2OTQxIDI0Mi4xNDM1OSAyNDUuOTI2MzkgMjQyLjU5Mzc1IDI0NS41NjI1IEMgMjQyLjY0NDc0IDI0NS41MjEyOCAyNDIuNjk5NDMgMjQ1LjQ3OTIxIDI0Mi43NSAyNDUuNDM3NSBDIDI0Mi44NzY1MSAyNDUuMzMzMTggMjQzLjAwMTE1IDI0NS4yMzIzNSAyNDMuMTI1IDI0NS4xMjUgQyAyNDMuNDgyNjUgMjQ0LjgxNTM4IDI0My44MjE1NSAyNDQuNDkwMTkgMjQ0LjE1NjI1IDI0NC4xNTYyNSBDIDI0NC40OTIyOSAyNDMuODIwMjEgMjQ0LjgxMzU3IDI0My40ODQzIDI0NS4xMjUgMjQzLjEyNSBDIDI0NS4yMzE2NyAyNDMuMDAyMzQgMjQ1LjMzMzgxIDI0Mi44NzUyNyAyNDUuNDM3NSAyNDIuNzUgQyAyNDUuNDQyNzYgMjQyLjc0MzYyIDI0NS40MzIyNSAyNDIuNzI1MTMgMjQ1LjQzNzUgMjQyLjcxODc1IEMgMjQ1Ljg0MjQ5IDI0Mi4yMjgzIDI0Ni4yMzY0IDI0MS43MTU3NiAyNDYuNTkzNzUgMjQxLjE4NzUgQyAyNDYuOTM4MTIgMjQwLjY3ODQzIDI0Ny4yNjUzNiAyNDAuMTY2MjIgMjQ3LjU2MjUgMjM5LjYyNSBDIDI0Ny41NzM2MyAyMzkuNjA0NzIgMjQ3LjU4MjY4IDIzOS41ODI4MiAyNDcuNTkzNzUgMjM5LjU2MjUgQyAyNDcuODkxOTcgMjM5LjAxNDggMjQ4LjE1OTMxIDIzOC40NTIzOSAyNDguNDA2MjUgMjM3Ljg3NSBDIDI0OC40MTU1NCAyMzcuODUzMjggMjQ4LjQyODI5IDIzNy44MzQyNiAyNDguNDM3NSAyMzcuODEyNSBDIDI0OC40NDY0NCAyMzcuNzkxMjkgMjQ4LjQ1OTg4IDIzNy43NzEyNSAyNDguNDY4NzUgMjM3Ljc1IEMgMjQ4LjcwOTkyIDIzNy4xNzQ3NiAyNDguOTA2MjggMjM2LjU3MDA4IDI0OS4wOTM3NSAyMzUuOTY4NzUgQyAyNDkuMjczNzUgMjM1LjM5MTM3IDI0OS40MzQ2OCAyMzQuODE3NTQgMjQ5LjU2MjUgMjM0LjIxODc1IEMgMjQ5Ljg1MzA5IDIzMi44NTc0MiAyNTAgMjMxLjQ1MDUzIDI1MCAyMzAgTCAyNTAgMjAgQyAyNTAgOC45MiAyNDEuMDggLTMuMzUzNzk4N2UtMTcgMjMwIDAgTCAyMCAwIHogTSAzNC43ODEyNSAxOS40MDYyNSBMIDIyNS40Njg3NSAxOS40MDYyNSBDIDIyOC4zMDk0NiAxOS40MDYyNSAyMzAuNTkzNzUgMjEuNjkwNTQ0IDIzMC41OTM3NSAyNC41MzEyNSBMIDIzMC41OTM3NSAyMTUuMjUgTCAzNC43ODEyNSAxOS40MDYyNSB6IE0gMTkuNDA2MjUgMzQuNzUgTCAyMTUuMjE4NzUgMjMwLjU5Mzc1IEwgMjQuNTMxMjUgMjMwLjU5Mzc1IEMgMjEuNjkwNTQ0IDIzMC41OTM3NiAxOS40MDYyNSAyMjguMzA5NDYgMTkuNDA2MjUgMjI1LjQ2ODc1IEwgMTkuNDA2MjUgMzQuNzUgeiAiDQogICAgICAgaWQ9InBhdGgzMTk2IiAvPg0KICA8L2c+DQo8L3N2Zz4NCg==",
b.UNICODE_LINE_SEP=String.fromCharCode(8232));return b.UNICODE_LINE_SEP};b.prototype.setThemeAndVariant=function(a,b){this.theme=a;this.themeVariant=b};b.prototype.getTheme=function(){null!=this.theme&&this.theme.setVariant(this.themeVariant);return this.theme};b.prototype.getQuickStyleVals=function(){return this.quickStyleVals};b.prototype.processGeomList=function(a){if(!this.geomListProcessed){this.geomList=new c.mxgraph.io.vsdx.mxVsdxGeometryList(a);if(null!=this.geom)for(a=0;a<this.geom.length;a++)this.geomList.addGeometry(this.geom[a]);
-this.geomListProcessed=!0}};b.prototype.parseShapeElem=function(a,d){e.prototype.parseShapeElem.call(this,a,d);var h=a.nodeName;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"ForeignData")){var f=a.ownerDocument.vsdxFileName,k=a.getAttribute("ForeignType"),h=a.getAttribute("CompressionType")||"";if(function(a,b){return a&&a.equals?a.equals(b):a===b}(k,"Bitmap"))h=h.toLowerCase();else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(k,"MetaFile"))h="png";else if(function(a,b){return a&&
-a.equals?a.equals(b):a===b}(k,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(k,"EnhMetaFile"))h="png";else return;k=a.firstChild;if(null!=k){if(null!=k&&1==k.nodeType){var m=k;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m.nodeName.toLowerCase(),"rel")&&(m=m.getAttribute("r:id"),null!=m&&0!==m.length)){var k=f.lastIndexOf("/"),n="",C="";try{n=f.substring(0,k),C=f.substring(k,f.length)}catch(F){return}k=d.getRelationship(m,n+"/_rels"+C+".rels");if(null!=k){f=k.getAttribute("Target")||
-"";m=k.getAttribute("Type");k=f.lastIndexOf("/");try{f=f.substring(k+1,f.length)}catch(F){return}null!=m&&function(a,b){var d=a.length-b.length,c=a.indexOf(b,d);return-1!==c&&c===d}(m,"image")&&(this.imageData={},(k=d.getMedia(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+f))?(this.imageData.iData=k,function(a,b){var d=a.length-b.length,c=a.indexOf(b,d);return-1!==c&&c===d}(f.toLowerCase(),".bmp")&&(h="jpg"),this.imageData.iType=h):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}return}}k=
-k.nextSibling}}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(h,c.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=a)};b.prototype.parseSection=function(a){var d=a.getAttribute("N");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Geometry"))null==this.geom&&(this.geom=[]),0<this.geom.push(a);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Field")){a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Row");for(var h=0;h<a.length;h++){var d=a[h],f=d.getAttribute("IX")||
-"";if(0!==f.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[f]="";else{for(var k=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),m="",n="",C=0;C<k.length;C++){var F=k[C],d=F.getAttribute("N"),F=F.getAttribute("V")||F.textContent||"";switch(d){case "Value":m=F;break;case "Format":n=F}}if(0!==m.length){try{if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(n,"{{"))var n=n.replace(/m/g,
-"@").replace(/M/g,"m").replace(/@/g,"M"),A=isNaN(m)?new Date(m):new Date(b.VSDX_START_TIME+Math.floor(864E5*parseFloat(m))),m=Graph.prototype.formatDate(A,n.replace(RegExp("\\{|\\}","g"),""))}catch(B){}this.fields[f]=m}}}}else e.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?
+this.geomListProcessed=!0}};b.prototype.parseShapeElem=function(a,d){e.prototype.parseShapeElem.call(this,a,d);var g=a.nodeName;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(g,"ForeignData")){var f=a.ownerDocument.vsdxFileName,k=a.getAttribute("ForeignType"),g=a.getAttribute("CompressionType")||"";if(function(a,b){return a&&a.equals?a.equals(b):a===b}(k,"Bitmap"))g=g.toLowerCase();else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(k,"MetaFile"))g="png";else if(function(a,b){return a&&
+a.equals?a.equals(b):a===b}(k,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(k,"EnhMetaFile"))g="png";else return;k=a.firstChild;if(null!=k){if(null!=k&&1==k.nodeType){var m=k;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m.nodeName.toLowerCase(),"rel")&&(m=m.getAttribute("r:id"),null!=m&&0!==m.length)){var k=f.lastIndexOf("/"),n="",z="";try{n=f.substring(0,k),z=f.substring(k,f.length)}catch(F){return}k=d.getRelationship(m,n+"/_rels"+z+".rels");if(null!=k){f=k.getAttribute("Target")||
+"";m=k.getAttribute("Type");k=f.lastIndexOf("/");try{f=f.substring(k+1,f.length)}catch(F){return}null!=m&&function(a,b){var d=a.length-b.length,c=a.indexOf(b,d);return-1!==c&&c===d}(m,"image")&&(this.imageData={},(k=d.getMedia(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+f))?(this.imageData.iData=k,function(a,b){var d=a.length-b.length,c=a.indexOf(b,d);return-1!==c&&c===d}(f.toLowerCase(),".bmp")&&(g="jpg"),this.imageData.iType=g):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}return}}k=
+k.nextSibling}}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(g,c.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=a)};b.prototype.parseSection=function(a){var d=a.getAttribute("N");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Geometry"))null==this.geom&&(this.geom=[]),0<this.geom.push(a);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Field")){a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Row");for(var g=0;g<a.length;g++){var d=a[g],f=d.getAttribute("IX")||
+"";if(0!==f.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[f]="";else{for(var k=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),m="",n="",z=0;z<k.length;z++){var F=k[z],d=F.getAttribute("N"),F=F.getAttribute("V")||F.textContent||"";switch(d){case "Value":m=F;break;case "Format":n=F}}if(0!==m.length){try{if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(n,"{{"))var n=n.replace(/m/g,
+"@").replace(/M/g,"m").replace(/@/g,"M"),B=isNaN(m)?new Date(m):new Date(b.VSDX_START_TIME+Math.floor(864E5*parseFloat(m))),m=Graph.prototype.formatDate(B,n.replace(RegExp("\\{|\\}","g"),""))}catch(C){}this.fields[f]=m}}}}else e.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?
this.text.childNodes:null};b.prototype.getWidth=function(){return 0===this.width&&0<this.height?1:this.width};b.prototype.getHeight=function(){return 0===this.height&&0<this.width?1:this.height};b.prototype.getRotation=function(){return this.rotation};b.prototype.getStyleMap=function(){return this.styleMap};b.prototype.hasGeom=function(){return!(null==this.geom||0==this.geom.length)};b.prototype.hasGeomList=function(){return null!=this.geomList&&this.geomList.hasGeom()};b.prototype.getPPList=function(a){var b=
null;""!=a&&(a=this.getBullet(a),"0"!=a&&(b='<ul style="margin: 0;list-style-type: '+("4"==a?"square":"disc")+'">'));return b};b.prototype.getTextParagraphFormated=function(a){var b="",c={};c.align=this.getHorizontalAlign(this.pp,!0);c["margin-left"]=this.getIndentLeft(this.pp);c["margin-right"]=this.getIndentRight(this.pp);c["margin-top"]=this.getSpBefore(this.pp)+"px";c["margin-bottom"]=this.getSpAfter(this.pp)+"px";c["text-indent"]=this.getIndentFirst(this.pp);c.valign=this.getAlignVertical();
-c.direction=this.getTextDirection(this.pp);return b+=this.insertAttributes(a,c)};b.prototype.getTextCharFormated=function(a){var b="color:"+this.getTextColor(this.cp)+";",e="font-size:"+parseFloat(this.getTextSize(this.cp))+"px;",f="font-family:"+this.getTextFont(this.cp)+";",k="direction:"+this.getRtlText(this.cp)+";",m="letter-spacing:"+parseFloat(this.getLetterSpace(this.cp))/.71+"px;",n="line-height:"+this.getSpcLine(this.pp),C=";opacity:"+this.getTextOpacity(this.cp),F=this.getTextPos(this.cp),
-A=this.getTextCase(this.cp);(function(a,b){return a&&a.equals?a.equals(b):a===b})(A,"1")?a=a.toUpperCase():function(a,b){return a&&a.equals?a.equals(b):a===b}(A,"2")&&(a=c.mxgraph.io.vsdx.mxVsdxUtils.toInitialCapital(a));(function(a,b){return a&&a.equals?a.equals(b):a===b})(F,"1")?a=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sup"):function(a,b){return a&&a.equals?a.equals(b):a===b}(F,"2")&&(a=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sub"));a=this.isBold(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,
-"b"):a;a=this.isItalic(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"i"):a;a=this.isUnderline(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"u"):a;a=this.getTextStrike(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"s"):a;a=this.isSmallCaps(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.toSmallCaps(a,this.getTextSize(this.cp)):a;return""+('<font style="'+e+f+b+k+m+n+C+'">'+a+"</font>")};b.prototype.getTextDirection=function(a){a=this.getFlags(a);(function(a,b){return a&&a.equals?
+c.direction=this.getTextDirection(this.pp);return b+=this.insertAttributes(a,c)};b.prototype.getTextCharFormated=function(a){var b="color:"+this.getTextColor(this.cp)+";",g="font-size:"+parseFloat(this.getTextSize(this.cp))+"px;",e="font-family:"+this.getTextFont(this.cp)+";",f="direction:"+this.getRtlText(this.cp)+";",k="letter-spacing:"+parseFloat(this.getLetterSpace(this.cp))/.71+"px;",m="line-height:"+this.getSpcLine(this.pp),n=";opacity:"+this.getTextOpacity(this.cp),F=this.getTextPos(this.cp),
+B=this.getTextCase(this.cp);(function(a,b){return a&&a.equals?a.equals(b):a===b})(B,"1")?a=a.toUpperCase():function(a,b){return a&&a.equals?a.equals(b):a===b}(B,"2")&&(a=c.mxgraph.io.vsdx.mxVsdxUtils.toInitialCapital(a));(function(a,b){return a&&a.equals?a.equals(b):a===b})(F,"1")?a=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sup"):function(a,b){return a&&a.equals?a.equals(b):a===b}(F,"2")&&(a=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sub"));a=this.isBold(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,
+"b"):a;a=this.isItalic(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"i"):a;a=this.isUnderline(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"u"):a;a=this.getTextStrike(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"s"):a;a=this.isSmallCaps(this.cp)?c.mxgraph.io.vsdx.mxVsdxUtils.toSmallCaps(a,this.getTextSize(this.cp)):a;return""+('<font style="'+g+e+b+f+k+m+n+'">'+a+"</font>")};b.prototype.getTextDirection=function(a){a=this.getFlags(a);(function(a,b){return a&&a.equals?
a.equals(b):a===b})(a,"0")?a="ltr":function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"1")&&(a="rtl");return a};b.prototype.getSpcLine=function(a){var b=!1;a=this.getSpLine(a);0<a?a*=c.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$():(a=0===a?100:100*Math.abs(a),b=!0);return(new String(a)).toString()+(b?"%":"px")};b.prototype.getSpcBefore=function(a){return this.getSpBefore(a)};b.prototype.insertAttributes=function(a,b){if(-1!=a.indexOf(">")){var d=a.indexOf(">"),e=a.substring(d),d=a.substring(0,
d),f=' style="'+c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(b,":")+'"';return d+f+e}return a};b.prototype.getRtlText=function(a){a=this.getCellElement$java_lang_String$java_lang_String$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.RTL_TEXT,a,c.mxgraph.io.vsdx.mxVsdxConstants.PARAGRAPH);a=this.getValue(a,"ltr");(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"0")?a="ltr":function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"1")&&(a="rtl");return a};b.prototype.isBold=function(a){var b=
!1;a=this.getTextStyle(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a.toLowerCase(),"themed")||(b=1===(parseInt(a)&1));return b};b.prototype.isItalic=function(a){var b=!1;a=this.getTextStyle(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a.toLowerCase(),"themed")||(b=2===(parseInt(a)&2));return b};b.prototype.isUnderline=function(a){var b=!1;a=this.getTextStyle(a);
@@ -1124,12 +1127,12 @@ d),f=' style="'+c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(b,":")+'"';return d
a,c.mxgraph.io.vsdx.mxVsdxConstants.CHARACTER);a=this.getValue(a,"0");var b="1";null!=a&&0!==a.length&&(a=1-parseFloat(a),b=(new String(a)).toString());return b};b.prototype.getTextSize=function(a){a=this.getCellElement$java_lang_String$java_lang_String$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.SIZE,a,c.mxgraph.io.vsdx.mxVsdxConstants.CHARACTER);a=this.getScreenNumericalValue$org_w3c_dom_Element$double(a,12);return""+Math.floor(Math.round(100*a)/100)};b.prototype.getAlignVertical=function(){var a=
mxConstants.ALIGN_MIDDLE,b=parseInt(this.getValue(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.VERTICAL_ALIGN),"1"));0===b?a=mxConstants.ALIGN_TOP:2===b&&(a=mxConstants.ALIGN_BOTTOM);return a};b.prototype.getGeomList=function(){return this.geomList};b.prototype.getLastX=function(){return this.lastX};b.prototype.getLastY=function(){return this.lastY};b.prototype.getLastMoveX=function(){return this.lastMoveX};b.prototype.getLastMoveY=function(){return this.lastMoveY};b.prototype.getLastKnot=
function(){return this.lastKnot};b.prototype.setLastX=function(a){this.lastX=a};b.prototype.setLastY=function(a){this.lastY=a};b.prototype.setLastMoveX=function(a){this.lastMoveX=a};b.prototype.setLastMoveY=function(a){this.lastMoveY=a};b.prototype.setLastKnot=function(a){this.lastKnot=a};return b}(c.mxgraph.io.vsdx.Style);f.VSDX_START_TIME=-22091688E5;k.Shape=f;f.__class="com.mxgraph.io.vsdx.Shape"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(n){(function(m){(function(k){var f=function(e){function b(a,b,h,f,k,m){var d=this;d.masterShape=null;d.master=null;d.parentHeight=0;d=e.call(this,b,m)||this;d.htmlLabels=!0;d.rootShape=d;d.shapeName=null;d.shapeIndex=0;d.vertex=!0;d.childShapes={};var p=d.getMasterId(),n=d.getShapeMasterId();d.master=null!=p?f[p]?f[p]:null:k;null!=d.master&&(d.masterShape=null==p&&null!=n?d.master.getSubShape(n):d.master.getMasterShape());f=d.getNameU();k=f.lastIndexOf(".");-1!==k&&(f=f.substring(0,
+(function(c){(function(n){(function(m){(function(k){var f=function(e){function b(a,b,g,f,k,m){var d=this;d.masterShape=null;d.master=null;d.parentHeight=0;d=e.call(this,b,m)||this;d.htmlLabels=!0;d.rootShape=d;d.shapeName=null;d.shapeIndex=0;d.vertex=!0;d.childShapes={};var p=d.getMasterId(),n=d.getShapeMasterId();d.master=null!=p?f[p]?f[p]:null:k;null!=d.master&&(d.masterShape=null==p&&null!=n?d.master.getSubShape(n):d.master.getMasterShape());f=d.getNameU();k=f.lastIndexOf(".");-1!==k&&(f=f.substring(0,
k));d.shapeName=f;b=b.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.SHAPES);null!=b&&0<b.length&&(b=b.item(0),d.childShapes=a.parseShapes(b,d.master,!1));b=d.calcRotation();d.rotation=100*b/100;d.rotation%=360;b=a.getCellIntValue("ThemeIndex",-100);-100===b&&(b=parseInt(d.getValue(d.getCellElement$java_lang_String("ThemeIndex"),"0")));m=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===
b)return a.entries[d].value;return null}(m.getThemes(),b);a=a.getCellIntValue("VariationColorIndex",0);d.setThemeAndVariant(m,a);b=function(a){null==a.entries&&(a.entries=[]);return a.entries}(d.childShapes);for(f=0;f<b.length;f++)k=b[f].getValue(),k.setRootShape(d),null==k.theme&&k.setThemeAndVariant(m,a);d.quickStyleVals=new c.mxgraph.io.vsdx.theme.QuickStyleVals(parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleEffectsMatrix"),"0")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleFillColor"),
"1")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleFillMatrix"),"0")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleFontColor"),"1")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleFontMatrix"),"0")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleLineColor"),"1")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleLineMatrix"),"0")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleShadowColor"),
"1")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleType"),"0")),parseInt(d.getValue(d.getCellElement$java_lang_String("QuickStyleVariation"),"0")));null!=d.masterShape?(d.masterShape.processGeomList(null),d.processGeomList(d.masterShape.getGeomList()),0===d.width&&(d.width=d.getScreenNumericalValue$org_w3c_dom_Element$double(d.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0)),0===d.height&&(d.height=d.getScreenNumericalValue$org_w3c_dom_Element$double(d.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),
-0))):d.processGeomList(null);d.vertex=h||null!=d.childShapes&&!function(a){null==a.entries&&(a.entries=[]);return 0==a.entries.length}(d.childShapes)||null!=d.geomList&&(!d.geomList.isNoFill()||1<d.geomList.getGeoCount());d.layerMember=d.getValue(d.getCellElement$java_lang_String("LayerMember"));return d}__extends(b,e);b.__static_initialize=function(){b.__static_initialized||(b.__static_initialized=!0,b.__static_initializer_0())};b.OFFSET_ARRAY_$LI$=function(){b.__static_initialize();null==b.OFFSET_ARRAY&&
+0))):d.processGeomList(null);d.vertex=g||null!=d.childShapes&&!function(a){null==a.entries&&(a.entries=[]);return 0==a.entries.length}(d.childShapes)||null!=d.geomList&&(!d.geomList.isNoFill()||1<d.geomList.getGeoCount());d.layerMember=d.getValue(d.getCellElement$java_lang_String("LayerMember"));return d}__extends(b,e);b.__static_initialize=function(){b.__static_initialized||(b.__static_initialized=!0,b.__static_initializer_0())};b.OFFSET_ARRAY_$LI$=function(){b.__static_initialize();null==b.OFFSET_ARRAY&&
(b.OFFSET_ARRAY=["Organizational unit","Domain 3D"].slice(0).slice(0));return b.OFFSET_ARRAY};b.arrowSizes_$LI$=function(){b.__static_initialize();null==b.arrowSizes&&(b.arrowSizes=[2,3,5,7,9,22,45]);return b.arrowSizes};b.arrowTypes_$LI$=function(){b.__static_initialize();return b.arrowTypes};b.__static_initializer_0=function(){b.arrowTypes={};(function(a,b,c){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===
b){a.entries[d].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(b.arrowTypes_$LI$(),0,mxConstants.NONE);(function(a,b,c){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b){a.entries[d].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(b.arrowTypes_$LI$(),
1,mxConstants.ARROW_OPEN);(function(a,b,c){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===b){a.entries[d].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(b.arrowTypes_$LI$(),2,"blockThin");(function(a,b,c){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||
@@ -1168,9 +1171,9 @@ this.styleMap[mxConstants.STYLE_ALIGN]=this.getHorizontalAlign("0",!1),this.getH
this.getIndex(m);break;case "fld":f=this.getIndex(m);break;case "#text":m=m.textContent;var n;n=this.paragraphs;n=n[e]?n[e]:null;null==n?(n=new c.mxgraph.io.vsdx.Paragraph(m,b,e,f),this.paragraphs[e]=n):n.addText(m,b,f)}}};b.prototype.createHybridLabel=function(a){var b=function(a,b){return a[b]?a[b]:null}(this.paragraphs,a);this.styleMap[mxConstants.STYLE_ALIGN]=this.getHorizontalAlign(a,!1);this.styleMap[mxConstants.STYLE_SPACING_LEFT]=this.getIndentLeft(a);this.styleMap[mxConstants.STYLE_SPACING_RIGHT]=
this.getIndentRight(a);this.styleMap[mxConstants.STYLE_SPACING_TOP]=this.getSpBefore(a);this.styleMap[mxConstants.STYLE_SPACING_BOTTOM]=this.getSpAfter(a);this.styleMap[mxConstants.STYLE_VERTICAL_ALIGN]=this.getAlignVertical();this.styleMap.fontColor=this.getTextColor(a);this.styleMap.fontSize=this.getTextSize(a);this.styleMap.fontFamily=this.getTextFont(a);var c=this.isBold(a)?mxConstants.FONT_BOLD:0,c=c|(this.isItalic(a)?mxConstants.FONT_ITALIC:0),c=c|(this.isUnderline(a)?mxConstants.FONT_UNDERLINE:
0);this.styleMap.fontStyle=(new String(c)).toString();a=b.numValues();for(var c=null,e=0;e<a;e++){var f=b.getValue(e);if(0===f.length&&null!=this.fields){var k=b.getField(e);null!=k&&(f=function(a,b){return a[b]?a[b]:null}(this.fields,k),null==f&&null!=this.masterShape&&null!=this.masterShape.fields&&(f=function(a,b){return a[b]?a[b]:null}(this.masterShape.fields,k)))}null!=f&&(c=null==c?f:c+f)}return c};b.prototype.getHtmlTextContent=function(a){function b(a){a=c.mxgraph.io.vsdx.mxVsdxUtils.htmlEntities(a);
-m&&(a="<li>"+a,m=!1);k?(a=a.split("\n"),a[a.length-1]||(a.pop(),m=!0),a=a.join("</li><li>")):a=a.replace(RegExp("\n","g"),"<br/>").replace(new RegExp(c.mxgraph.io.vsdx.Shape.UNICODE_LINE_SEP,"g"),"<br/>");return this.getTextCharFormated(a)}var e="",f=!0,k=!1,m=!1;if(null!=a&&0<a.length)for(var n=0;n<a.length;n++){var C=a.item(n);(function(a,b){return a&&a.equals?a.equals(b):a===b})(C.nodeName,"cp")?this.cp=this.getIndex(C):function(a,b){return a&&a.equals?a.equals(b):a===b}(C.nodeName,"tp")?this.tp=
-this.getIndex(C):function(a,b){return a&&a.equals?a.equals(b):a===b}(C.nodeName,"pp")?(this.pp=this.getIndex(C),k&&(e+="</li></ul>"),f?f=!1:e+="</p>",e+=this.getTextParagraphFormated("<p>"),C=this.getPPList(this.pp),m=k=null!=C,e+=k?C:""):function(a,b){return a&&a.equals?a.equals(b):a===b}(C.nodeName,"fld")?(this.fld=this.getIndex(C),C=null,null!=this.fields&&(C=function(a,b){return a[b]?a[b]:null}(this.fields,this.fld)),null==C&&null!=this.masterShape&&null!=this.masterShape.fields&&(C=function(a,
-b){return a[b]?a[b]:null}(this.masterShape.fields,this.fld)),null!=C&&(e+=b.call(this,C))):function(a,b){return a&&a.equals?a.equals(b):a===b}(C.nodeName,"#text")&&(C=C.textContent,e+=b.call(this,C))}k&&(e+="</li></ul>");e+=f?"":"</p>";c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(e,"div");return e};b.prototype.isConnectorBigNameU=function(a){return function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"60 degree single")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===
+m&&(a="<li>"+a,m=!1);k?(a=a.split("\n"),a[a.length-1]||(a.pop(),m=!0),a=a.join("</li><li>")):a=a.replace(RegExp("\n","g"),"<br/>").replace(new RegExp(c.mxgraph.io.vsdx.Shape.UNICODE_LINE_SEP,"g"),"<br/>");return this.getTextCharFormated(a)}var e="",f=!0,k=!1,m=!1;if(null!=a&&0<a.length)for(var n=0;n<a.length;n++){var z=a.item(n);(function(a,b){return a&&a.equals?a.equals(b):a===b})(z.nodeName,"cp")?this.cp=this.getIndex(z):function(a,b){return a&&a.equals?a.equals(b):a===b}(z.nodeName,"tp")?this.tp=
+this.getIndex(z):function(a,b){return a&&a.equals?a.equals(b):a===b}(z.nodeName,"pp")?(this.pp=this.getIndex(z),k&&(e+="</li></ul>"),f?f=!1:e+="</p>",e+=this.getTextParagraphFormated("<p>"),z=this.getPPList(this.pp),m=k=null!=z,e+=k?z:""):function(a,b){return a&&a.equals?a.equals(b):a===b}(z.nodeName,"fld")?(this.fld=this.getIndex(z),z=null,null!=this.fields&&(z=function(a,b){return a[b]?a[b]:null}(this.fields,this.fld)),null==z&&null!=this.masterShape&&null!=this.masterShape.fields&&(z=function(a,
+b){return a[b]?a[b]:null}(this.masterShape.fields,this.fld)),null!=z&&(e+=b.call(this,z))):function(a,b){return a&&a.equals?a.equals(b):a===b}(z.nodeName,"#text")&&(z=z.textContent,e+=b.call(this,z))}k&&(e+="</li></ul>");e+=f?"":"</p>";c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(e,"div");return e};b.prototype.isConnectorBigNameU=function(a){return function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"60 degree single")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===
b}(a,"45 degree single")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"45 degree double")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"60 degree double")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"45 degree tail")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"60 degree tail")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"45 degree tail")||function(a,b,c){void 0===c&&(c=
0);return a.substr(c,b.length)===b}(a,"60 degree tail")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"Flexi-arrow 2")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"Flexi-arrow 1")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"Flexi-arrow 3")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"Double flexi-arrow")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a,"Fancy arrow")};b.prototype.isVertex=
function(){return this.vertex};b.prototype.getOriginPoint=function(a,b){var d=this.getPinX(),e=this.getPinY(),f=this.getLocPinY(),k=this.getLocPinX(),m=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0),n=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),0),d=d-k,e=a-(e+(n-f));return!b||f===n/2&&k===m/2||0===this.rotation?new mxPoint(d,e):(k=m/2-k,f-=n/2,n=Math.cos((360-
@@ -1202,8 +1205,8 @@ e=e.hasAttribute("F")?e.getAttribute("F"):e.textContent);f=a.getGeometry();d=d.s
(m=F.split("tabHeight=").join(""))}(function(a,b){return a&&a.equals?a.equals(b):a===b})(m,"")&&(m="20");k=parseFloat(m);d=parseFloat(d);e=parseFloat(e);m=f.height;d=.1*f.width+100*d;d=new mxPoint(d,m-m*e-k/2);a.getGeometry().offset=d}else if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Domain 3D")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(e,"Domain 3D")){f=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0);d=null;
d="0.0";e=null;e="-0.4";null!=f&&(d=f.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F")||"",e=f.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),e=e.getAttribute("F")||"");f=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");e=e.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b):
a===b}(e,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(e,""))e="-0.4";-1!=e.indexOf("txtHeight")&&(e="-0.4");d=parseFloat(d);e=parseFloat(e);m=f.height;d=.1*f.width+100*d;d=new mxPoint(d,m-m*e);a.getGeometry().offset=d}};b.prototype.getForm=function(){var a={};if(this.isVertex())try{var d=b.getType(this.getShape());this.styleDebug("shape type = "+d);if(null!=this.imageData||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN,d)&&null!=this.masterShape&&
-null!=this.masterShape.imageData){var e=null!=this.imageData?this.imageData:this.masterShape.imageData;a.shape="image";a.aspect="fixed";var f=function(a,b){return a[b]?a[b]:null}(e,"iType"),k=function(a,b){return a[b]?a[b]:null}(e,"iData");a.image="data:image/"+f+","+k;return a}var m=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m,""))return this.styleDebug("No geom found"),a;var n=Graph.compress(m);a[mxConstants.STYLE_SHAPE]="stencil("+n+")"}catch(C){console.error(C.message,
-C)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Off-page reference")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Lined/Shaded process")?!0:!1};b.prototype.isExternal_process=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("External process"):"External process"===a;return a};b.prototype.getDirection=function(a){a=mxResources.get("mxOffset"+this.shapeName);
+null!=this.masterShape.imageData){var e=null!=this.imageData?this.imageData:this.masterShape.imageData;a.shape="image";a.aspect="fixed";var f=function(a,b){return a[b]?a[b]:null}(e,"iType"),k=function(a,b){return a[b]?a[b]:null}(e,"iData");a.image="data:image/"+f+","+k;return a}var m=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m,""))return this.styleDebug("No geom found"),a;var n=Graph.compress(m);a[mxConstants.STYLE_SHAPE]="stencil("+n+")"}catch(z){console.error(z.message,
+z)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Off-page reference")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Lined/Shaded process")?!0:!1};b.prototype.isExternal_process=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("External process"):"External process"===a;return a};b.prototype.getDirection=function(a){a=mxResources.get("mxOffset"+this.shapeName);
if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0")&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"1"))return mxConstants.DIRECTION_SOUTH;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"2"))return mxConstants.DIRECTION_WEST;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"3"))return mxConstants.DIRECTION_NORTH}return mxConstants.DIRECTION_EAST};b.prototype.isSubproces=function(){var a;a=
(a=this.shapeName)&&a.equals?a.equals("Subproces"):"Subproces"===a;return a};b.prototype.getEdgeStyle$=function(){return{edgeStyle:"none"}};b.prototype.getChildShapes=function(){return this.childShapes};b.prototype.setChildShapes=function(a){this.childShapes=a};b.prototype.isDisplacedLabel=function(){var a=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X,"F",""),b=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y,"F",""),e=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH,
"F",""),f=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT,"F","");if(null!=this.masterShape){if(""===a||function(a,b){return a&&a.equals?a.equals(b):a===b}(a.toLowerCase(),"inh"))a=this.masterShape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X,"F","");if(""===b||function(a,b){return a&&a.equals?a.equals(b):a===b}(b.toLowerCase(),"inh"))b=this.masterShape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y,"F","");if(""===e||function(a,b){return a&&a.equals?a.equals(b):
@@ -1213,8 +1216,8 @@ b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(a.toLowerCase(),"control
"V","");null!=this.masterShape&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")&&(a=this.masterShape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V",""));return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0.0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")?!1:!0};b.prototype.setRootShape=function(a){this.rootShape=a};b.prototype.getRootShape=function(){return this.rootShape};b.prototype.getStartXY=
function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X),0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_Y),0)))/100);return new mxPoint(b,a)};b.prototype.getEndXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_X),
0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_Y),0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var e=[];if(null!=this.shape){var f=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);
-if(0<f.length&&(f=f.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=f)){for(var f=f.getAttribute("F")||"",f=f.replace(RegExp("NURBS\\(","g"),""),f=f.replace(RegExp("\\)","g"),""),f=f.replace(RegExp(",","g")," "),f=f.replace(RegExp("\\s\\s","g")," "),f=f.split(" "),k=f.length,m=[];0<k--;)m.push(0);for(k=0;k<f.length;k++)m[k]=parseFloat(f[k]);for(k=2;k+4<f.length;k+=4){var n=new mxPoint,C=m[k+3];n.x=Math.floor(Math.round(100*(b.x+
-Math.min(100,Math.abs(a.x-b.x))*m[k+2]))/100);n.y=Math.floor(Math.round(100*(b.y-100*C))/100);0<e.push(n)}return e}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=this.getId().toString();a=this.getForm();if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,""))for(var d in a)this.styleMap[d]=a[d];this.isDashed()&&(this.styleMap[mxConstants.STYLE_DASHED]="1",d=this.getDashPattern(),null!=d&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=
+if(0<f.length&&(f=f.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=f)){for(var f=f.getAttribute("F")||"",f=f.replace(RegExp("NURBS\\(","g"),""),f=f.replace(RegExp("\\)","g"),""),f=f.replace(RegExp(",","g")," "),f=f.replace(RegExp("\\s\\s","g")," "),f=f.split(" "),k=f.length,m=[];0<k--;)m.push(0);for(k=0;k<f.length;k++)m[k]=parseFloat(f[k]);for(k=2;k+4<f.length;k+=4){var n=new mxPoint,z=m[k+3];n.x=Math.floor(Math.round(100*(b.x+
+Math.min(100,Math.abs(a.x-b.x))*m[k+2]))/100);n.y=Math.floor(Math.round(100*(b.y-100*z))/100);0<e.push(n)}return e}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=this.getId().toString();a=this.getForm();if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,""))for(var d in a)this.styleMap[d]=a[d];this.isDashed()&&(this.styleMap[mxConstants.STYLE_DASHED]="1",d=this.getDashPattern(),null!=d&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=
d));d=this.getEdgeMarker(!0);null!=d&&(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_STARTFILL]="0"),this.styleMap[mxConstants.STYLE_STARTARROW]=d);d=this.getEdgeMarker(!1);null!=d&&(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_ENDFILL]="0"),this.styleMap[mxConstants.STYLE_ENDARROW]=
d);d=Math.round(this.getStartArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_STARTSIZE]=""+d);d=Math.round(this.getFinalArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_ENDSIZE]=""+d);d=Math.round(this.getLineWidth())|0;1!==d&&(this.styleMap[mxConstants.STYLE_STROKEWIDTH]=""+d);d=this.getStrokeColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"")||(this.styleMap[mxConstants.STYLE_STROKECOLOR]=d);this.isShadow()&&(this.styleMap[mxConstants.STYLE_SHADOW]=c.mxgraph.io.vsdx.mxVsdxConstants.TRUE);
this.isConnectorBigNameU(this.getNameU())&&(this.styleMap[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_ARROW,d=this.getFillColor(),function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"")||(this.styleMap[mxConstants.STYLE_FILLCOLOR]=d));d=Math.round(this.getTopSpacing())|0;this.styleMap[mxConstants.STYLE_SPACING_TOP]=""+d;d=Math.round(this.getBottomSpacing())|0;this.styleMap[mxConstants.STYLE_SPACING_BOTTOM]=""+d;d=Math.round(this.getLeftSpacing())|0;this.styleMap[mxConstants.STYLE_SPACING_LEFT]=""+
@@ -1224,32 +1227,32 @@ this.getQuickStyleVals()))}else e=parseInt(d)}catch(y){}a=function(a,b){null==a.
1));return a};b.prototype.getCellElement$java_lang_String=function(a){var b=e.prototype.getCellElement$java_lang_String.call(this,a);return null==b&&null!=this.masterShape?this.masterShape.getCellElement$java_lang_String(a):b};b.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String=function(a,b,c){var d=e.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String.call(this,a,b,c);return null==d&&null!=this.masterShape?this.masterShape.getCellElement$java_lang_String$java_lang_String$java_lang_String(a,
b,c):d};b.prototype.getCellElement=function(a,b,c){if("string"!==typeof a&&null!==a||"string"!==typeof b&&null!==b||"string"!==typeof c&&null!==c){if("string"!==typeof a&&null!==a||void 0!==b||void 0!==c)throw Error("invalid overload");return this.getCellElement$java_lang_String(a)}return this.getCellElement$java_lang_String$java_lang_String$java_lang_String(a,b,c)};b.prototype.createLabelSubShape=function(a,b){var d=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH),
this.getWidth()),e=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT),this.getHeight()),f=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_X),d/2),k=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_Y),e/2),m=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X),
-f),n=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),k),F=this.getValueAsDouble(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE),0),A=this.getTextLabel();if(null!=A&&0!==A.length){var B=mxUtils.clone(this.getStyleMap())||{};B[mxConstants.STYLE_FILLCOLOR]=mxConstants.NONE;B[mxConstants.STYLE_STROKECOLOR]=mxConstants.NONE;B[mxConstants.STYLE_GRADIENTCOLOR]=mxConstants.NONE;B.hasOwnProperty("align")||(B.align="center");
-B.hasOwnProperty("verticalAlign")||(B.verticalAlign="middle");B.hasOwnProperty("whiteSpace")||(B.whiteSpace="wrap");delete B.shape;delete B.image;this.isVerticalLabel()&&(F+=Math.PI+.01,B.horizontal="0");var G=this.getRotation();0!==F&&(F=360-180*F/Math.PI,F=Math.round((F+G)%360*100)/100,0!==F&&(B.rotation=""+F));B="text;"+c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(B,"=");k=b.getGeometry().height-(n+e-k);f=m-f;0<G&&(m=new mxGeometry(f,k,d,e),f=b.getGeometry(),c.mxgraph.online.Utils.rotatedGeometry(m,
-G,f.width/2,f.height/2),f=m.x,k=m.y);return a.insertVertex(b,null,A,Math.round(100*f)/100,Math.round(100*k)/100,Math.round(100*d)/100,Math.round(100*e)/100,B+";html=1;")}return null};b.prototype.getLblEdgeOffset=function(a,b){if(null!=b&&1<b.length){var d=new mxCellState;d.absolutePoints=b;a.updateEdgeBounds(d);var d=a.getPoint(d),e=b[0],f=b[b.length-1],k=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH),this.getWidth()),m=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT),
-this.getHeight()),n=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_X),0),F=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_Y),0),A=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X),0),B=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),
-0),f=(this.getHeight()-(e.y-f.y))/2+e.y-d.y-(B-F+m/2),d=A-n+k/2+(e.x-d.x);return 1E11<Math.abs(d)?null:new mxPoint(Math.floor(Math.round(100*d)/100),Math.floor(Math.round(100*f)/100))}return null};b.prototype.getShapeIndex=function(){return this.shapeIndex};b.prototype.setShapeIndex=function(a){this.shapeIndex=a};return b}(c.mxgraph.io.vsdx.Shape);f.__static_initialized=!1;f.ARROW_NO_FILL_MARKER="0";f.maxDp=2;f.USE_SHAPE_MATCH=!1;f.stencilTemplate='<shape h="htemplate" w="wtemplate" aspect="variable" strokewidth="inherit"><connections></connections><background></background><foreground></foreground></shape>';
+f),n=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),k),F=this.getValueAsDouble(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE),0),B=this.getTextLabel();if(null!=B&&0!==B.length){var C=mxUtils.clone(this.getStyleMap())||{};C[mxConstants.STYLE_FILLCOLOR]=mxConstants.NONE;C[mxConstants.STYLE_STROKECOLOR]=mxConstants.NONE;C[mxConstants.STYLE_GRADIENTCOLOR]=mxConstants.NONE;C.hasOwnProperty("align")||(C.align="center");
+C.hasOwnProperty("verticalAlign")||(C.verticalAlign="middle");C.hasOwnProperty("whiteSpace")||(C.whiteSpace="wrap");delete C.shape;delete C.image;this.isVerticalLabel()&&(F+=Math.PI+.01,C.horizontal="0");var G=this.getRotation();0!==F&&(F=360-180*F/Math.PI,F=Math.round((F+G)%360*100)/100,0!==F&&(C.rotation=""+F));C="text;"+c.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(C,"=");k=b.getGeometry().height-(n+e-k);f=m-f;0<G&&(m=new mxGeometry(f,k,d,e),f=b.getGeometry(),c.mxgraph.online.Utils.rotatedGeometry(m,
+G,f.width/2,f.height/2),f=m.x,k=m.y);return a.insertVertex(b,null,B,Math.round(100*f)/100,Math.round(100*k)/100,Math.round(100*d)/100,Math.round(100*e)/100,C+";html=1;")}return null};b.prototype.getLblEdgeOffset=function(a,b){if(null!=b&&1<b.length){var d=new mxCellState;d.absolutePoints=b;a.updateEdgeBounds(d);var d=a.getPoint(d),e=b[0],f=b[b.length-1],k=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH),this.getWidth()),m=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT),
+this.getHeight()),n=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_X),0),F=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_Y),0),B=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X),0),C=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),
+0),f=(this.getHeight()-(e.y-f.y))/2+e.y-d.y-(C-F+m/2),d=B-n+k/2+(e.x-d.x);return 1E11<Math.abs(d)?null:new mxPoint(Math.floor(Math.round(100*d)/100),Math.floor(Math.round(100*f)/100))}return null};b.prototype.getShapeIndex=function(){return this.shapeIndex};b.prototype.setShapeIndex=function(a){this.shapeIndex=a};return b}(c.mxgraph.io.vsdx.Shape);f.__static_initialized=!1;f.ARROW_NO_FILL_MARKER="0";f.maxDp=2;f.USE_SHAPE_MATCH=!1;f.stencilTemplate='<shape h="htemplate" w="wtemplate" aspect="variable" strokewidth="inherit"><connections></connections><background></background><foreground></foreground></shape>';
k.VsdxShape=f;f.__class="com.mxgraph.io.vsdx.VsdxShape"})(m.vsdx||(m.vsdx={}))})(n.io||(n.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
(function(c){(function(n){(function(m){var k=function(){function f(){}f.__static_initialize=function(){f.__static_initialized||(f.__static_initialized=!0,f.__static_initializer_0())};f.CA_$LI$=function(){f.__static_initialize();null==f.CA&&(f.CA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""));return f.CA};f.IA_$LI$=function(){f.__static_initialize();if(null==f.IA){for(var c=256,b=[];0<c--;)b.push(0);f.IA=b}return f.IA};f.__static_initializer_0=function(){for(var c=f.IA_$LI$(),
-b=0;b<c.length;b++)c[b]=-1;c=0;for(b=f.CA_$LI$().length;c<b;c++)f.IA_$LI$()[f.CA_$LI$()[c].charCodeAt(0)]=c;f.IA_$LI$()[61]=0};f.encodeToChar=function(c,b,a){var d=null!=c?c.length-b:0;if(0===d)return[];for(var e=3*(d/3|0),k=((d-1)/3|0)+1<<2,k=k+(a?((k-1)/76|0)<<1:0),m=Array(k),n=b,x=0,C=0;n<e+b;){var F=(c[n++]&255)<<16|(c[n++]&255)<<8|c[n++]&255;m[x++]=f.CA_$LI$()[F>>>18&63];m[x++]=f.CA_$LI$()[F>>>12&63];m[x++]=f.CA_$LI$()[F>>>6&63];m[x++]=f.CA_$LI$()[F&63];a&&19===++C&&x<k-2&&(m[x++]="\r",m[x++]=
-"\n",C=0)}a=d-e;0<a&&(F=(c[e+b]&255)<<10|(2===a?(c[d+b-1]&255)<<2:0),m[k-4]=f.CA_$LI$()[F>>12],m[k-3]=f.CA_$LI$()[F>>>6&63],m[k-2]=2===a?f.CA_$LI$()[F&63]:"=",m[k-1]="=");return m};f.decode$char_A=function(c){var b=null!=c?c.length:0;if(0===b)return[];for(var a=0,d=0;d<b;d++)0>f.IA_$LI$()[c[d].charCodeAt(0)]&&a++;if(0!==(b-a)%4)return null;for(var e=0,d=b;1<d&&0>=f.IA_$LI$()[c[--d].charCodeAt(0)];)61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c[d])&&e++;for(var b=(6*(b-a)>>3)-e,a=function(a){for(var b=
+b=0;b<c.length;b++)c[b]=-1;c=0;for(b=f.CA_$LI$().length;c<b;c++)f.IA_$LI$()[f.CA_$LI$()[c].charCodeAt(0)]=c;f.IA_$LI$()[61]=0};f.encodeToChar=function(c,b,a){var d=null!=c?c.length-b:0;if(0===d)return[];for(var e=3*(d/3|0),k=((d-1)/3|0)+1<<2,k=k+(a?((k-1)/76|0)<<1:0),m=Array(k),n=b,x=0,z=0;n<e+b;){var F=(c[n++]&255)<<16|(c[n++]&255)<<8|c[n++]&255;m[x++]=f.CA_$LI$()[F>>>18&63];m[x++]=f.CA_$LI$()[F>>>12&63];m[x++]=f.CA_$LI$()[F>>>6&63];m[x++]=f.CA_$LI$()[F&63];a&&19===++z&&x<k-2&&(m[x++]="\r",m[x++]=
+"\n",z=0)}a=d-e;0<a&&(F=(c[e+b]&255)<<10|(2===a?(c[d+b-1]&255)<<2:0),m[k-4]=f.CA_$LI$()[F>>12],m[k-3]=f.CA_$LI$()[F>>>6&63],m[k-2]=2===a?f.CA_$LI$()[F&63]:"=",m[k-1]="=");return m};f.decode$char_A=function(c){var b=null!=c?c.length:0;if(0===b)return[];for(var a=0,d=0;d<b;d++)0>f.IA_$LI$()[c[d].charCodeAt(0)]&&a++;if(0!==(b-a)%4)return null;for(var e=0,d=b;1<d&&0>=f.IA_$LI$()[c[--d].charCodeAt(0)];)61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c[d])&&e++;for(var b=(6*(b-a)>>3)-e,a=function(a){for(var b=
[];0<a--;)b.push(0);return b}(b),k=e=0;k<b;){for(var m=d=0;4>m;m++){var n=f.IA_$LI$()[c[e++].charCodeAt(0)];0<=n?d|=n<<18-6*m:m--}a[k++]=d>>16|0;k<b&&(a[k++]=d>>8|0,k<b&&(a[k++]=d|0))}return a};f.decode=function(e){if(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"string"===typeof e[0])||null===e)return c.mxgraph.online.mxBase64.decode$char_A(e);if(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"===typeof e[0])||null===e)return c.mxgraph.online.mxBase64.decode$byte_A(e);if("string"===
typeof e||null===e)return c.mxgraph.online.mxBase64.decode$java_lang_String(e);throw Error("invalid overload");};f.decodeFast$char_A=function(c){var b=c.length;if(0===b)return[];for(var a=0,d=b-1;a<d&&0>f.IA_$LI$()[c[a].charCodeAt(0)];)a++;for(;0<d&&0>f.IA_$LI$()[c[d].charCodeAt(0)];)d--;for(var e=61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c[d])?61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c[d-1])?2:1:0,k=d-a+1,m=76<b?(13==function(a){return null==a.charCodeAt?a:
-a.charCodeAt(0)}(c[76])?k/78|0:0)<<1:0,k=(6*(k-m)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(k),n=0,x=0,C=3*(k/3|0);n<C;){var F=f.IA_$LI$()[c[a++].charCodeAt(0)]<<18|f.IA_$LI$()[c[a++].charCodeAt(0)]<<12|f.IA_$LI$()[c[a++].charCodeAt(0)]<<6|f.IA_$LI$()[c[a++].charCodeAt(0)];b[n++]=F>>16|0;b[n++]=F>>8|0;b[n++]=F|0;0<m&&19===++x&&(a+=2,x=0)}if(n<k){for(m=F=0;a<=d-e;m++)F|=f.IA_$LI$()[c[a++].charCodeAt(0)]<<18-6*m;for(c=16;n<k;c-=8)b[n++]=F>>c|0}return b};f.decodeFast=function(e){if(null!=
+a.charCodeAt(0)}(c[76])?k/78|0:0)<<1:0,k=(6*(k-m)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(k),n=0,x=0,z=3*(k/3|0);n<z;){var F=f.IA_$LI$()[c[a++].charCodeAt(0)]<<18|f.IA_$LI$()[c[a++].charCodeAt(0)]<<12|f.IA_$LI$()[c[a++].charCodeAt(0)]<<6|f.IA_$LI$()[c[a++].charCodeAt(0)];b[n++]=F>>16|0;b[n++]=F>>8|0;b[n++]=F|0;0<m&&19===++x&&(a+=2,x=0)}if(n<k){for(m=F=0;a<=d-e;m++)F|=f.IA_$LI$()[c[a++].charCodeAt(0)]<<18-6*m;for(c=16;n<k;c-=8)b[n++]=F>>c|0}return b};f.decodeFast=function(e){if(null!=
e&&e instanceof Array&&(0==e.length||null==e[0]||"string"===typeof e[0])||null===e)return c.mxgraph.online.mxBase64.decodeFast$char_A(e);if(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"===typeof e[0])||null===e)return c.mxgraph.online.mxBase64.decodeFast$byte_A(e);if("string"===typeof e||null===e)return c.mxgraph.online.mxBase64.decodeFast$java_lang_String(e);throw Error("invalid overload");};f.encodeToByte=function(c,b){var a=null!=c?c.length:0;if(0===a)return[];for(var d=3*(a/
-3|0),e=((a-1)/3|0)+1<<2,k=e+=b?((e-1)/76|0)<<1:0,m=[];0<k--;)m.push(0);for(var n=0,x=0,C=0;n<d;)k=(c[n++]&255)<<16|(c[n++]&255)<<8|c[n++]&255,m[x++]=f.CA_$LI$()[k>>>18&63].charCodeAt(0),m[x++]=f.CA_$LI$()[k>>>12&63].charCodeAt(0),m[x++]=f.CA_$LI$()[k>>>6&63].charCodeAt(0),m[x++]=f.CA_$LI$()[k&63].charCodeAt(0),b&&19===++C&&x<e-2&&(m[x++]=13,m[x++]=10,C=0);n=a-d;0<n&&(k=(c[d]&255)<<10|(2===n?(c[a-1]&255)<<2:0),m[e-4]=f.CA_$LI$()[k>>12].charCodeAt(0),m[e-3]=f.CA_$LI$()[k>>>6&63].charCodeAt(0),m[e-2]=
+3|0),e=((a-1)/3|0)+1<<2,k=e+=b?((e-1)/76|0)<<1:0,m=[];0<k--;)m.push(0);for(var n=0,x=0,z=0;n<d;)k=(c[n++]&255)<<16|(c[n++]&255)<<8|c[n++]&255,m[x++]=f.CA_$LI$()[k>>>18&63].charCodeAt(0),m[x++]=f.CA_$LI$()[k>>>12&63].charCodeAt(0),m[x++]=f.CA_$LI$()[k>>>6&63].charCodeAt(0),m[x++]=f.CA_$LI$()[k&63].charCodeAt(0),b&&19===++z&&x<e-2&&(m[x++]=13,m[x++]=10,z=0);n=a-d;0<n&&(k=(c[d]&255)<<10|(2===n?(c[a-1]&255)<<2:0),m[e-4]=f.CA_$LI$()[k>>12].charCodeAt(0),m[e-3]=f.CA_$LI$()[k>>>6&63].charCodeAt(0),m[e-2]=
2===n?f.CA_$LI$()[k&63].charCodeAt(0):61,m[e-1]=61);return m};f.decode$byte_A=function(c){for(var b=c.length,a=0,d=0;d<b;d++)0>f.IA_$LI$()[c[d]&255]&&a++;if(0!==(b-a)%4)return null;for(var e=0,d=b;1<d&&0>=f.IA_$LI$()[c[--d]&255];)61==c[d]&&e++;d=b=(6*(b-a)>>3)-e;for(a=[];0<d--;)a.push(0);for(var k=e=0;k<b;){for(var m=d=0;4>m;m++){var n=f.IA_$LI$()[c[e++]&255];0<=n?d|=n<<18-6*m:m--}a[k++]=d>>16|0;k<b&&(a[k++]=d>>8|0,k<b&&(a[k++]=d|0))}return a};f.decodeFast$byte_A=function(c){var b=c.length;if(0===
-b)return[];for(var a=0,d=b-1;a<d&&0>f.IA_$LI$()[c[a]&255];)a++;for(;0<d&&0>f.IA_$LI$()[c[d]&255];)d--;for(var e=61==c[d]?61==c[d-1]?2:1:0,k=d-a+1,m=76<b?(13==c[76]?k/78|0:0)<<1:0,n=k=(6*(k-m)>>3)-e,b=[];0<n--;)b.push(0);for(var x=n=0,C=3*(k/3|0);n<C;){var F=f.IA_$LI$()[c[a++]]<<18|f.IA_$LI$()[c[a++]]<<12|f.IA_$LI$()[c[a++]]<<6|f.IA_$LI$()[c[a++]];b[n++]=F>>16|0;b[n++]=F>>8|0;b[n++]=F|0;0<m&&19===++x&&(a+=2,x=0)}if(n<k){for(m=F=0;a<=d-e;m++)F|=f.IA_$LI$()[c[a++]]<<18-6*m;for(c=16;n<k;c-=8)b[n++]=F>>
+b)return[];for(var a=0,d=b-1;a<d&&0>f.IA_$LI$()[c[a]&255];)a++;for(;0<d&&0>f.IA_$LI$()[c[d]&255];)d--;for(var e=61==c[d]?61==c[d-1]?2:1:0,k=d-a+1,m=76<b?(13==c[76]?k/78|0:0)<<1:0,n=k=(6*(k-m)>>3)-e,b=[];0<n--;)b.push(0);for(var x=n=0,z=3*(k/3|0);n<z;){var F=f.IA_$LI$()[c[a++]]<<18|f.IA_$LI$()[c[a++]]<<12|f.IA_$LI$()[c[a++]]<<6|f.IA_$LI$()[c[a++]];b[n++]=F>>16|0;b[n++]=F>>8|0;b[n++]=F|0;0<m&&19===++x&&(a+=2,x=0)}if(n<k){for(m=F=0;a<=d-e;m++)F|=f.IA_$LI$()[c[a++]]<<18-6*m;for(c=16;n<k;c-=8)b[n++]=F>>
c|0}return b};f.encodeToString=function(c,b,a){return f.encodeToChar(c,b,a).join("")};f.decode$java_lang_String=function(c){var b=null!=c?c.length:0;if(0===b)return[];for(var a=0,d=0;d<b;d++)0>f.IA_$LI$()[c.charAt(d).charCodeAt(0)]&&a++;if(0!==(b-a)%4)return null;for(var e=0,d=b;1<d&&0>=f.IA_$LI$()[c.charAt(--d).charCodeAt(0)];)61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(d))&&e++;for(var b=(6*(b-a)>>3)-e,a=function(a){for(var b=[];0<a--;)b.push(0);return b}(b),k=e=0;k<b;){for(var m=
d=0;4>m;m++){var n=f.IA_$LI$()[c.charAt(e++).charCodeAt(0)];0<=n?d|=n<<18-6*m:m--}a[k++]=d>>16|0;k<b&&(a[k++]=d>>8|0,k<b&&(a[k++]=d|0))}return a};f.decodeFast$java_lang_String=function(c){var b=c.length;if(0===b)return[];for(var a=0,d=b-1;a<d&&0>f.IA_$LI$()[function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(a))&255];)a++;for(;0<d&&0>f.IA_$LI$()[function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(d))&255];)d--;for(var e=61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(d))?
-61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(d-1))?2:1:0,k=d-a+1,m=76<b?(13==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(76))?k/78|0:0)<<1:0,k=(6*(k-m)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(k),n=0,x=0,C=3*(k/3|0);n<C;){var F=f.IA_$LI$()[c.charAt(a++).charCodeAt(0)]<<18|f.IA_$LI$()[c.charAt(a++).charCodeAt(0)]<<12|f.IA_$LI$()[c.charAt(a++).charCodeAt(0)]<<6|f.IA_$LI$()[c.charAt(a++).charCodeAt(0)];b[n++]=F>>16|0;b[n++]=F>>8|0;b[n++]=
+61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(d-1))?2:1:0,k=d-a+1,m=76<b?(13==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(76))?k/78|0:0)<<1:0,k=(6*(k-m)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(k),n=0,x=0,z=3*(k/3|0);n<z;){var F=f.IA_$LI$()[c.charAt(a++).charCodeAt(0)]<<18|f.IA_$LI$()[c.charAt(a++).charCodeAt(0)]<<12|f.IA_$LI$()[c.charAt(a++).charCodeAt(0)]<<6|f.IA_$LI$()[c.charAt(a++).charCodeAt(0)];b[n++]=F>>16|0;b[n++]=F>>8|0;b[n++]=
F|0;0<m&&19===++x&&(a+=2,x=0)}if(n<k){for(m=F=0;a<=d-e;m++)F|=f.IA_$LI$()[c.charAt(a++).charCodeAt(0)]<<18-6*m;for(c=16;n<k;c-=8)b[n++]=F>>c|0}return b};return f}();k.__static_initialized=!1;m.mxBase64=k;k.__class="com.mxgraph.online.mxBase64"})(n.online||(n.online={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));com.mxgraph.online.mxBase64.IA_$LI$();com.mxgraph.online.mxBase64.CA_$LI$();com.mxgraph.online.mxBase64.__static_initialize();com.mxgraph.io.vsdx.VsdxShape.__com_mxgraph_io_vsdx_VsdxShape_LOGGER_$LI$();
com.mxgraph.io.vsdx.VsdxShape.arrowTypes_$LI$();com.mxgraph.io.vsdx.VsdxShape.arrowSizes_$LI$();com.mxgraph.io.vsdx.VsdxShape.OFFSET_ARRAY_$LI$();com.mxgraph.io.vsdx.VsdxShape.__static_initialize();com.mxgraph.io.vsdx.Shape.UNICODE_LINE_SEP_$LI$();com.mxgraph.io.vsdx.Style.lineDashPatterns_$LI$();com.mxgraph.io.vsdx.Style.styleTypes_$LI$();com.mxgraph.io.vsdx.Style.__static_initialize();com.mxgraph.online.Constants.MAX_AREA_$LI$();com.mxgraph.io.vsdx.theme.Color.NONE_$LI$();com.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();
com.mxgraph.io.vsdx.mxVsdxTheme.colorIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.themesIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.__static_initialize();com.mxgraph.io.vsdx.mxVsdxConstants.MY_SET_$LI$();com.mxgraph.io.vsdx.mxVsdxConstants.SET_VALUES_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.defaultColors_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.__static_initialize();com.mxgraph.io.mxVsdxCodec.vsdxPlaceholder_$LI$();com.mxgraph.io.mxVsdxCodec.parsererrorNS_$LI$();
EditorUi.prototype.doImportVisio=function(c,n,m,k){k=k||c.name;null!=k&&/(\.vs(x|sx?))($|\?)/i.test(k)?(new com.mxgraph.io.mxVssxCodec(this)).decodeVssx(c,n,null,m):(new com.mxgraph.io.mxVsdxCodec(this)).decodeVsdx(c,n,null,m)};function mxGraphMlCodec(){this.cachedRefObj={}}mxGraphMlCodec.prototype.refRegexp=/^\{y\:GraphMLReference\s+(\d+)\}$/;mxGraphMlCodec.prototype.staticRegexp=/^\{x\:Static\s+(.+)\.(.+)\}$/;
-mxGraphMlCodec.prototype.decode=function(c,n,m){try{var k=mxUtils.parseXml(c),f=this.getDirectChildNamedElements(k.documentElement,mxGraphMlConstants.GRAPH);this.initializeKeys(k.documentElement);c='<?xml version="1.0" encoding="UTF-8"?><mxfile>';for(k=0;k<f.length;k++){var e=f[k],b=this.createMxGraph(),a=b.getModel();a.beginUpdate();try{for(this.nodesMap={},this.edges=[],this.importGraph(e,b,b.getDefaultParent()),k=0;k<this.edges.length;k++)for(var d=this.edges[k],h=d.edges,p=d.parent,y=d.dx,z=d.dy,
-x=0;x<h.length;x++)this.importEdge(h[x],b,p,y,z)}catch(ba){throw console.log(ba),ba;}finally{a.endUpdate()}a.beginUpdate();try{var C=b.getModel().cells,F;for(F in C){var A=C[F];if(A.edge&&0<A.getChildCount())for(k=0;k<A.getChildCount();k++){var B=A.children[k].geometry;if(B.adjustIt){var G=b.view.getState(A),D=G.absolutePoints,Z=D[0],Y=D[D.length-1],aa=B.x,L=B.y,y=Y.x-Z.x,z=Y.y-Z.y,S=Z.x+aa*y,U=Z.y+aa*z,da=Math.sqrt(y*y+z*z),y=y/da,z=z/da,S=S-L*z,U=U+L*y,ka=b.view.getRelativePoint(G,S,U);B.x=ka.x;
-B.y=ka.y}}}}catch(ba){throw console.log(ba),ba;}finally{a.endUpdate()}c+=this.processPage(b,k+1)}n&&n(c+"</mxfile>")}catch(ba){m&&m(ba)}};
+mxGraphMlCodec.prototype.decode=function(c,n,m){try{var k=mxUtils.parseXml(c),f=this.getDirectChildNamedElements(k.documentElement,mxGraphMlConstants.GRAPH);this.initializeKeys(k.documentElement);c='<?xml version="1.0" encoding="UTF-8"?><mxfile>';for(k=0;k<f.length;k++){var e=f[k],b=this.createMxGraph(),a=b.getModel();a.beginUpdate();try{for(this.nodesMap={},this.edges=[],this.importGraph(e,b,b.getDefaultParent()),k=0;k<this.edges.length;k++)for(var d=this.edges[k],g=d.edges,p=d.parent,y=d.dx,A=d.dy,
+x=0;x<g.length;x++)this.importEdge(g[x],b,p,y,A)}catch(ia){throw console.log(ia),ia;}finally{a.endUpdate()}a.beginUpdate();try{var z=b.getModel().cells,F;for(F in z){var B=z[F];if(B.edge&&0<B.getChildCount())for(k=0;k<B.getChildCount();k++){var C=B.children[k].geometry;if(C.adjustIt){var G=b.view.getState(B),D=G.absolutePoints,Z=D[0],Y=D[D.length-1],aa=C.x,L=C.y,y=Y.x-Z.x,A=Y.y-Z.y,S=Z.x+aa*y,U=Z.y+aa*A,da=Math.sqrt(y*y+A*A),y=y/da,A=A/da,S=S-L*A,U=U+L*y,ba=b.view.getRelativePoint(G,S,U);C.x=ba.x;
+C.y=ba.y}}}}catch(ia){throw console.log(ia),ia;}finally{a.endUpdate()}c+=this.processPage(b,k+1)}n&&n(c+"</mxfile>")}catch(ia){m&&m(ia)}};
mxGraphMlCodec.prototype.initializeKeys=function(c){var n=this.getDirectChildNamedElements(c,mxGraphMlConstants.KEY);this.nodesKeys={};this.edgesKeys={};this.portsKeys={};this.sharedData={};this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY]={};this.nodesKeys[mxGraphMlConstants.USER_TAGS]={};this.nodesKeys[mxGraphMlConstants.NODE_STYLE]={};this.nodesKeys[mxGraphMlConstants.NODE_LABELS]={};this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS]={};this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY]={};this.edgesKeys[mxGraphMlConstants.EDGE_STYLE]=
{};this.edgesKeys[mxGraphMlConstants.EDGE_LABELS]={};this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER]={};this.portsKeys[mxGraphMlConstants.PORT_STYLE]={};this.portsKeys[mxGraphMlConstants.PORT_VIEW_STATE]={};for(var m,k=0;k<n.length;k++){var f=this.dataElem2Obj(n[k]),e=f[mxGraphMlConstants.ID],b=f[mxGraphMlConstants.KEY_FOR],a=f[mxGraphMlConstants.KEY_NAME],d=f[mxGraphMlConstants.KEY_YTYPE];a==mxGraphMlConstants.SHARED_DATA&&(m=e);a=a?a:d;switch(b){case mxGraphMlConstants.NODE:this.nodesKeys[a]=
{key:e,keyObj:f};break;case mxGraphMlConstants.EDGE:this.edgesKeys[a]={key:e,keyObj:f};break;case mxGraphMlConstants.PORT:this.portsKeys[a]={key:e,keyObj:f};break;case mxGraphMlConstants.ALL:f={key:e,keyObj:f},this.nodesKeys[a]=f,this.edgesKeys[a]=f,this.portsKeys[a]=f}}c=this.getDirectChildNamedElements(c,mxGraphMlConstants.DATA);for(k=0;k<c.length;k++)if(c[k].getAttribute(mxGraphMlConstants.KEY)==m)for(b=this.getDirectChildNamedElements(c[k],mxGraphMlConstants.Y_SHARED_DATA),n=0;n<b.length;n++)for(a=
@@ -1263,21 +1266,21 @@ break;case "bpmnOutline":b=mxGraphMlShapesMap.bpmnOutline[e.toLowerCase()];break
mxGraphMlCodec.prototype.importGraph=function(c,n,m){for(var k=this.getDirectChildNamedElements(c,mxGraphMlConstants.NODE),f=m,e=0,b=0;f&&f.geometry;)e+=f.geometry.x,b+=f.geometry.y,f=f.parent;for(f=0;f<k.length;f++)this.importNode(k[f],n,m,e,b);this.edges.push({edges:this.getDirectChildNamedElements(c,mxGraphMlConstants.EDGE),parent:m,dx:e,dy:b})};
mxGraphMlCodec.prototype.importPort=function(c,n){for(var m=c.getAttribute(mxGraphMlConstants.PORT_NAME),k={},f=this.getDirectChildNamedElements(c,mxGraphMlConstants.DATA),e=0;e<f.length;e++){var b=f[e];b.getAttribute(mxGraphMlConstants.KEY);b=this.dataElem2Obj(b);b.key==this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER].key&&this.mapObject(b,{"y:FreeNodePortLocationModelParameter.Ratio":function(a,b){var c=a.split(",");b.pos={x:c[0],y:c[1]}}},k)}n[m]=k};
mxGraphMlCodec.prototype.styleMap2Str=function(c){var n="",m="",k;for(k in c)m+=n+k+"="+c[k],n=";";return m};
-mxGraphMlCodec.prototype.importNode=function(c,n,m,k,f){var e=this.getDirectChildNamedElements(c,mxGraphMlConstants.DATA),b=c.getAttribute(mxGraphMlConstants.ID),a=new mxCell;a.vertex=!0;a.geometry=new mxGeometry(0,0,30,30);n.addCell(a,m);m={graphMlID:b};for(var d=null,h=null,p=null,y=null,z=0;z<e.length;z++){var x=this.dataElem2Obj(e[z]);if(x.key)if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY].key)this.addNodeGeo(a,x,k,f);else if(x.key==this.nodesKeys[mxGraphMlConstants.USER_TAGS].key)p=
-x;else if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_STYLE].key)d=x,x["yjs:StringTemplateNodeStyle"]?h=x["yjs:StringTemplateNodeStyle"]["#text"]:this.addNodeStyle(a,x,m);else if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_LABELS].key)y=x;else if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS].key){var C=d=null;for(C in x)if("key"!=C&&"#text"!=C){if("y:ProxyAutoBoundsNode"==C){if(C=x[C]["y:Realizers"])for(var F in C)if("active"!=F&&"#text"!=F){d=C[F][C.active];x={};x[F]=d;break}}else d=
-x[C];break}d&&(d[mxGraphMlConstants.GEOMETRY]&&this.addNodeGeo(a,d[mxGraphMlConstants.GEOMETRY],k,f),d[mxGraphMlConstants.NODE_LABEL]&&(y=d[mxGraphMlConstants.NODE_LABEL]));d=x;this.addNodeStyle(a,x,m)}}f=this.getDirectChildNamedElements(c,mxGraphMlConstants.PORT);k={};for(z=0;z<f.length;z++)this.importPort(f[z],k);h&&this.handleTemplates(h,p,a,m);this.handleFixedRatio(a,m);this.handleCompoundShape(a,m,d,null);0==m.strokeWidth&&(m.strokeColor="none");a.style=this.styleMap2Str(m);c=this.getDirectChildNamedElements(c,
-mxGraphMlConstants.GRAPH);for(z=0;z<c.length;z++)this.importGraph(c[z],n,a,k);y&&this.addLabels(a,y,m,n);this.nodesMap[b]={node:a,ports:k}};
+mxGraphMlCodec.prototype.importNode=function(c,n,m,k,f){var e=this.getDirectChildNamedElements(c,mxGraphMlConstants.DATA),b=c.getAttribute(mxGraphMlConstants.ID),a=new mxCell;a.vertex=!0;a.geometry=new mxGeometry(0,0,30,30);n.addCell(a,m);m={graphMlID:b};for(var d=null,g=null,p=null,y=null,A=0;A<e.length;A++){var x=this.dataElem2Obj(e[A]);if(x.key)if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY].key)this.addNodeGeo(a,x,k,f);else if(x.key==this.nodesKeys[mxGraphMlConstants.USER_TAGS].key)p=
+x;else if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_STYLE].key)d=x,x["yjs:StringTemplateNodeStyle"]?g=x["yjs:StringTemplateNodeStyle"]["#text"]:this.addNodeStyle(a,x,m);else if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_LABELS].key)y=x;else if(x.key==this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS].key){var z=d=null;for(z in x)if("key"!=z&&"#text"!=z){if("y:ProxyAutoBoundsNode"==z){if(z=x[z]["y:Realizers"])for(var F in z)if("active"!=F&&"#text"!=F){d=z[F][z.active];x={};x[F]=d;break}}else d=
+x[z];break}d&&(d[mxGraphMlConstants.GEOMETRY]&&this.addNodeGeo(a,d[mxGraphMlConstants.GEOMETRY],k,f),d[mxGraphMlConstants.NODE_LABEL]&&(y=d[mxGraphMlConstants.NODE_LABEL]));d=x;this.addNodeStyle(a,x,m)}}f=this.getDirectChildNamedElements(c,mxGraphMlConstants.PORT);k={};for(A=0;A<f.length;A++)this.importPort(f[A],k);g&&this.handleTemplates(g,p,a,m);this.handleFixedRatio(a,m);this.handleCompoundShape(a,m,d,null);0==m.strokeWidth&&(m.strokeColor="none");a.style=this.styleMap2Str(m);c=this.getDirectChildNamedElements(c,
+mxGraphMlConstants.GRAPH);for(A=0;A<c.length;A++)this.importGraph(c[A],n,a,k);y&&this.addLabels(a,y,m,n);this.nodesMap[b]={node:a,ports:k}};
mxGraphMlCodec.prototype.addNodeStyle=function(c,n,m){c=function(a,b){if("line"!=a){b.dashed=1;var c;switch(a){case "DashDot":c="3 1 1 1";break;case "Dot":c="1 1";break;case "DashDotDot":c="3 1 1 1 1 1";break;case "Dash":c="3 1";break;case "dotted":c="1 3";break;case "dashed":c="5 2";break;default:c=a.replace(/0/g,"1")}c&&(0>c.indexOf(" ")&&(c=c+" "+c),b.dashPattern=c)}};c={shape:{key:"shape",mod:"shape"},"y:Shape.type":{key:"shape",mod:"shape"},configuration:{key:"shape",mod:"shape"},type:{key:"shape",
mod:"shape"},assetName:{key:"shape",mod:"shape"},activityType:{key:"shape",mod:"shape"},fill:{key:"fillColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"},"fill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"y:Fill":{color:{key:"fillColor",mod:"color"},transparent:function(a,b){"true"==a&&(b.fillColor="none")}},"y:BorderStyle":{color:{key:"strokeColor",mod:"color"},width:"strokeWidth",hasColor:function(a,b){"false"==a&&(b.strokeColor="none")},
type:c},stroke:{key:"strokeColor",mod:"color"},"stroke.yjs:Stroke":{dashStyle:c,"dashStyle.yjs:DashStyle.dashes":c,fill:{key:"strokeColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"strokeColor",mod:"color"},"thickness.sys:Double":"strokeWidth",thickness:"strokeWidth"}};var k=mxUtils.clone(c);k.defaults={fillColor:"#CCCCCC",strokeColor:"#6881B3"};var f=mxUtils.clone(c);f.defaults={shape:"ext;rounded=1",fillColor:"#FFFFFF",strokeColor:"#000090"};var e=mxUtils.clone(c);e.defaults={shape:"rhombus;fillColor=#FFFFFF;strokeColor=#FFCD28"};
-var b=mxUtils.clone(c);b.defaults={shape:"hexagon",strokeColor:"#007000"};var a=mxUtils.clone(c);a.defaults={shape:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=general",outline:"standard"};a.characteristic={key:"outline",mod:"bpmnOutline"};var d=mxUtils.clone(c);d.defaults={shape:"js:bpmnDataObject"};var h=mxUtils.clone(c);h.defaults={shape:"datastore"};var p=mxUtils.clone(c);p.defaults={shape:"swimlane;swimlaneLine=0;startSize=20;dashed=1;dashPattern=3 1 1 1;collapsible=0;rounded=1"};var y=
-mxUtils.clone(c);y.defaults={shape:"js:BpmnChoreography"};var z=mxUtils.clone(c);z.defaults={rounded:"1",glass:"1",strokeColor:"#FFFFFF"};z.inset="strokeWidth";z.radius="arcSize";z.drawShadow={key:"shadow",mod:"bool"};z.color={key:"fillColor",mod:"color",addGradient:"north"};z["color.yjs:Color.value"]=z.color;var x=mxUtils.clone(c);x.defaults={rounded:"1",arcSize:10,glass:"1",shadow:"1",strokeColor:"none"};x.drawShadow={key:"shadow",mod:"bool"};var C=mxUtils.clone(c);C.defaults={shape:"swimlane",
-startSize:20,strokeWidth:4,spacingLeft:10};C.isCollapsible={key:"collapsible",mod:"bool"};C.borderColor={key:"strokeColor",mod:"color"};C.folderFrontColor={key:"fillColor",mod:"color"};var F=mxUtils.clone(c);F.defaults={shape:"swimlane",startSize:20,spacingLeft:10};F["yjs:PanelNodeStyle"]={color:{key:"swimlaneFillColor",mod:"color"},"color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},labelInsetsColor:{key:"fillColor",mod:"color"},"labelInsetsColor.yjs:Color.value":{key:"fillColor",mod:"color"}};
-var A=mxUtils.clone(c);A.defaults={shape:"js:table"};var B=mxUtils.clone(c);B.defaults={shape:"image"};B.image=function(a,b){b.image=a};var G=mxUtils.clone(c);G.defaults={shape:"image"};G["y:SVGModel.y:SVGContent.y:Resource.#text"]=function(a,b){b.image="data:image/svg+xml,"+(window.btoa?btoa(a):Base64.encode(a))};var D=mxUtils.clone(c);D.defaults={shape:"swimlane",startSize:20};D["y:Shape.type"]=function(a,b){"roundrectangle"==a&&(b.rounded=1,b.arcSize=5)};var Z=mxUtils.clone(c);Z.defaults={shape:"js:table2"};
+var b=mxUtils.clone(c);b.defaults={shape:"hexagon",strokeColor:"#007000"};var a=mxUtils.clone(c);a.defaults={shape:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=general",outline:"standard"};a.characteristic={key:"outline",mod:"bpmnOutline"};var d=mxUtils.clone(c);d.defaults={shape:"js:bpmnDataObject"};var g=mxUtils.clone(c);g.defaults={shape:"datastore"};var p=mxUtils.clone(c);p.defaults={shape:"swimlane;swimlaneLine=0;startSize=20;dashed=1;dashPattern=3 1 1 1;collapsible=0;rounded=1"};var y=
+mxUtils.clone(c);y.defaults={shape:"js:BpmnChoreography"};var A=mxUtils.clone(c);A.defaults={rounded:"1",glass:"1",strokeColor:"#FFFFFF"};A.inset="strokeWidth";A.radius="arcSize";A.drawShadow={key:"shadow",mod:"bool"};A.color={key:"fillColor",mod:"color",addGradient:"north"};A["color.yjs:Color.value"]=A.color;var x=mxUtils.clone(c);x.defaults={rounded:"1",arcSize:10,glass:"1",shadow:"1",strokeColor:"none"};x.drawShadow={key:"shadow",mod:"bool"};var z=mxUtils.clone(c);z.defaults={shape:"swimlane",
+startSize:20,strokeWidth:4,spacingLeft:10};z.isCollapsible={key:"collapsible",mod:"bool"};z.borderColor={key:"strokeColor",mod:"color"};z.folderFrontColor={key:"fillColor",mod:"color"};var F=mxUtils.clone(c);F.defaults={shape:"swimlane",startSize:20,spacingLeft:10};F["yjs:PanelNodeStyle"]={color:{key:"swimlaneFillColor",mod:"color"},"color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},labelInsetsColor:{key:"fillColor",mod:"color"},"labelInsetsColor.yjs:Color.value":{key:"fillColor",mod:"color"}};
+var B=mxUtils.clone(c);B.defaults={shape:"js:table"};var C=mxUtils.clone(c);C.defaults={shape:"image"};C.image=function(a,b){b.image=a};var G=mxUtils.clone(c);G.defaults={shape:"image"};G["y:SVGModel.y:SVGContent.y:Resource.#text"]=function(a,b){b.image="data:image/svg+xml,"+(window.btoa?btoa(a):Base64.encode(a))};var D=mxUtils.clone(c);D.defaults={shape:"swimlane",startSize:20};D["y:Shape.type"]=function(a,b){"roundrectangle"==a&&(b.rounded=1,b.arcSize=5)};var Z=mxUtils.clone(c);Z.defaults={shape:"js:table2"};
var Y=mxUtils.clone(c);Y.defaults={gradientDirection:"east"};Y["y:Fill"].color2={key:"gradientColor",mod:"color"};Y["y:StyleProperties.y:Property"]={"com.yworks.bpmn.characteristic":{key:"outline",mod:"bpmnOutline"},"com.yworks.bpmn.icon.fill":{key:"gradientColor",mod:"color"},"com.yworks.bpmn.icon.fill2":{key:"fillColor",mod:"color"},"com.yworks.bpmn.type":{key:"symbol",mod:"bpmnSymbol"},"y.view.ShadowNodePainter.SHADOW_PAINTING":{key:"shadow",mod:"bool"},doubleBorder:{key:"double",mod:"bool"},"com.yworks.sbgn.style.radius":{key:"arcSize",
-mod:"scale",scale:2},"com.yworks.sbgn.style.inverse":{key:"flipV",mod:"bool"}};this.mapObject(n,{"yjs:ShapeNodeStyle":c,"demostyle:FlowchartNodeStyle":c,"demostyle:AssetNodeStyle":k,"bpmn:ActivityNodeStyle":f,"bpmn:GatewayNodeStyle":e,"bpmn:ConversationNodeStyle":b,"bpmn:EventNodeStyle":a,"bpmn:DataObjectNodeStyle":d,"bpmn:DataStoreNodeStyle":h,"bpmn:GroupNodeStyle":p,"bpmn:ChoreographyNodeStyle":y,"yjs:BevelNodeStyle":z,"yjs:ShinyPlateNodeStyle":x,"demostyle:DemoGroupStyle":C,"yjs:CollapsibleNodeStyleDecorator":F,
-"bpmn:PoolNodeStyle":A,"yjs:TableNodeStyle":A,"demotablestyle:DemoTableStyle":A,"yjs:ImageNodeStyle":B,"y:ShapeNode":c,"y:GenericNode":Y,"y:GenericGroupNode":Y,"y:TableNode":Z,"y:SVGNode":G,"y:GroupNode":D},m)};
-mxGraphMlCodec.prototype.handleTemplates=function(c,n,m,k){if(c){for(var f=m.geometry.width,e=m.geometry.height,b='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 '+f+" "+e+'"><g>',a,d=[],h=/\{TemplateBinding\s+([^}]+)\}/g;null!=(a=h.exec(c));){var p="";switch(a[1]){case "width":p=f;break;case "height":p=e}d.push({match:a[0],repl:p})}if(n&&n["y:Json"])for(e=JSON.parse(n["y:Json"]["#text"]),h=/\{Binding\s+([^}]+)\}/g;null!=(a=h.exec(c));)if(p=a[1].split(","),
+mod:"scale",scale:2},"com.yworks.sbgn.style.inverse":{key:"flipV",mod:"bool"}};this.mapObject(n,{"yjs:ShapeNodeStyle":c,"demostyle:FlowchartNodeStyle":c,"demostyle:AssetNodeStyle":k,"bpmn:ActivityNodeStyle":f,"bpmn:GatewayNodeStyle":e,"bpmn:ConversationNodeStyle":b,"bpmn:EventNodeStyle":a,"bpmn:DataObjectNodeStyle":d,"bpmn:DataStoreNodeStyle":g,"bpmn:GroupNodeStyle":p,"bpmn:ChoreographyNodeStyle":y,"yjs:BevelNodeStyle":A,"yjs:ShinyPlateNodeStyle":x,"demostyle:DemoGroupStyle":z,"yjs:CollapsibleNodeStyleDecorator":F,
+"bpmn:PoolNodeStyle":B,"yjs:TableNodeStyle":B,"demotablestyle:DemoTableStyle":B,"yjs:ImageNodeStyle":C,"y:ShapeNode":c,"y:GenericNode":Y,"y:GenericGroupNode":Y,"y:TableNode":Z,"y:SVGNode":G,"y:GroupNode":D},m)};
+mxGraphMlCodec.prototype.handleTemplates=function(c,n,m,k){if(c){for(var f=m.geometry.width,e=m.geometry.height,b='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 '+f+" "+e+'"><g>',a,d=[],g=/\{TemplateBinding\s+([^}]+)\}/g;null!=(a=g.exec(c));){var p="";switch(a[1]){case "width":p=f;break;case "height":p=e}d.push({match:a[0],repl:p})}if(n&&n["y:Json"])for(e=JSON.parse(n["y:Json"]["#text"]),g=/\{Binding\s+([^}]+)\}/g;null!=(a=g.exec(c));)if(p=a[1].split(","),
f=e[p[0]]){if(1<p.length&&p[1].indexOf("Converter=")){var y=mxGraphMlConverters[p[1].substr(11)];y&&(arguments=[f],p[2]&&arguments.push(p[2].substr(11)),f=y.apply(null,arguments))}d.push({match:a[0],repl:mxUtils.htmlEntities(f)})}for(a=0;a<d.length;a++)c=c.replace(d[a].match,d[a].repl);d=[];for(e=/\<text.+data-content="([^"]+).+\<\/text\>/g;null!=(a=e.exec(c));)f=a[0].substr(0,a[0].length-7)+a[1]+"</text>",d.push({match:a[0],repl:f});for(a=0;a<d.length;a++)c=c.replace(d[a].match,d[a].repl);b=b+c+
"</g></svg>";k.shape="image";k.image="data:image/svg+xml,"+(window.btoa?btoa(b):Base64.encode(b))}};
mxGraphMlCodec.prototype.handleCompoundShape=function(c,n,m,k){var f=n.shape;if(f&&0==f.indexOf("js:")){switch(f){case "js:bpmnArtifactShadow":n.shadow="1";case "js:bpmnArtifact":n.shape=n.symbol;delete n.fillColor;delete n.strokeColor;delete n.gradientColor;this.handleCompoundShape(c,n,m,k);break;case "js:bpmnDataObjectShadow":case "js:bpmnDataObject":n.shape="note;size=16";m=m["bpmn:DataObjectNodeStyle"]||m["y:GenericNode"]||m["y:GenericGroupNode"];k={};this.mapObject(m,{"y:StyleProperties.y:Property":{"com.yworks.bpmn.dataObjectType":"dataObjectType",
@@ -1290,45 +1293,45 @@ new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.script_task;"),b.geo
new mxPoint(m,-20);var d=new mxCell("",new mxGeometry(.5,.5,8,1),"shape=rect;part=1;");d.geometry.offset=new mxPoint(-4,-1);d.geometry.relative=!0;d.vertex=!0;b.insert(d);break;case "bpmn_marker_loop":b=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");b.geometry.offset=new mxPoint(m,-20);break;case "bpmn_marker_parallel":b=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");b.geometry.offset=new mxPoint(m,-20);break;case "bpmn_marker_sequential":b=new mxCell("",
new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");b.geometry.offset=new mxPoint(m,-20);break;case "bpmn_marker_ad_hoc":b=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;fillColor=#000000");b.geometry.offset=new mxPoint(m,-17);break;case "bpmn_marker_compensation":b=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),b.geometry.offset=new mxPoint(m,-18)}b.geometry.relative=!0;b.vertex=!0;c.insert(b);
m+=20}break;case "js:table":n.shape="swimlane;collapsible=0;swimlaneLine=0";k=m["yjs:TableNodeStyle"]||m["demotablestyle:DemoTableStyle"];!k&&m["bpmn:PoolNodeStyle"]&&(k=m["bpmn:PoolNodeStyle"]["yjs:TableNodeStyle"]);this.mapObject(k,{"backgroundStyle.demotablestyle:TableBackgroundStyle":{"insetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableBackgroundFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},"tableBackgroundStroke.yjs:Stroke":{fill:{key:"strokeColor",
-mod:"color"},thickness:"strokeWidth"}},"backgroundStyle.yjs:ShapeNodeStyle.fill":{key:"fillColor",mod:"color"},"backgroundStyle.yjs:ShapeNodeStyle.fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"}},n);n.swimlaneFillColor=n.fillColor;k=k.table["y:Table"];var h=a=0,p={x:0};m=0;(e=k.Insets)?(e=e.split(","),"0"!=e[0]?(n.startSize=e[0],p.x=parseFloat(e[0]),n.horizontal="0"):"0"!=e[1]&&(n.startSize=e[1],m=parseFloat(e[1]),h+=m)):n.startSize="0";var y={},z={Insets:function(a,b){b.startSize=a.split(",")[0]},
+mod:"color"},thickness:"strokeWidth"}},"backgroundStyle.yjs:ShapeNodeStyle.fill":{key:"fillColor",mod:"color"},"backgroundStyle.yjs:ShapeNodeStyle.fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"}},n);n.swimlaneFillColor=n.fillColor;k=k.table["y:Table"];var g=a=0,p={x:0};m=0;(e=k.Insets)?(e=e.split(","),"0"!=e[0]?(n.startSize=e[0],p.x=parseFloat(e[0]),n.horizontal="0"):"0"!=e[1]&&(n.startSize=e[1],m=parseFloat(e[1]),g+=m)):n.startSize="0";var y={},A={Insets:function(a,b){b.startSize=a.split(",")[0]},
"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",mod:"color"},backgroundFill:{key:"oddLaneFill",mod:"color"}}},"Style.yjs:NodeStyleStripeStyleAdapter":{"demotablestyle:DemoStripeStyle":{"stripeInsetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableLineFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"strokeColor",
-mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"height"};this.mapObject(k.RowDefaults,{defaults:{shape:"swimlane;collapsible=0;horizontal=0",startSize:"0"},"y:StripeDefaults":z},y);b={};d={Insets:function(a,b){b.startSize=a.split(",")[1]},"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",
+mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"height"};this.mapObject(k.RowDefaults,{defaults:{shape:"swimlane;collapsible=0;horizontal=0",startSize:"0"},"y:StripeDefaults":A},y);b={};d={Insets:function(a,b){b.startSize=a.split(",")[1]},"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",
mod:"color"},backgroundFill:{key:"oddLaneFill",mod:"color"}}},"Style.yjs:NodeStyleStripeStyleAdapter":{"demotablestyle:DemoStripeStyle":{"stripeInsetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableLineFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"strokeColor",mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"width"};this.mapObject(k.ColumnDefaults,{defaults:{shape:"swimlane;collapsible=0",startSize:"0",fillColor:"none"},
-"y:StripeDefaults":d},b);var e=c.geometry,a=k.Rows["y:Row"],h=h+parseFloat(b.startSize),x=p.x,C=p.x;p.lx=p.x;if(a)for(a instanceof Array||(a=[a]),e=0;e<a.length;e++)p.x=C,p.lx=C,h=this.addRow(a[e],c,e&1,h,p,z,y),x=Math.max(p.x,x);k=k.Columns["y:Column"];a=x;if(k)for(k instanceof Array||(k=[k]),e=0;e<k.length;e++)a=this.addColumn(k[e],c,e&1,a,m,d,b);break;case "js:table2":n.shape="swimlane;collapsible=0;swimlaneLine=0";k={};this.mapObject(m,{"y:TableNode":{"y:StyleProperties.y:Property":{"yed.table.section.color":{key:"secColor",
+"y:StripeDefaults":d},b);var e=c.geometry,a=k.Rows["y:Row"],g=g+parseFloat(b.startSize),x=p.x,z=p.x;p.lx=p.x;if(a)for(a instanceof Array||(a=[a]),e=0;e<a.length;e++)p.x=z,p.lx=z,g=this.addRow(a[e],c,e&1,g,p,A,y),x=Math.max(p.x,x);k=k.Columns["y:Column"];a=x;if(k)for(k instanceof Array||(k=[k]),e=0;e<k.length;e++)a=this.addColumn(k[e],c,e&1,a,m,d,b);break;case "js:table2":n.shape="swimlane;collapsible=0;swimlaneLine=0";k={};this.mapObject(m,{"y:TableNode":{"y:StyleProperties.y:Property":{"yed.table.section.color":{key:"secColor",
mod:"color"},"yed.table.header.height":"headerH","yed.table.header.color.main":{key:"headerColor",mod:"color"},"yed.table.header.color.alternating":{key:"headerColorAlt",mod:"color"},"yed.table.lane.color.main":{key:"laneColor",mod:"color"},"yed.table.lane.color.alternating":{key:"laneColorAlt",mod:"color"},"yed.table.lane.style":"laneStyle","com.yworks.bpmn.type":"isHorz",POOL_LANE_COLOR_ALTERNATING:{key:"laneColorAlt",mod:"color"},POOL_LANE_COLOR_MAIN:{key:"laneColor",mod:"color"},POOL_LANE_STYLE:"laneStyle",
-POOL_HEADER_COLOR_MAIN:{key:"headerColor",mod:"color"},POOL_HEADER_COLOR_ALTERNATING:{key:"headerColorAlt",mod:"color"},POOL_TABLE_SECTION_COLOR:{key:"secColor",mod:"color"}},"y:Table":{"y:DefaultColumnInsets.top":"colHHeight","y:DefaultRowInsets.left":"rowHWidth","y:Insets":{top:"tblHHeight",left:"tblHWidth"}}}},k);n.swimlaneFillColor=n.fillColor;z=b=0;"pool_type_lane_and_column"==k.isHorz||"pool_type_empty"==k.isHorz||"pool_type_lane"==k.isHorz?z=parseFloat(k.tblHWidth):b=parseFloat(k.tblHHeight);
-n.startSize=b?b:z;try{a=m["y:TableNode"]["y:Table"]["y:Rows"]["y:Row"];d=m["y:TableNode"]["y:Table"]["y:Columns"]["y:Column"];h="lane.style.rows"==k.laneStyle||"lane_style_rows"==k.laneStyle;a instanceof Array||(a=[a]);d instanceof Array||(d=[d]);p=parseFloat(k.rowHWidth);for(e=0;e<a.length;e++)a[e]["y:Insets"]&&(p=Math.max(p,parseFloat(a[e]["y:Insets"].left)+parseFloat(a[e]["y:Insets"].right)));y=parseFloat(k.colHHeight);for(e=0;e<d.length;e++)d[e]["y:Insets"]&&(y=Math.max(y,parseFloat(d[e]["y:Insets"].top)+
-parseFloat(d[e]["y:Insets"].bottom)));h?(this.addTbl2Rows(c,a,b,z,p,y,h,k),this.addTbl2Cols(c,d,b,z,p,y,h,k)):(this.addTbl2Cols(c,d,b,z,p,y,h,k),this.addTbl2Rows(c,a,b,z,p,y,h,k))}catch(F){}break;case "js:relationship_big_entity":n.shape="swimlane;startSize=30;rounded=1;arcSize=5;collapsible=0";if(c=m["y:GenericNode"]["y:Fill"])n.fillColor=c.color2,n.swimlaneFillColor=c.color;break;case "js:relationship_attribute":n.shape="1"==n["double"]?"doubleEllipse":"ellipse"}0<f.indexOf("Shadow")&&(n.shadow=
+POOL_HEADER_COLOR_MAIN:{key:"headerColor",mod:"color"},POOL_HEADER_COLOR_ALTERNATING:{key:"headerColorAlt",mod:"color"},POOL_TABLE_SECTION_COLOR:{key:"secColor",mod:"color"}},"y:Table":{"y:DefaultColumnInsets.top":"colHHeight","y:DefaultRowInsets.left":"rowHWidth","y:Insets":{top:"tblHHeight",left:"tblHWidth"}}}},k);n.swimlaneFillColor=n.fillColor;A=b=0;"pool_type_lane_and_column"==k.isHorz||"pool_type_empty"==k.isHorz||"pool_type_lane"==k.isHorz?A=parseFloat(k.tblHWidth):b=parseFloat(k.tblHHeight);
+n.startSize=b?b:A;try{a=m["y:TableNode"]["y:Table"]["y:Rows"]["y:Row"];d=m["y:TableNode"]["y:Table"]["y:Columns"]["y:Column"];g="lane.style.rows"==k.laneStyle||"lane_style_rows"==k.laneStyle;a instanceof Array||(a=[a]);d instanceof Array||(d=[d]);p=parseFloat(k.rowHWidth);for(e=0;e<a.length;e++)a[e]["y:Insets"]&&(p=Math.max(p,parseFloat(a[e]["y:Insets"].left)+parseFloat(a[e]["y:Insets"].right)));y=parseFloat(k.colHHeight);for(e=0;e<d.length;e++)d[e]["y:Insets"]&&(y=Math.max(y,parseFloat(d[e]["y:Insets"].top)+
+parseFloat(d[e]["y:Insets"].bottom)));g?(this.addTbl2Rows(c,a,b,A,p,y,g,k),this.addTbl2Cols(c,d,b,A,p,y,g,k)):(this.addTbl2Cols(c,d,b,A,p,y,g,k),this.addTbl2Rows(c,a,b,A,p,y,g,k))}catch(F){}break;case "js:relationship_big_entity":n.shape="swimlane;startSize=30;rounded=1;arcSize=5;collapsible=0";if(c=m["y:GenericNode"]["y:Fill"])n.fillColor=c.color2,n.swimlaneFillColor=c.color;break;case "js:relationship_attribute":n.shape="1"==n["double"]?"doubleEllipse":"ellipse"}0<f.indexOf("Shadow")&&(n.shadow=
"1")}};
-mxGraphMlCodec.prototype.addTbl2Rows=function(c,n,m,k,f,e,b,a){m+=e;for(var d=null!=a.isHorz,h=0;h<n.length;h++){var p=h&1,y=new mxCell;y.vertex=!0;var z={shape:"swimlane;collapsible=0;horizontal=0",startSize:f,fillColor:a.secColor||"none",swimlaneLine:d?"0":"1"};0==parseFloat(z.startSize)&&(z.fillColor="none",z.swimlaneLine="0");if(b){var x=p?a.headerColorAlt:a.headerColor;z.swimlaneFillColor=p?a.laneColorAlt:a.laneColor;z.fillColor=x?x:z.swimlaneFillColor}p=parseFloat(n[h].height);x=d&&0==h?e:0;
-y.geometry=new mxGeometry(k,m-x,c.geometry.width-k,p+x);m+=p;y.style=this.styleMap2Str(z);c.insert(y)}};
-mxGraphMlCodec.prototype.addTbl2Cols=function(c,n,m,k,f,e,b,a){k=f+k;for(var d=null!=a.isHorz,h=0;h<n.length;h++){var p=h&1,y=new mxCell;y.vertex=!0;var z={shape:"swimlane;collapsible=0",startSize:e,fillColor:a.secColor||"none",swimlaneLine:d?"0":"1"};0==parseFloat(z.startSize)&&(z.fillColor="none");if(!b){var x=p?a.headerColorAlt:a.headerColor;z.swimlaneFillColor=p?a.laneColorAlt:a.laneColor;z.fillColor=x?x:z.swimlaneFillColor}p=parseFloat(n[h].width);x=d&&0==h?f:0;y.geometry=new mxGeometry(k-x,
-m,p+x,c.geometry.height-m);k+=p;y.style=this.styleMap2Str(z);c.insert(y)}};
-mxGraphMlCodec.prototype.addRow=function(c,n,m,k,f,e,b){var a=new mxCell;a.vertex=!0;var d=mxUtils.clone(b);this.mapObject(c,e,d);m?(d.oddFill&&(d.fillColor=d.oddFill),d.oddLaneFill&&(d.swimlaneFillColor=d.oddLaneFill)):(d.evenFill&&(d.fillColor=d.evenFill),d.evenLaneFill&&(d.swimlaneFillColor=d.evenLaneFill));m=parseFloat(d.height);a.geometry=new mxGeometry(f.lx,k,n.geometry.width-f.lx,m);var h=c.Labels;h&&this.addLabels(a,h,d);a.style=this.styleMap2Str(d);n.insert(a);c=c["y:Row"];f.lx=0;d.startSize&&
-(f.lx=parseFloat(d.startSize),f.x+=f.lx);n=d=f.x;var h=f.lx,p=0;if(c){c instanceof Array||(c=[c]);for(var y=0;y<c.length;y++)f.x=d,f.lx=h,p=this.addRow(c[y],a,y&1,p,f,e,b),n=Math.max(f.x,n)}f.x=n;m=Math.max(m,p);a.geometry.height=m;return k+m};
-mxGraphMlCodec.prototype.addColumn=function(c,n,m,k,f,e,b){var a=new mxCell;a.vertex=!0;var d=mxUtils.clone(b);this.mapObject(c,e,d);m?(d.oddFill&&(d.fillColor=d.oddFill),d.oddLaneFill&&(d.swimlaneFillColor=d.oddLaneFill)):(d.evenFill&&(d.fillColor=d.evenFill),d.evenLaneFill&&(d.swimlaneFillColor=d.evenLaneFill));m=parseFloat(d.width);a.geometry=new mxGeometry(k,f,m,n.geometry.height-f);var h=c.Labels;h&&this.addLabels(a,h,d);a.style=this.styleMap2Str(d);n.insert(a);c=c["y:Column"];n=0;if(c)for(c instanceof
+mxGraphMlCodec.prototype.addTbl2Rows=function(c,n,m,k,f,e,b,a){m+=e;for(var d=null!=a.isHorz,g=0;g<n.length;g++){var p=g&1,y=new mxCell;y.vertex=!0;var A={shape:"swimlane;collapsible=0;horizontal=0",startSize:f,fillColor:a.secColor||"none",swimlaneLine:d?"0":"1"};0==parseFloat(A.startSize)&&(A.fillColor="none",A.swimlaneLine="0");if(b){var x=p?a.headerColorAlt:a.headerColor;A.swimlaneFillColor=p?a.laneColorAlt:a.laneColor;A.fillColor=x?x:A.swimlaneFillColor}p=parseFloat(n[g].height);x=d&&0==g?e:0;
+y.geometry=new mxGeometry(k,m-x,c.geometry.width-k,p+x);m+=p;y.style=this.styleMap2Str(A);c.insert(y)}};
+mxGraphMlCodec.prototype.addTbl2Cols=function(c,n,m,k,f,e,b,a){k=f+k;for(var d=null!=a.isHorz,g=0;g<n.length;g++){var p=g&1,y=new mxCell;y.vertex=!0;var A={shape:"swimlane;collapsible=0",startSize:e,fillColor:a.secColor||"none",swimlaneLine:d?"0":"1"};0==parseFloat(A.startSize)&&(A.fillColor="none");if(!b){var x=p?a.headerColorAlt:a.headerColor;A.swimlaneFillColor=p?a.laneColorAlt:a.laneColor;A.fillColor=x?x:A.swimlaneFillColor}p=parseFloat(n[g].width);x=d&&0==g?f:0;y.geometry=new mxGeometry(k-x,
+m,p+x,c.geometry.height-m);k+=p;y.style=this.styleMap2Str(A);c.insert(y)}};
+mxGraphMlCodec.prototype.addRow=function(c,n,m,k,f,e,b){var a=new mxCell;a.vertex=!0;var d=mxUtils.clone(b);this.mapObject(c,e,d);m?(d.oddFill&&(d.fillColor=d.oddFill),d.oddLaneFill&&(d.swimlaneFillColor=d.oddLaneFill)):(d.evenFill&&(d.fillColor=d.evenFill),d.evenLaneFill&&(d.swimlaneFillColor=d.evenLaneFill));m=parseFloat(d.height);a.geometry=new mxGeometry(f.lx,k,n.geometry.width-f.lx,m);var g=c.Labels;g&&this.addLabels(a,g,d);a.style=this.styleMap2Str(d);n.insert(a);c=c["y:Row"];f.lx=0;d.startSize&&
+(f.lx=parseFloat(d.startSize),f.x+=f.lx);n=d=f.x;var g=f.lx,p=0;if(c){c instanceof Array||(c=[c]);for(var y=0;y<c.length;y++)f.x=d,f.lx=g,p=this.addRow(c[y],a,y&1,p,f,e,b),n=Math.max(f.x,n)}f.x=n;m=Math.max(m,p);a.geometry.height=m;return k+m};
+mxGraphMlCodec.prototype.addColumn=function(c,n,m,k,f,e,b){var a=new mxCell;a.vertex=!0;var d=mxUtils.clone(b);this.mapObject(c,e,d);m?(d.oddFill&&(d.fillColor=d.oddFill),d.oddLaneFill&&(d.swimlaneFillColor=d.oddLaneFill)):(d.evenFill&&(d.fillColor=d.evenFill),d.evenLaneFill&&(d.swimlaneFillColor=d.evenLaneFill));m=parseFloat(d.width);a.geometry=new mxGeometry(k,f,m,n.geometry.height-f);var g=c.Labels;g&&this.addLabels(a,g,d);a.style=this.styleMap2Str(d);n.insert(a);c=c["y:Column"];n=0;if(c)for(c instanceof
Array||(c=[c]),d=0;d<c.length;d++)n=this.addColumn(c[d],a,d&1,n,f,e,b);m=Math.max(m,n);a.geometry.width=m;return k+m};mxGraphMlCodec.prototype.handleFixedRatio=function(c,n){var m=n.shape,k=c.geometry;if(m&&k)if(0<m.indexOf(";aspect=fixed"))m=Math.min(k.height,k.width),m==k.height&&(k.x+=(k.width-m)/2),k.height=m,k.width=m;else if(0<m.indexOf(";rotation=90")||0<m.indexOf(";rotation=-90")){var m=k.height,f=k.width;k.height=f;k.width=m;m=(m-f)/2;k.x-=m;k.y+=m}};
mxGraphMlCodec.prototype.addNodeGeo=function(c,n,m,k){var f=n[mxGraphMlConstants.RECT],e=0,b=0,a=30,d=30;f?(e=f[mxGraphMlConstants.X],b=f[mxGraphMlConstants.Y],a=f[mxGraphMlConstants.WIDTH],d=f[mxGraphMlConstants.HEIGHT]):(e=n[mxGraphMlConstants.X_L]||e,b=n[mxGraphMlConstants.Y_L]||b,a=n[mxGraphMlConstants.WIDTH_L]||a,d=n[mxGraphMlConstants.HEIGHT_L]||d);c=c.geometry;c.x=parseFloat(e)-m;c.y=parseFloat(b)-k;c.width=parseFloat(a);c.height=parseFloat(d)};
-mxGraphMlCodec.prototype.importEdge=function(c,n,m,k,f){var e=this.getDirectChildNamedElements(c,mxGraphMlConstants.DATA),b=c.getAttribute(mxGraphMlConstants.ID),a=c.getAttribute(mxGraphMlConstants.EDGE_SOURCE),d=c.getAttribute(mxGraphMlConstants.EDGE_TARGET),h=c.getAttribute(mxGraphMlConstants.EDGE_SOURCE_PORT);c=c.getAttribute(mxGraphMlConstants.EDGE_TARGET_PORT);a=this.nodesMap[a];d=this.nodesMap[d];m=n.insertEdge(m,null,"",a.node,d.node,"graphMLId="+b);for(var b={graphMlID:b},p=0;p<e.length;p++){var y=
-this.dataElem2Obj(e[p]),z=y["y:PolyLineEdge"]||y["y:GenericEdge"]||y["y:ArcEdge"]||y["y:BezierEdge"]||y["y:QuadCurveEdge"]||y["y:SplineEdge"];y.key==this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY].key?this.addEdgeGeo(m,y,k,f):y.key==this.edgesKeys[mxGraphMlConstants.EDGE_STYLE].key?this.addEdgeStyle(m,y,b):y.key==this.edgesKeys[mxGraphMlConstants.EDGE_LABELS].key?this.addLabels(m,y,b,n):z&&(this.addEdgeStyle(m,y,b),y=this.addEdgePath(m,z["y:Path"],b,k,f),z["y:EdgeLabel"]&&this.addLabels(m,z["y:EdgeLabel"],
-b,n,y),null!=b.shape&&0==b.shape.indexOf("link")&&(b.width=b.strokeWidth,b.strokeWidth=1))}a.ports&&h&&(n=a.ports[h],n.pos&&(b.exitX=n.pos.x,b.exitY=n.pos.y));d.ports&&c&&(n=d.ports[c],n.pos&&(b.entryX=n.pos.x,b.entryY=n.pos.y));m.style=this.styleMap2Str(b);return m};
+mxGraphMlCodec.prototype.importEdge=function(c,n,m,k,f){var e=this.getDirectChildNamedElements(c,mxGraphMlConstants.DATA),b=c.getAttribute(mxGraphMlConstants.ID),a=c.getAttribute(mxGraphMlConstants.EDGE_SOURCE),d=c.getAttribute(mxGraphMlConstants.EDGE_TARGET),g=c.getAttribute(mxGraphMlConstants.EDGE_SOURCE_PORT);c=c.getAttribute(mxGraphMlConstants.EDGE_TARGET_PORT);a=this.nodesMap[a];d=this.nodesMap[d];m=n.insertEdge(m,null,"",a.node,d.node,"graphMLId="+b);for(var b={graphMlID:b},p=0;p<e.length;p++){var y=
+this.dataElem2Obj(e[p]),A=y["y:PolyLineEdge"]||y["y:GenericEdge"]||y["y:ArcEdge"]||y["y:BezierEdge"]||y["y:QuadCurveEdge"]||y["y:SplineEdge"];y.key==this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY].key?this.addEdgeGeo(m,y,k,f):y.key==this.edgesKeys[mxGraphMlConstants.EDGE_STYLE].key?this.addEdgeStyle(m,y,b):y.key==this.edgesKeys[mxGraphMlConstants.EDGE_LABELS].key?this.addLabels(m,y,b,n):A&&(this.addEdgeStyle(m,y,b),y=this.addEdgePath(m,A["y:Path"],b,k,f),A["y:EdgeLabel"]&&this.addLabels(m,A["y:EdgeLabel"],
+b,n,y),null!=b.shape&&0==b.shape.indexOf("link")&&(b.width=b.strokeWidth,b.strokeWidth=1))}a.ports&&g&&(n=a.ports[g],n.pos&&(b.exitX=n.pos.x,b.exitY=n.pos.y));d.ports&&c&&(n=d.ports[c],n.pos&&(b.entryX=n.pos.x,b.entryY=n.pos.y));m.style=this.styleMap2Str(b);return m};
mxGraphMlCodec.prototype.addEdgeGeo=function(c,n,m,k){if(n=n[mxGraphMlConstants.Y_BEND]){for(var f=[],e=0;e<n.length;e++){var b=n[e][mxGraphMlConstants.LOCATION];b&&(b=b.split(","),f.push(new mxPoint(parseFloat(b[0])-m,parseFloat(b[1])-k)))}c.geometry.points=f}};
-mxGraphMlCodec.prototype.addEdgePath=function(c,n,m,k,f){var e=[];if(n){var b=parseFloat(n.sx),a=parseFloat(n.sy),d=parseFloat(n.tx),h=parseFloat(n.ty),p=c.source.geometry;0!=b||0!=a?(m.exitX=(b+p.width/2)/p.width,m.exitY=(a+p.height/2)/p.height,e.push(new mxPoint(p.x+m.exitX*p.width-k,p.y+m.exitY*p.height-f))):e.push(new mxPoint(p.x+p.width/2-k,p.y+p.height/2-f));b=c.target.geometry;0!=d||0!=h?(m.entryX=(d+b.width/2)/b.width,m.entryY=(h+b.height/2)/b.height,m=new mxPoint(b.x+m.entryX*b.width-k,b.y+
-m.entryY*b.height-f)):m=new mxPoint(b.x+b.width/2-k,b.y+b.height/2-f);if(n=n["y:Point"]){n instanceof Array||(n=[n]);d=[];for(h=0;h<n.length;h++)b=new mxPoint(parseFloat(n[h].x)-k,parseFloat(n[h].y)-f),d.push(b),e.push(b);c.geometry.points=d}e.push(m)}return e};
+mxGraphMlCodec.prototype.addEdgePath=function(c,n,m,k,f){var e=[];if(n){var b=parseFloat(n.sx),a=parseFloat(n.sy),d=parseFloat(n.tx),g=parseFloat(n.ty),p=c.source.geometry;0!=b||0!=a?(m.exitX=(b+p.width/2)/p.width,m.exitY=(a+p.height/2)/p.height,e.push(new mxPoint(p.x+m.exitX*p.width-k,p.y+m.exitY*p.height-f))):e.push(new mxPoint(p.x+p.width/2-k,p.y+p.height/2-f));b=c.target.geometry;0!=d||0!=g?(m.entryX=(d+b.width/2)/b.width,m.entryY=(g+b.height/2)/b.height,m=new mxPoint(b.x+m.entryX*b.width-k,b.y+
+m.entryY*b.height-f)):m=new mxPoint(b.x+b.width/2-k,b.y+b.height/2-f);if(n=n["y:Point"]){n instanceof Array||(n=[n]);d=[];for(g=0;g<n.length;g++)b=new mxPoint(parseFloat(n[g].x)-k,parseFloat(n[g].y)-f),d.push(b),e.push(b);c.geometry.points=d}e.push(m)}return e};
mxGraphMlCodec.prototype.addEdgeStyle=function(c,n,m){c=function(a,b){b.dashed=1;var c;switch(a){case "DashDot":c="3 1 1 1";break;case "Dot":c="1 1";break;case "DashDotDot":c="3 1 1 1 1 1";break;case "Dash":c="3 1";break;default:c=a.replace(/0/g,"1")}c&&(0>c.indexOf(" ")&&(c=c+" "+c),b.dashPattern=c)};var k=function(a,b){b.endFill="WHITE"==a||0==a.indexOf("white_")||0==a.indexOf("transparent_")?"0":"1"},f=function(a,b){b.startFill="WHITE"==a||0==a.indexOf("white_")||0==a.indexOf("transparent_")?"0":
"1"},e={defaults:{rounded:0,endArrow:"none"},configuration:{key:"shape",mod:"shape"},"y:LineStyle":{color:{key:"strokeColor",mod:"color"},type:function(a,b){"line"!=a&&(b.dashed=1);var c=null;switch(a){case "dashed":c="3 1";break;case "dotted":c="1 1";break;case "dashed_dotted":c="3 2 1 2"}c&&(b.dashPattern=c)},width:"strokeWidth"},"y:Arrows":{source:function(a,b){b.startArrow=mxGraphMlArrowsMap[a]||"classic";f(a,b)},target:function(a,b){b.endArrow=mxGraphMlArrowsMap[a]||"classic";k(a,b)}},"y:BendStyle":{smoothed:{key:"rounded",
mod:"bool"}}},b=mxUtils.clone(e);b.defaults.curved="1";this.mapObject(n,{"yjs:PolylineEdgeStyle":{defaults:{endArrow:"none",rounded:0},smoothingLength:function(a,b){b.rounded=a&&0<parseFloat(a)?"1":"0"},stroke:{key:"strokeColor",mod:"color"},"stroke.yjs:Stroke":{dashStyle:c,"dashStyle.yjs:DashStyle.dashes":c,fill:{key:"strokeColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"strokeColor",mod:"color"},"thickness.sys:Double":"strokeWidth",thickness:"strokeWidth"},targetArrow:{key:"endArrow",
mod:"arrow"},"targetArrow.yjs:Arrow":{defaults:{endArrow:"classic",endFill:"1",endSize:"6"},fill:k,scale:{key:"endSize",mod:"scale",scale:5},type:{key:"endArrow",mod:"arrow"}},sourceArrow:{key:"startArrow",mod:"arrow"},"sourceArrow.yjs:Arrow":{defaults:{startArrow:"classic",startFill:"1",startSize:"6"},fill:f,scale:{key:"startSize",mod:"scale",scale:5},type:{key:"startArrow",mod:"arrow"}}},"y:PolyLineEdge":e,"y:GenericEdge":e,"y:ArcEdge":b,"y:BezierEdge":b,"y:QuadCurveEdge":b,"y:SplineEdge":b},m)};
-mxGraphMlCodec.prototype.addLabels=function(c,n,m,k,f){m=c.getChildCount();var e=n[mxGraphMlConstants.Y_LABEL]||n;n=[];var b=[],a=[];if(e){e instanceof Array||(e=[e]);for(var d=0;d<e.length;d++){var h=e[d],p={},y=h[mxGraphMlConstants.TEXT]||h;y&&(y=y["#text"]);var z=h[mxGraphMlConstants.LAYOUTPARAMETER]||h||{},x=function(a,b){a&&(a=a.toUpperCase());var c=b.fontStyle||0;switch(a){case "ITALIC":c|=2;break;case "BOLD":c|=1;break;case "UNDERLINE":c|=4}b.fontStyle=c};this.mapObject(h,{"Style.yjs:DefaultLabelStyle":{backgroundFill:{key:"labelBackgroundColor",
+mxGraphMlCodec.prototype.addLabels=function(c,n,m,k,f){m=c.getChildCount();var e=n[mxGraphMlConstants.Y_LABEL]||n;n=[];var b=[],a=[];if(e){e instanceof Array||(e=[e]);for(var d=0;d<e.length;d++){var g=e[d],p={},y=g[mxGraphMlConstants.TEXT]||g;y&&(y=y["#text"]);var A=g[mxGraphMlConstants.LAYOUTPARAMETER]||g||{},x=function(a,b){a&&(a=a.toUpperCase());var c=b.fontStyle||0;switch(a){case "ITALIC":c|=2;break;case "BOLD":c|=1;break;case "UNDERLINE":c|=4}b.fontStyle=c};this.mapObject(g,{"Style.yjs:DefaultLabelStyle":{backgroundFill:{key:"labelBackgroundColor",
mod:"color"},"backgroundFill.yjs:SolidColorFill.color":{key:"labelBackgroundColor",mod:"color"},backgroundStroke:{key:"labelBorderColor",mod:"color"},"backgroundStroke.yjs:Stroke.fill":{key:"labelBorderColor",mod:"color"},textFill:{key:"fontColor",mod:"color"},"textFill.yjs:SolidColorFill.color":{key:"fontColor",mod:"color"},textSize:"fontSize",horizontalTextAlignment:"align",verticalTextAlignment:"verticalAlign",wrapping:function(a,b){a&&(b.whiteSpace="wrap")},"font.yjs:Font":{fontFamily:"fontFamily",
-fontSize:"fontSize",fontStyle:x,fontWeight:x,textDecoration:x}},"Style.y:VoidLabelStyle":function(a,b){b.VoidLbl=!0},alignment:"align",fontFamily:"fontFamily",fontSize:"fontSize",fontStyle:x,underlinedText:function(a,b){var c=b.fontStyle||0;"true"==a&&(c|=4);b.fontStyle=c},horizontalTextPosition:"",textColor:{key:"fontColor",mod:"color"},verticalTextPosition:"verticalAlign",hasText:{key:"hasText",mod:"bool"},rotationAngle:"rotation"},p);p.VoidLbl||"0"==p.hasText||(n.push(y),b.push(p),a.push(z))}}for(d=
-0;d<n.length;d++)if(n[d]&&(!a[d]||!a[d]["bpmn:ParticipantParameter"])){n[d]=mxUtils.htmlEntities(n[d],!1).replace(/\n/g,"<br/>");z=c.geometry;p=new mxCell(n[d],new mxGeometry(0,0,z.width,z.height),"text;html=1;spacing=0;"+this.styleMap2Str(b[d]));p.vertex=!0;c.insert(p,m);e=p.geometry;if(a[d]["y:RatioAnchoredLabelModelParameter"])z=mxUtils.getSizeForString(n[d],b[d].fontSize,b[d].fontFamily),(h=a[d]["y:RatioAnchoredLabelModelParameter"].LayoutOffset)?(h=h.split(","),e.x=parseFloat(h[0]),e.y=parseFloat(h[1]),
-e.width=z.width,e.height=z.height,p.style+=";spacingTop=-4;"):p.style+=";align=center;";else if(a[d]["y:InteriorLabelModel"]){switch(a[d]["y:InteriorLabelModel"]){case "Center":p.style+=";verticalAlign=middle;";break;case "North":e.height=1;break;case "West":e.width=z.height,e.height=z.width,e.y=z.height/2-z.width/2,e.x=-e.y,p.style+=";rotation=-90"}p.style+=";align=center;"}else if(a[d]["y:StretchStripeLabelModel"]||a[d]["y:StripeLabelModelParameter"])switch(a[d]["y:StretchStripeLabelModel"]||a[d]["y:StripeLabelModelParameter"].Position){case "North":e.height=
-1;break;case "West":e.width=z.height,e.height=z.width,e.y=z.height/2-z.width/2,e.x=-e.y,p.style+=";rotation=-90;"}else if(a[d]["bpmn:PoolHeaderLabelModel"]){switch(a[d]["bpmn:PoolHeaderLabelModel"]){case "NORTH":e.height=1;break;case "WEST":e.width=z.height,e.height=z.width,e.y=z.height/2-z.width/2,e.x=-e.y,p.style+=";rotation=-90;"}p.style+=";align=center;"}else if(a[d]["y:InteriorStretchLabelModelParameter"])p.style+=";align=center;";else if(a[d]["y:ExteriorLabelModel"])switch(a[d]["y:ExteriorLabelModel"]){case "East":p.style+=
-";labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;";break;case "South":p.style+=";labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;";break;case "North":p.style+=";labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;";break;case "West":p.style+=";labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;"}else if(a[d]["y:FreeEdgeLabelModelParameter"]){e.relative=!0;e.adjustIt=!0;var z=
-a[d]["y:FreeEdgeLabelModelParameter"],h=z.Ratio,x=z.Distance,C=z.Angle;h&&(e.x=parseFloat(h));x&&(e.y=parseFloat(x));C&&(p.style+=";rotation="+parseFloat(C)*(180/Math.PI));p.style+=";verticalAlign=middle;"}else if(a[d]["y:EdgePathLabelModelParameter"]){e.relative=!0;z=a[d]["y:EdgePathLabelModelParameter"];y=z.SideOfEdge;h=z.SegmentRatio;e.x=h?2*parseFloat(h)-1:0;if(y)switch(y){case "RightOfEdge":e.y=-15;break;case "LeftOfEdge":e.y=15}p.style+=";verticalAlign=middle;"}else if(z=parseFloat(a[d].x),
-h=parseFloat(a[d].y),a[d].width&&(e.width=parseFloat(a[d].width)),a[d].height&&(e.height=parseFloat(a[d].height)),c.edge)if(e.relative=!0,e.x=0,e.y=0,p=c.source.geometry.getCenterX()-c.target.geometry.getCenterX(),y=c.source.geometry.getCenterY()-c.target.geometry.getCenterY(),k&&f&&a[d]["y:ModelParameter"]&&a[d]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"]){var z=a[d]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"],C=parseFloat(z.angle),x=parseFloat(z.distance),F=z.position,h=parseFloat(z.ratio),
-z=parseFloat(z.segment),A=new mxCellState;A.absolutePoints=f;k.view.updateEdgeBounds(A);var B="left"==F?1:-1;if(-1==z&&6.283185307179586==C)e.offset=new mxPoint(1>Math.abs(h)?A.segments[0]*h:h,B*x);else{-1==z&&(z=0);for(var G=C=0;G<z;G++)C+=A.segments[G];C+=A.segments[z]*h;e.x=C/A.length*2-1;e.y=(("center"==F?0:x)+e.height/2*B*(Math.abs(p)>Math.abs(y)?1:-1))*B}}else isNaN(z)||isNaN(h)||(e.offset=new mxPoint(z+p/2+(0<p?-e.width:e.width),h));else e.x=z||0,e.y=h||0;b[d].rotation&&270==b[d].rotation&&
+fontSize:"fontSize",fontStyle:x,fontWeight:x,textDecoration:x}},"Style.y:VoidLabelStyle":function(a,b){b.VoidLbl=!0},alignment:"align",fontFamily:"fontFamily",fontSize:"fontSize",fontStyle:x,underlinedText:function(a,b){var c=b.fontStyle||0;"true"==a&&(c|=4);b.fontStyle=c},horizontalTextPosition:"",textColor:{key:"fontColor",mod:"color"},verticalTextPosition:"verticalAlign",hasText:{key:"hasText",mod:"bool"},rotationAngle:"rotation"},p);p.VoidLbl||"0"==p.hasText||(n.push(y),b.push(p),a.push(A))}}for(d=
+0;d<n.length;d++)if(n[d]&&(!a[d]||!a[d]["bpmn:ParticipantParameter"])){n[d]=mxUtils.htmlEntities(n[d],!1).replace(/\n/g,"<br/>");A=c.geometry;p=new mxCell(n[d],new mxGeometry(0,0,A.width,A.height),"text;html=1;spacing=0;"+this.styleMap2Str(b[d]));p.vertex=!0;c.insert(p,m);e=p.geometry;if(a[d]["y:RatioAnchoredLabelModelParameter"])A=mxUtils.getSizeForString(n[d],b[d].fontSize,b[d].fontFamily),(g=a[d]["y:RatioAnchoredLabelModelParameter"].LayoutOffset)?(g=g.split(","),e.x=parseFloat(g[0]),e.y=parseFloat(g[1]),
+e.width=A.width,e.height=A.height,p.style+=";spacingTop=-4;"):p.style+=";align=center;";else if(a[d]["y:InteriorLabelModel"]){switch(a[d]["y:InteriorLabelModel"]){case "Center":p.style+=";verticalAlign=middle;";break;case "North":e.height=1;break;case "West":e.width=A.height,e.height=A.width,e.y=A.height/2-A.width/2,e.x=-e.y,p.style+=";rotation=-90"}p.style+=";align=center;"}else if(a[d]["y:StretchStripeLabelModel"]||a[d]["y:StripeLabelModelParameter"])switch(a[d]["y:StretchStripeLabelModel"]||a[d]["y:StripeLabelModelParameter"].Position){case "North":e.height=
+1;break;case "West":e.width=A.height,e.height=A.width,e.y=A.height/2-A.width/2,e.x=-e.y,p.style+=";rotation=-90;"}else if(a[d]["bpmn:PoolHeaderLabelModel"]){switch(a[d]["bpmn:PoolHeaderLabelModel"]){case "NORTH":e.height=1;break;case "WEST":e.width=A.height,e.height=A.width,e.y=A.height/2-A.width/2,e.x=-e.y,p.style+=";rotation=-90;"}p.style+=";align=center;"}else if(a[d]["y:InteriorStretchLabelModelParameter"])p.style+=";align=center;";else if(a[d]["y:ExteriorLabelModel"])switch(a[d]["y:ExteriorLabelModel"]){case "East":p.style+=
+";labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;";break;case "South":p.style+=";labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;";break;case "North":p.style+=";labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;";break;case "West":p.style+=";labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;"}else if(a[d]["y:FreeEdgeLabelModelParameter"]){e.relative=!0;e.adjustIt=!0;var A=
+a[d]["y:FreeEdgeLabelModelParameter"],g=A.Ratio,x=A.Distance,z=A.Angle;g&&(e.x=parseFloat(g));x&&(e.y=parseFloat(x));z&&(p.style+=";rotation="+parseFloat(z)*(180/Math.PI));p.style+=";verticalAlign=middle;"}else if(a[d]["y:EdgePathLabelModelParameter"]){e.relative=!0;A=a[d]["y:EdgePathLabelModelParameter"];y=A.SideOfEdge;g=A.SegmentRatio;e.x=g?2*parseFloat(g)-1:0;if(y)switch(y){case "RightOfEdge":e.y=-15;break;case "LeftOfEdge":e.y=15}p.style+=";verticalAlign=middle;"}else if(A=parseFloat(a[d].x),
+g=parseFloat(a[d].y),a[d].width&&(e.width=parseFloat(a[d].width)),a[d].height&&(e.height=parseFloat(a[d].height)),c.edge)if(e.relative=!0,e.x=0,e.y=0,p=c.source.geometry.getCenterX()-c.target.geometry.getCenterX(),y=c.source.geometry.getCenterY()-c.target.geometry.getCenterY(),k&&f&&a[d]["y:ModelParameter"]&&a[d]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"]){var A=a[d]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"],z=parseFloat(A.angle),x=parseFloat(A.distance),F=A.position,g=parseFloat(A.ratio),
+A=parseFloat(A.segment),B=new mxCellState;B.absolutePoints=f;k.view.updateEdgeBounds(B);var C="left"==F?1:-1;if(-1==A&&6.283185307179586==z)e.offset=new mxPoint(1>Math.abs(g)?B.segments[0]*g:g,C*x);else{-1==A&&(A=0);for(var G=z=0;G<A;G++)z+=B.segments[G];z+=B.segments[A]*g;e.x=z/B.length*2-1;e.y=(("center"==F?0:x)+e.height/2*C*(Math.abs(p)>Math.abs(y)?1:-1))*C}}else isNaN(A)||isNaN(g)||(e.offset=new mxPoint(A+p/2+(0<p?-e.width:e.width),g));else e.x=A||0,e.y=g||0;b[d].rotation&&270==b[d].rotation&&
(e.x-=e.height/2)}return{lblTxts:n,lblStyles:b}};mxGraphMlCodec.prototype.processPage=function(c,n){var m=(new mxCodec).encode(c.getModel());m.setAttribute("style","default-style2");m=mxUtils.getXml(m);m='<diagram name="Page '+n+'">'+Graph.compress(m);return m+"</diagram>"};mxGraphMlCodec.prototype.getDirectChildNamedElements=function(c,n){for(var m=[],k=c.firstChild;null!=k;k=k.nextSibling)null!=k&&1==k.nodeType&&n==k.nodeName&&0<m.push(k);return m};
mxGraphMlCodec.prototype.getDirectFirstChildNamedElements=function(c,n){for(var m=c.firstChild;null!=m;m=m.nextSibling)if(null!=m&&1==m.nodeType&&n==m.nodeName)return m;return null};mxGraphMlCodec.prototype.getDirectChildElements=function(c){var n=[];for(c=c.firstChild;null!=c;c=c.nextSibling)null!=c&&1==c.nodeType&&0<n.push(c);return n};mxGraphMlCodec.prototype.getDirectFirstChildElement=function(c){for(c=c.firstChild;null!=c;c=c.nextSibling)if(null!=c&&1==c.nodeType)return c;return null};
var mxGraphMlConverters={"orgchartconverters.linebreakconverter":function(c,n){if("string"===typeof c){for(var m=c;20<m.length&&-1<m.indexOf(" ");)m=m.substring(0,m.lastIndexOf(" "));return"true"===n?m:c.substring(m.length)}return""},"orgchartconverters.borderconverter":function(c,n){return"boolean"===typeof c?c?"#FFBB33":"rgba(0,0,0,0)":"#FFF"},"orgchartconverters.addhashconverter":function(c,n){return"string"===typeof c?"string"===typeof n?"#"+c+n:"#"+c:c},"orgchartconverters.intermediateconverter":function(c,
diff --git a/src/main/webapp/js/mxgraph/Editor.js b/src/main/webapp/js/mxgraph/Editor.js
index f43a37be..aedc871b 100644
--- a/src/main/webapp/js/mxgraph/Editor.js
+++ b/src/main/webapp/js/mxgraph/Editor.js
@@ -342,33 +342,30 @@ Editor.prototype.editAsNew = function(xml, title)
p += ((p.length > 0) ? '&' : '?') + 'ui=' + urlParams['ui'];
}
- if (this.editorWindow != null && !this.editorWindow.closed)
+ if (typeof window.postMessage !== 'undefined' &&
+ (document.documentMode == null ||
+ document.documentMode >= 10))
{
- this.editorWindow.focus();
- }
- else
- {
- if (typeof window.postMessage !== 'undefined' && (document.documentMode == null || document.documentMode >= 10))
+ var wnd = null;
+
+ var l = mxUtils.bind(this, function(evt)
{
- if (this.editorWindow == null)
+ if (evt.data == 'ready' && evt.source == wnd)
{
- mxEvent.addListener(window, 'message', mxUtils.bind(this, function(evt)
- {
- if (evt.data == 'ready' && evt.source == this.editorWindow)
- {
- this.editorWindow.postMessage(xml, '*');
- }
- }));
+ mxEvent.removeListener(window, 'message', l);
+ wnd.postMessage(xml, '*');
}
-
- this.editorWindow = this.graph.openLink(this.getEditBlankUrl(p +
- ((p.length > 0) ? '&' : '?') + 'client=1'), null, true);
- }
- else
- {
- this.editorWindow = this.graph.openLink(this.getEditBlankUrl(p) +
- '#R' + encodeURIComponent(xml));
- }
+ });
+
+ mxEvent.addListener(window, 'message', l);
+ wnd = this.graph.openLink(this.getEditBlankUrl(
+ p + ((p.length > 0) ? '&' : '?') +
+ 'client=1'), null, true);
+ }
+ else
+ {
+ this.graph.openLink(this.getEditBlankUrl(p) +
+ '#R' + encodeURIComponent(xml));
}
};
diff --git a/src/main/webapp/js/mxgraph/EditorUi.js b/src/main/webapp/js/mxgraph/EditorUi.js
index 59a5fe8d..763e6149 100644
--- a/src/main/webapp/js/mxgraph/EditorUi.js
+++ b/src/main/webapp/js/mxgraph/EditorUi.js
@@ -544,33 +544,23 @@ EditorUi = function(editor, container, lightbox)
model.beginUpdate();
try
{
- // Applies only basic text styles
- if (asText)
+ for (var i = 0; i < cells.length; i++)
{
- var edge = model.isEdge(cell);
- var current = (edge) ? graph.currentEdgeStyle : graph.currentVertexStyle;
- var textStyles = ['fontSize', 'fontFamily', 'fontColor'];
-
- for (var j = 0; j < textStyles.length; j++)
+ var cell = cells[i];
+
+ var appliedStyles;
+
+ if (asText)
{
- var value = current[textStyles[j]];
-
- if (value != null)
- {
- graph.setCellStyles(textStyles[j], value, cells);
- }
+ // Applies only basic text styles
+ appliedStyles = ['fontSize', 'fontFamily', 'fontColor'];
}
- }
- else
- {
- for (var i = 0; i < cells.length; i++)
+ else
{
- var cell = cells[i];
-
// Removes styles defined in the cell style from the styles to be applied
var cellStyle = model.getStyle(cell);
var tokens = (cellStyle != null) ? cellStyle.split(';') : [];
- var appliedStyles = styles.slice();
+ appliedStyles = styles.slice();
for (var j = 0; j < tokens.length; j++)
{
@@ -607,29 +597,29 @@ EditorUi = function(editor, container, lightbox)
}
}
}
-
- // Applies the current style to the cell
- var edge = model.isEdge(cell);
- var current = (edge) ? graph.currentEdgeStyle : graph.currentVertexStyle;
- var newStyle = model.getStyle(cell);
-
- for (var j = 0; j < appliedStyles.length; j++)
+ }
+
+ // Applies the current style to the cell
+ var edge = model.isEdge(cell);
+ var current = (edge) ? graph.currentEdgeStyle : graph.currentVertexStyle;
+ var newStyle = model.getStyle(cell);
+
+ for (var j = 0; j < appliedStyles.length; j++)
+ {
+ var key = appliedStyles[j];
+ var styleValue = current[key];
+
+ if (styleValue != null && (key != 'shape' || edge))
{
- var key = appliedStyles[j];
- var styleValue = current[key];
-
- if (styleValue != null && (key != 'shape' || edge))
+ // Special case: Connect styles are not applied here but in the connection handler
+ if (!edge || mxUtils.indexOf(connectStyles, key) < 0)
{
- // Special case: Connect styles are not applied here but in the connection handler
- if (!edge || mxUtils.indexOf(connectStyles, key) < 0)
- {
- newStyle = mxUtils.setStyle(newStyle, key, styleValue);
- }
+ newStyle = mxUtils.setStyle(newStyle, key, styleValue);
}
}
-
- model.setStyle(cell, newStyle);
}
+
+ model.setStyle(cell, newStyle);
}
}
finally
diff --git a/src/main/webapp/js/mxgraph/Graph.js b/src/main/webapp/js/mxgraph/Graph.js
index deb63218..3b145621 100644
--- a/src/main/webapp/js/mxgraph/Graph.js
+++ b/src/main/webapp/js/mxgraph/Graph.js
@@ -2360,22 +2360,20 @@ Graph.prototype.selectCellsForConnectVertex = function(cells, evt, hoverIcons)
if (cells.length == 2 && this.model.isVertex(cells[1]))
{
this.setSelectionCell(cells[1]);
+ this.scrollCellToVisible(cells[1]);
if (hoverIcons != null)
{
- // Adds hover icons to new target vertex for touch devices
+ // Adds hover icons for cloned vertex or hides icons
if (mxEvent.isTouchEvent(evt))
{
hoverIcons.update(hoverIcons.getState(this.view.getState(cells[1])));
}
else
{
- // Hides hover icons after click with mouse
hoverIcons.reset();
}
}
-
- this.scrollCellToVisible(cells[1]);
}
else
{
@@ -2973,6 +2971,18 @@ Graph.prototype.isCellConnectable = function(cell)
};
/**
+ * Adds labelMovable style.
+ */
+Graph.prototype.isLabelMovable = function(cell)
+{
+ var state = this.view.getState(cell);
+ var style = (state != null) ? state.style : this.getCellStyle(cell);
+
+ return (style != null && style['movableLabel'] != null) ? style['movableLabel'] != '0' :
+ mxGraph.prototype.isLabelMovable.apply(this, arguments);
+};
+
+/**
* Function: selectAll
*
* Selects all children of the given parent cell or the children of the
@@ -3761,31 +3771,8 @@ HoverIcons.prototype.click = function(state, dir, me)
}
else if (state != null)
{
- var cells = this.graph.connectVertex(state.cell, dir, this.graph.defaultEdgeLength, evt);
- this.graph.selectCellsForConnectVertex(cells, evt, this);
-
- // Selects only target vertex if one exists
- if (cells.length == 2 && this.graph.model.isVertex(cells[1]))
- {
- this.graph.setSelectionCell(cells[1]);
-
- // Adds hover icons to new target vertex for touch devices
- if (mxEvent.isTouchEvent(evt))
- {
- this.update(this.getState(this.graph.view.getState(cells[1])));
- }
- else
- {
- // Hides hover icons after click with mouse
- this.reset();
- }
-
- this.graph.scrollCellToVisible(cells[1]);
- }
- else
- {
- this.graph.setSelectionCells(cells);
- }
+ this.graph.selectCellsForConnectVertex(this.graph.connectVertex(
+ state.cell, dir, this.graph.defaultEdgeLength, evt), evt, this);
}
me.consume();
@@ -5019,17 +5006,6 @@ if (typeof mxVertexHandler != 'undefined')
};
/**
- * Function: isCellLocked
- *
- * Returns true if the given cell does not allow new connections to be created.
- * This implementation returns false.
- */
- mxConnectionHandler.prototype.isCellEnabled = function(cell)
- {
- return !this.graph.isCellLocked(cell);
- };
-
- /**
*
*/
Graph.prototype.defaultVertexStyle = {};
@@ -5861,28 +5837,25 @@ if (typeof mxVertexHandler != 'undefined')
{
var state = this.view.getState(parents[i]);
- if (state != null && (this.model.isEdge(state.cell) || this.model.isVertex(state.cell)) && this.isCellDeletable(state.cell))
+ if (state != null && (this.model.isEdge(state.cell) ||
+ this.model.isVertex(state.cell)) &&
+ this.isCellDeletable(state.cell) &&
+ this.isTransparentState(state))
{
- var stroke = mxUtils.getValue(state.style, mxConstants.STYLE_STROKECOLOR, mxConstants.NONE);
- var fill = mxUtils.getValue(state.style, mxConstants.STYLE_FILLCOLOR, mxConstants.NONE);
+ var allChildren = true;
- if (stroke == mxConstants.NONE && fill == mxConstants.NONE)
+ for (var j = 0; j < this.model.getChildCount(state.cell) && allChildren; j++)
{
- var allChildren = true;
-
- for (var j = 0; j < this.model.getChildCount(state.cell) && allChildren; j++)
- {
- if (!dict.get(this.model.getChildAt(state.cell, j)))
- {
- allChildren = false;
- }
- }
-
- if (allChildren)
+ if (!dict.get(this.model.getChildAt(state.cell, j)))
{
- cells.push(state.cell);
+ allChildren = false;
}
}
+
+ if (allChildren)
+ {
+ cells.push(state.cell);
+ }
}
}
}
@@ -5899,20 +5872,10 @@ if (typeof mxVertexHandler != 'undefined')
for (var i = 0; i < cells.length; i++)
{
- if (this.isCellDeletable(cells[i]))
+ if (this.isCellDeletable(cells[i]) && this.isTransparentState(
+ this.view.getState(cells[i])))
{
- var state = this.view.getState(cells[i]);
-
- if (state != null)
- {
- var stroke = mxUtils.getValue(state.style, mxConstants.STYLE_STROKECOLOR, mxConstants.NONE);
- var fill = mxUtils.getValue(state.style, mxConstants.STYLE_FILLCOLOR, mxConstants.NONE);
-
- if (stroke == mxConstants.NONE && fill == mxConstants.NONE)
- {
- cellsToRemove.push(cells[i]);
- }
- }
+ cellsToRemove.push(cells[i]);
}
}
@@ -5920,7 +5883,7 @@ if (typeof mxVertexHandler != 'undefined')
mxGraph.prototype.removeCellsAfterUngroup.apply(this, arguments);
};
-
+
/**
* Sets the link for the given cell.
*/
@@ -6706,7 +6669,8 @@ if (typeof mxVertexHandler != 'undefined')
showText = (showText != null) ? showText : true;
var bounds = (ignoreSelection || nocrop) ?
- this.getGraphBounds() : this.getBoundingBox(this.getSelectionCells());
+ this.getGraphBounds() : this.getBoundingBox(
+ this.getSelectionCells());
if (bounds == null)
{
@@ -6891,7 +6855,7 @@ if (typeof mxVertexHandler != 'undefined')
imgExport.drawState(this.getView().getState(this.model.root), svgCanvas);
this.updateSvgLinks(root, linkTarget, true);
-
+
return root;
}
finally
@@ -7928,15 +7892,11 @@ if (typeof mxVertexHandler != 'undefined')
{
mxCellEditorApplyValue.apply(this, arguments);
- if (this.graph.isCellDeletable(state.cell) && this.graph.model.getChildCount(state.cell) == 0)
+ if (value == '' && this.graph.isCellDeletable(state.cell) &&
+ this.graph.model.getChildCount(state.cell) == 0 &&
+ this.graph.isTransparentState(state))
{
- var stroke = mxUtils.getValue(state.style, mxConstants.STYLE_STROKECOLOR, mxConstants.NONE);
- var fill = mxUtils.getValue(state.style, mxConstants.STYLE_FILLCOLOR, mxConstants.NONE);
-
- if (value == '' && stroke == mxConstants.NONE && fill == mxConstants.NONE)
- {
- this.graph.removeCells([state.cell], false);
- }
+ this.graph.removeCells([state.cell], false);
}
}
finally
diff --git a/src/main/webapp/js/stencils.min.js b/src/main/webapp/js/stencils.min.js
index 1143a103..c2a68837 100644
--- a/src/main/webapp/js/stencils.min.js
+++ b/src/main/webapp/js/stencils.min.js
@@ -12,7 +12,7 @@ f['electrical/iec_logic_gates.xml'] = '7Vhdb8IgFP01fW1qqdU9mm57dMmyh70ZrNgSKTQUv
f['electrical/diodes.xml'] = '7ZrLkqIwFIafhuVYCAPqcsruns3sumsWs4sY25SYUAFbffsJlykNQiSIGMazcJETfv5cP3PBcufxGkU4thyboi223BfLcbaHT46i9QiHOEg4CVA4WhK2TJ9yLPfVsn9Y9swqpEKJ4kg8mGu/ECdoEeL0Ucde50HfzpMni5f0fXkwTjjb4D1ZJsXThK4xJ0meu89jY9uWzDP/gFEqjAmjsZTzL1O8GRGaSMaE5u+NhMUWJ5jn4aKAByl1LFIjL0u/NTZhu6SBy7iBizsXkbp6uvMFCjafnO3o8rJsEUobVI5mGVv2hU+lcEuVra5qJgwJPRNOZKHbXFmy9FXKIGQxrsuUa9JVeZRK2XLSUeMpm0BpqVHNYg5dlWZj7mL0ZNGa8ebOV4zjuoG4ImGYT/LK0V0lzTJyvHTDmzeCw6WIvK5WqdSxAUAAIACQmQCqMPW9tvVsLlQ6KhtIaVmnHD5mp5eYZTsuAr/QEXOArLmQHbcGxffWVFMqW1P2TuVRtl57z0lrzGp4ljFbJ+0PQFk2DkMSpZ1cxsdeTh6kIXoF3IJWD15Z/txRCqgzCHXNBk7FvJlpLImUSp2p2tyyj4XoWEMpW85u8Hzebel7sGZJsjkCQAwCyEA3pD3/nTdszAfsiX1ZWTNUKyz9jjr+PrtwWTntSump2seMo0fbhHXeB0c0ZnwhgmPAtAGYfrZ1npl899o2iafRJE+7ujWNfA6QD8gH5Ds/VruZfBpnsSWl11zpA22HQtudIEcIBwIG8RYOBDrE5pA22e2p+ZBL8nuftRhDzcuL5zI1YaVqIjkfce2svHIdFjq7ahKNm+9JVx04gJvvJj31n15i/0YcBQnjIvhN/ESSBCgChJqHUFh83kJQja8BW33Td51mOt8RNu95WHz2R0/vgp5/MD3/3BHuh4wAp9PRXNe4QC5ZKs/nhgXOPr6/Vgo1zjqnGkoVw9p3vFKp/EfS8Cyzuk46IHDCph3ACeDsEZyAP5Pw5wL+AH+Av6rG1Dl4lJUax4ewcOyLnKdAMYH/Ag==';
f['electrical/abstract.xml'] = '7V1Lc6M4EP41HOMCxMvHbDJTO4fZ10ztnhmHJNRg7MI4ye6vX4xxPGoj0d0BjDO6pAK4/Uktqfvrlmhb4mbzGK+TjeXaebxMLHFrue7y5aGI14+zJEsWZZEu4mwWf9uURbwoq6eW+GDZ15Y9txrhSjberKuP7qWf4iKNv2XJ7qOu/bi/Obf3l0eQ6+U6S+/TpNg/qL5+9T15Tu/KRiLNH5MiLfdPn/f3HNuWGlC3YbHK8wo8XeUb6cnh4a7haV5K4Gm+/951BbFMyqoR9e2mkS/S1b/N1cyvrz+iQVbbEoHiIFDETXVH1U9x8y1efH8oVtv87rRt63inUPlu/WC5ekqOrfDlVrT3tJbL0vwHubks6Cl01CIpC851kItstUlaNV/dPOlgfVehEnFzvyoSla7u0yzbz8NWMKQq7X40ohWUEfmD0CyoTtF2Te9NQKvCaoE2XdcP9majHztys8qrFmRZclfdPqtRWexbgrEsswCs+jnVuBgLZiyYsWB4C9YCGsiSER4USAZRT1aTNN9DVBsQrRd4SYHHpE35jtk7lDvxAuhObq9vCL4jNHx0GGsO+oqeoR7XDYQyootfFACymVIYSRsveH4HMtQS9E8Y3W2SlTFhEfo9LcLfUMwNNcGUGF8YGA4R458RbMmHniyJdjxQHZk5cM2/3iEMCxcq8sm9wqju+MVv6hUXqr1Xb7D6SZal650Bg6v+Wb5EW/9zU2RHVpnAc0dAkh28pCBgMtjXuQP522S5fSGY/eDCuJfDMJlCKHiIDshlAHlk41IBCY4TIBvMCshjAAVBSARq8jeYcaoU5rzNSTdgmLGqlBZ1gw3PyR0uKfcBt2ZLhnhJ0Nh3lJ0BDiRyVcao2/lotQLSDbI+ffxIBARJLWbAxtRK9pT7cgiS2m567G5qJbWYgo2plZQxAX8JQ8LEFbiJOxl6c5pY+phmJWlfwq99Qx/8BulkMNb9rbzjrbFtmqPcM+ACI7G1noOmYjfFTmaUNDsuKGKSd7y0+bW4WFSfzOLiIbmq/r+6z+IHqZsFiMIKOZiyN89Jsv5BzJF0dWjKy1X8km6uilUZ74amTZHjNlOeXV5PzdQNg3MZwzBuM9nDoG2mbhhUUd7EhmHcZrKHQdtMwKVdWZLApCN5Bc65mIQEEMBUQE6GA51m9j9u89oLWgQW1FuWx7AgemcmwIIuInU83hL6lJcVSFyuSKGEWURmEU1+EdmUJBhw+TonimYmh0zaKzV5vaHnJoesGoabDLNRNEAXZZYobHQXVQ2dMC/5vM3KdJ3Rzo0ao2qM6vsyquFMDk0O16hTUO5Mjk5eb2BiohNpCjRsthp5MibodPf78/bl6nw74JxFa5N3cpGWDuA4AR0HszMNcdyQjoPZmIY4Qhm3K2H8EWxqmgcMlIDuIEIGTKiwBhqYiAETqeiZBmfOwJlzTlv05PB0KJQ3WMyJhNr3mBMJx+Cg6VmE14kg6ES/ac5+eYOwUQ+6yT4boJXUQao8VDekVlIHqXK+3ZBaSR2kild0Q2olz37Og50JcAiSOkiXDamV1EESdjccgqR2+rBnj8pbKoOG8RPCrYGDZUIGEzKYkMGEDOcLGcyhaYVvMiHKJEKUSRyaNkGKCVJMkGKCFKv/IKUF8Gc6bn8aFv1esYN6izrOrLouUPW3ISmoQGlek8E+AqUra5wAxnJ/YSDR+esEeWXguFCBg1LLU7yoLUKbcNEjsFeLtwwELnRZDJHtEgjHdHqiTT5eUFvxyMFPGCDpBlpnokUNBMERwRpNeO4dccfT8bgDGnEHFEASRtSR7awq6dGGCSQv78hEm4t3jYt/ny7esyMAZzPxcC7+FI9corHWImrAZhFIjNkzd65Yyjo41DxsAQvtttVv6IuhL5OiLxGJhEyDwEQkWUNhBqAwLZgeNxsDBB1FjZluyJBQYJCdmAXlylx8jVDfwUsCTPBiJEG3sqRQhPDd/QzwUwj0UyU5ZRb89dqipbZ6rKJviO/wxBeADUx7AVor6R2bGGppmo5bEPIbwPYoB7Vb1p9rZQ2t7CBbbG7/hlLghmkNxbTGjxLOQrQG5pOT5x+NdzH8w/CP4flHpwaRSTeANWTKDUBNI+FmeJXhVYZXGV41kSRLN+a7TWCdLcN8poy64egHgRE5evOGy9gc3aIT5/PRZkPBflIKNsav3A1PwSZjg07rX/+5jfMy/c+UwDYllvA29X2VwAba0tapBa8gEeoFayW1JYrBOwAOXlLbT8Jv6Qmc5GTM3GkpuS/bJcXA9cayjIG7SAP37mrICVe2VASOE3ElXXbE7rATVKCfF1j0srJUy30RT9f+Y1UvD2O3jN36Se0WTKzj42sYD+JfUaG8v6pNSTFK14yckvJmBzUdZ/LXyq4s001dytz+J61a6dqf8rtknVR/6lnfFDvfvd7xaxLTfj7pvBksT/k6Ta8pLDLME26/0hNvM4VP2D3YAK67gc1UJJupCKi3O0V8bjvFzlo57OSTy6Z0oLwfoWaCYJNBL+Bi+h4XM3C5mOBn5wmYYcTFjOTWjrMTTNi2AZg+V9IVgNBRNjuh7JyyJefJMynyZpQNWnH4NGN7LHBBuyOXgh24EPvouVH7iaHsoPCz2Z8J2RF4KpczEUrjN+vv6PT+XmVl/LAT/it52GbE32gJe6Ir/dbw1SGxiJHgnegiM6N2nJFS0fPOVTAtGkHI0M7xgtpyND7+KAeQbFSP2nBjJ6JDnIIGtEbHG80s/R8=';
f['electrical/op_amps.xml'] = '7VzLcqNGFP0alnbxFlpONJnULJJFUsk2hTUtmxpehbA98/fBQo7TDd269wwYUFi51Oj63H7Q53BuI8vbHR/iUhwt187jTFjeR8t1s2/3VVw+3IpU7Osq2cfpbVH+HWdl8zXX8n627A+WvbXOsU1ofCybb7bBT3GVxHepePmqaz+0jaHbfnzD2BVZGVdxXVTtlWNdFV/Fc/KlPock+YOokrq9+ty2ObYtZXBKYl/keYOeFPlRuvJ6sfnPcZLXEvpflvuT0/7rskHJRC2q9ordtn6TPn0/f7q1vbYjn1hILoDkBQEX6YYC0/xjCcnhohSPNQHHIXXH2zUtuvnzdnfx/ut9VTzmX7rplfHLQpFbTxey4km85eHL46qZvVNgmuT/CYyUQHqkAumbIvdpcRS9w980drp4atUMirc7FJXQjdYhSdP2DusFIw6msnRC+pgokbq76PJoGiOVbOVIB8Y0RsqY+Ko5b220UBnUlQeXMSvozaEG0iPVXOm9RHOlD44RDwbUEkbfHd6yqv5GrV5o9l9W9SVyVHZgOQ1bl8WFnQEGRBBPY9K3jZ0utGIDUR+bjvr4mBwOohJ5nUypQBBZYF+VLPD9WcgCBjdEDD4yskpwtbpgA+sCo1bCVZYxWw7toUQb0MlLznUDy1c01Yih1AYiTE6kUW4xbkZVbjH6yZEwxjWLSzxHQwJ9g6tku6Vj2jCmjWKua2jBa2h8SauoIV0aEyjMjaUozM953YAsTV1el7iMenDeX1tu6Nyr7Cf0SFVbmiKXrS3pY6JqS3g0jZFmbQlnSw8MbXKgnGvogYgRmqqqLem52uiwOoxIsy7gYDJCjZ4lo6OqLoDXgYZV+1aeHOj4dEgSkV9e7DrI0ZWIuqy0vDkHs+tz/iSqOsnvm9YPWZkmh0QsSpWsntfqec1dl9DHZPW8Vs+rQyCMqRyqMM3AHN8jWYB3wEVUp3hGdsW2oxF+fUzr5Cm54zoW22AgaXDiUoo66Jws6aXTS1gUgSAj9amD8UkbP8Swge9Z72pJG7dd4TMWjANI09vvDmwRO3CZAV+nW5i2cd7msK+RQ40WnVF+h7CHEcGYW1ifMOStCwtjJZJxME0dW3o/1RVPx4QXH2NOjHcKYzZDWIwPFKgzz0YXjP4YgvEV41lK4HUnjIg9Hw1St7XMw8f6rchvktl4WSSLSV5Ct0HE1qpEy2z1ssDtBVZyVySL8UrZ6g6ZcoWV0BRG35zdocsdNYpic6VVg7lMR8rI9p5csNPd51Owvd85QPO7uBd50zL9i2IA0WsZaVg9EWrrnwPTfG+B891pnl4nVp8+6JHq1muKXBbLK8yps00vMyAeaZwHE3d69AkM6IHmd7fokJ13t9BuOvA6NUYaTVDG0Krv4tEx1ff/6JiqNqWvvYC23t+b531vEKLnvIrVdw5yIp7vPtX/8XjXENV+Wfxu60/8aPkded8cMAxuXArOZH5B3+pf/YJFKwnGYC7oGZxRjJj2ReXrfPzuwYRrsLDZhFekBnNwGJgcG8/sGqGQjEii3bS6MFfwWwC6h+i5CNAsm0NBCfxJIidEakokkaggAeewGyQPQOovKxmR5n3ie1W9y1e964nvsWTWcp8ncHmPy97BNVYP5hxeimdsV/gpWQ/uqGqjokuIkSxjfIxmOor4Pzq8/+M/ZvVjiDo/fzxEnSc/hUh/ne835fVnntTfm5ZfGk3W/PlUpGnxPJFQf8mALWm1HvywUjPsgXl/oQkXavFiVHA9hVp8TDrky6h+whW6iOQu9HHvQIF4dR8u1BqPBUAHCtgcSt973xrOt/4/';
-f['electrical/transistors.xml'] = '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';
+f['electrical/transistors.xml'] = '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';
f['electrical/transmission.xml'] = '7Vxtb6M4EP41fCwyEF7ycS+b3S+rvZPupH5mszRBRyAC2qT//iBAEpvGmcxMEqqjqtRCzMxje14ejx0MZ1aswk1UGLZIw3VkOF8N217vlnm4WZlREi3KPF6EiVnmYVqs46KIs7RqYThzQ3wx2qerh8NiU7VtHn8L8zj8lUR1O1usmpu221wetdRXP+K0fvqP16L5tCjz7N9oG/8u28fidBXlcdl8um3uWY44QrDF8deZLbI0rXBUIIsPPu+1rdSFcVpKsH4+N8o2ld51VEZ5c1s0d3fS1fvp1Te0xjlAo8Wp8e/rNVpEjdeP6nmNzqy6r59qZ/aS5dEyz17T3xcxb8La3LSN5AfW2VtEMwZZXtK4wU6yb5JEHcLWFTkhAkXuJw4w2lVc2QcCzfT3pnd/twlHVwenrjdHe3WMMTiNwQkTnEAaEdNoQl3sjErEPGpUjiGYhNDhh4gSqcNo8acJoMihpgm/x2EnxpgmxjRxuzRhIfKE4xATBUSpmimoSp9tRE89n9hTiFK1pxqlY1IkIfT5Ew5K5DDXTnCMLv9UA0UONXHvE7WcuQNjzNxj5h5W5rYmxDUeKovaAVWrg9A6oRKGCUKpSyQMzy5CqQ9e9ZzT6iG0Bi61XoChgWQLRlEysgXPIRasaqVa8Bxiwb2KDJXyQixYVUq24DnEglWtOgsemTYJoWOzQ0SJ1GH0JuwYUSJ1GKceO0aUSG0Zr6a6zCBxMrUoPX6vwcnUopzyOw5OpnaNavO7DlTmUFeAQWOwJznpS1rGizyKNuGylvA1eosX7TMDWAeOG0RKU9YMPeF3EJRIGaPtyYGBHrcVib4gY7QsxeoQEsN8Uf2ThPkyeqr+f3pJwqU0S3mrzJ221+/ydbGt3PbkMUu20Q7i7incxcVTnpVhbYIfGUIAG+OhRjXL9dSwti9mied97GIPZme69Sg37rp/f6o9WIPon2SZNY3E90rHZjD57Sckv7XphavsiFD5kCogzKh5i4Dk/TtMDZBaF8OUAKl7hqgSYAAlz6y1OKIdoUpx5M1nTCWOSnwxhTjy3jOmEKexo4HxbVd2AdRZIjBPbKUfeGJ3reeJXtsKQBPF8NAHAoye4SBXoEj85PNpoQ7L3Rh/5zIQ/KjxXyRZcYaJ9iIJiNu+xEmi47esEUUeASAz09m0yyBRW2SApcIrIKIkamvs9MjgMkjUQQxgefYKiCiJ2mWomHJjxImUQSoxm8FjekVhussoIBl8pleYozuNApLBa3o7U3S3UUAy+I0KksFxVB7B4Dm9/RSgzKGWcNpNq5OlQntMbXZsOoACzrhBoTRlpTeP+34Ij1vILaMkiTc19VRtfCtftsgdXNnv4ZXWzk+zdBGllf2WWT4Yd/2f1FvHoHTB8w5mu1WuSUeL77oQ9BSTscmhUpWI2nmVQSoxjIEyegwStQPJ8NWGKYNE/WQLdpBQkUPlix2lPoakPzdl/c6O6t63+Fc05qAxBz00B/Ge3IEZhM7/bZcuUTkUIxhEXqhiQB3hDuy9izhb+fLj4YXiviuFULIzwxfm1FxKNypXyfeBCTyspIMZyEIdsNBbGFY95YssqVdJovm7B2VUS9X9DxAYdadyqsZ/FxiPdQPtyyfv6GWu9uweiVoBN4B0o+Wro+VMTIdul1N5uGyfw9in8pBNHJzQu2+b3aJY4ZmtDZ7yxLcob1XYYp7W/XzNh1NhRNFFE8zmPxljNA+7yPdkjcL0A7jaQTNH++ACt9r1t/z2xrty48J55UMJ5vLGP7YTykHzQDZf2/TpCUoV6iChKjxY2HcRCx6CoZYB+uXof6J8Haf7OkD9Nru/VmHxyYP7p4vssLc5mJbN2U/QCx1Ex4W4BhfVU+prHVA9vd97RXsrZ6X4/oDa+5WQ3AFissRtQIFjcnejtY//AA==';
f['electrical/thermionic_devices.xml'] = '7VpNj5swEP01HBOB+Uh6rLLb46pSV+qx8hJvYi0BZNjdtL++DlAldsDxTNpNSH0LNo83Hg8zj3G8cFGtackqj/g53TAvvPMI2WxXgpbrKctYWgue0mxar5nY8CLn6Y8le+PpDkG88N7zP3v+J697jHwKrUoJap/zRgWnTxnb3Ur8dTs4m7WXe7o7Xiy7e6paFC/snS/r7m6eS2Jet7Pv3RN8hbuhT4s8l7zSwkqZ+TMpH0x5Xiu8D+1TS0mwYTUT7ajfjm67q2ncXv88nP1izfEtsCIJE4UlgLIQK5YkOskSLuTIkDPDxRNNX1aieM2Xx7axLONlxQ522u/Ztr05J/3a2DLAGC6eC8GGTHnmWdaGUq8XS7oLL3W0mdgUb2xvYWi19Q0w4/kwMDAhVUqiIrt3xYZTQyZzA5KKVN6ZUbFiE/l78pzR1WFI+GKrWO4LdSV+9c5YeQzrUFFnynZCt7yaiKKmu1jq23ajmeoCIzvXNEHTt8EyRQ1HxGHekQG7zz9kiMUyhgggFIzrhQQR0ZJWYs9KZho2ju0t1nkhWJ13yGbw/jaAvmTRTLRl6y/VseK1ucm/WEH7blUGyPy8mvZwb0UzC1zptCydzbDYxZsMPJFW/FdnHQmmUaiG3ciLqoWJA5lJBQLyYYyljNGUro7fWB0PAKGgiUF0EEVozgTNqa0ToBwCdO2P0cjEztoxaIZH4USDEw1ONPzHokEFhvZpMAAgjY4FcIZozgjNGaM5EzTnDO9bpwFvWgPehjY6vc7b0LpXrAG/srx2JyA3oMjcCYg7AXFV8wpOQCCC2PjBAJB7EEGsrRPNCRHExqoJ4NR8S9C+NSKNvgVwRmjOGM2ZoDk130Zo3xqRRt8COCM0Z4zmTNCc7lT0I9Tt/Fjdrou6SKU08kaib6cBWHw6iWslcXsr+JVpXMjXroo0ymNjO+ojmotaH8tederf1yakUfnN0VJ+Ng4pbzTTKG2HXIOT8paBr8WS/e5AglBDhvbINCuqvvWdfp0CtJwwBreGDO2RQ0sxbO+J3PZRX2uA1BShs+GRMpudocySM5QZBKvzDtl8NcrsuO/4yKQBru+ovsdQltGLshFoMtd3dH3HcyvZJfqOEfqPCkakuX8DWCeaU+/foE/rAJx6TxftWyPS3NNF+xbAqfd00b4FcLre2IUU2MX+9Oc5AeYEmCHxOQHmBNgQy3gEmDv4PSkS3AHavxYJ+4GupPwG';
f['electrical/opto_electronics.xml'] = '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';
@@ -69,7 +69,7 @@ f['cisco/computers_and_peripherals.xml'] = '7V1dcx23kf01fFUNBjP34zFxvFVbtdlKrbOb
f['cisco/hubs_and_gateways.xml'] = '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';
f['cisco/security.xml'] = '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';
f['cisco/routers.xml'] = '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';
-f['cisco/misc.xml'] = '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';
+f['cisco/misc.xml'] = '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';
f['cisco/controllers_and_modules.xml'] = '7V1NcyM3kv01jPBcFAWgiiweNzzuOc1cOmJ2bxOymp7WWi12UGp3+98vKaq+3kviIYuUZc225zAWjaxEJjIT+QVgkX58+Hj9efOwiNX99afNIv11EeOnb//eXX/+eHVz+3CzvbrZ3j/utnd3m93Dv67vP/zr0/bDl7sDRFyknxbVfy2evzH5RKj+9tP+h3c/bn86DIzVx+PvTXP88+vxz7o6/nn98Hlz83j87bfr3e31z3eb43952OP+dfP19sPj8xdu7z9udrePY/T7Gd7vwW+39w/j3/ag17f3+5HVtyNodfWM/ffnv49/fd5/79PmcbOb/DrQ8o+nH965Ph3KPv2+5NPTOXeI1Kf/u2jW63be138q+nqcxe6imc/i9jyeFE67jCVtnDVz/Pj+3y2p//n65td/77Zf7j8Munn922YM+cvt3d3N9m672yM4/v8ThkVMyw/Xmw8rQPT5+qB4z3982h6+1RGT0oSUZ9UeQO9u70+Pjuur5TILUJ01nmZzc7d92AALJ8Tt/zbY98t2t4GfDmj/d3t7v0f29H9P+I5DpigPrD7ar/Gvu83D4/6jSEjRFzOrUU/pr1vFLwCISQG4V1AJiFwSm4HlTNjT9DyHV5PK9gpRGHN6cUZUHiYsfTyQw4kFOBsiP2tn0qsSU+XnIkhB+aw9Glo5hVnSohg7UyxP7zC/PP1TbtNCQtEJK7e0zQFZKlb3vO1BWgXClkAuKE9snR1v8AsBhICGKVUxKN4hgBS60HgBiNdR7m2hJRiNZ0ULNAfG4JiP5yHvR+HovDUEbqvRxGop1cxphYNY5geQjsSUwYOiFepRbM4YrdU6rpymA+cjzRMCSBNosMiAKdoQxv/9uDk4NoNxuB+rUdhfXS0doUmsDf1nt+vL7ggUJttx9Xv39yB532InCsOHI+H6ljoBHbiZTksF4g9hir9T9Q55O0UcAiFeT5GGylhDRFpNkQ4E9jTXAzXdT3HgTOqluOdM6uVUoo9pir6LiDvksWGGN4R8vN4ps+BKfl0+NgtZCb/HBAVeyI7GSGQHFLJ2npChkNe84BUwfEUMXxcwGxC3gLdh5ap4rQMLWrNwS9lebRMI2liEO2SJ8K9JxQxRM5fdL2qn/eafm8P/ys2f4f6EAvNXEZO6cKfnUJiyJ7SwNmvLCGiZbFknDLFcsh2qWTyM9WkKpoDisWTxNHSyZduf2BSVqGUzxX/4Y4J8RcTHIiNsrvzr7ePRIcUN+iRJekorOZ40BXE0rMzovqF2WTCKlnrto8Uar2ipZQDDtFgw2nadXO8An7pccmC8kT4vQ1QsNWBkLBnXJSIiQpBpSaE2dBIif0QoxtdIlNZ5xc1aJk8NGJkPZW5aAufiZiOXvUWELm5amue2oPt/N0oJ+1+PtdNej6iSmsJqP53qh79uHn593H7+y/7ff7z78nCoFe3/ra/NHmfcGdlhJ+8Krc8s+F5ozXx6OudLFlrDvE+XlRQDfj2sCvn9upVWmHbhnAvLrGvgSZsKZz6/0prZqyDtLzNE0/Erzn1AIn/djTgDxPRSRTnDqpSfNKrTwQE9gznzO5sNTkaHKkvwn6bGfKE02gyG1isEQSadlXMJU9/hEPuLFQOAWhJw3nhjQpev7h4cL8ghB6nwRTDnJcQYhShAagA9ofme1f8cPat3d9vtrsivqnuODX5V7wJ/d61yn65mukCv7l1VYM36Hy7jXV1V63lcf3UPC0uLhfOe719hJ1uu/SVilCk3ivU5w/cbZRK9HDQjC+ZP40C4eFtAPSWkU5QbK8Hk/UuqXeeHU9+PmE2JRM3c6Y2OwN1hKyGH7uWkXzMbtnpuTdEeSC0BwP0E36BWYgYAbXYw+PKuwdZUVBcbRDNS/pH6laSeCvg+AGtKM8pYaKZztYPq6R/DIl0mRVxZ2V4RECKIZxtwbRnGVF4gUkA1lQyggoABIXCESkkeIbFAFJboRIHj1feTm1UWiMLS+HllgCgsXkK8VPjFygIRWKJfriwQhcUpVzRefd8vVxaIwuKXKwtEYfES4qXCL1cz7FXyy5UForA45YrGq+/75coCUVj8cmWBKCxeQvx5rBc6hrOcERxRFVW70usZMByDlUSgnBH2Iq5DCeKLTLbMX5qdMTykBTdPaZD3X28fbw659b8/nYY9zrTLElaYJWz6cOF7ljD36emc306KEJjd//D/uAC7hmzC1frlE4QZs9zA6UijDgYB/6Cy58AoEJxXQUwIBbG1sYgnsdEExXg5uxkMEATxHLVjw6srKsVEmBovGaeWaYY4eUX2FRarhyiTJ5ewztAmvzKhw7B4/fx6IKYG3caArLJAtE98weZMzHYKucD5+wG0dV4yEgnDeKStMGBcx8FotOrcbAmfaMGMKGBJ9qPGQDD6mNvUv9BmnM2JwpAIQLcAr4FXbqOXiBeieMAAQ+PDSRhS6QKYSDCyYT7xdqvxcDu0C4DYpRhObSIFBa1AdEnRqJnnAoDlTwp5zbkngSQ6dTUtmV1OhlMTlzBhdeO0eQaANKw1GzpdRGY8cqMwYPK7kcEuBFAMpyUL8ngIyIUuV4DkFbS2kXgHKXysQ6JOw4oahHhz05j/uINRKxVYpwByddiuahAy39LK8S6hsdBmNAPE4pdyU9ZyzdTmLgSD3QcheuCgaOFmL0grEXtbWlPZpbPMgfsMSrbTF9eXvSI4sZhG/vRwaBMPTaaReseefjq/PbKgw6FNOQU8sD86ATc604v4o4G/IfxUqiLkLdGfhsxvTz/jT3ymOSFyurYFkI9yzP2JUT6xWjPzjQPVCW8NsBb/grJmNSIrC3QJELnxs6bOwCJcBX/jdlHftjC+2Akhd3G2c2I87eGX7rNvnOMNEvSlTuS6uDm9cnozPF6e9Vx5xxMKeQCydaNAZs8AcToUvEfqdA538eUnSedftNyF6iIwUn8CO9p5HW3ZVLmdOPASpO0K7NzPgcnb1EB+s7bbBhKdQLSIUQIkx0sp521M0UaSIbtoWADFRXM0Pp8BIz3S94pVvvFsDZwVGrJHa8U0gpBBZOsbToZbxoPO+RACP4TBJeWLyJUSG7mUhcY3HHRFTAbp985drCC3xb5k2EelCtYavMWJ4o5nE9fFHN1/jTi+CzfgfhorsAWccDVOZxr6KGeY0uhmNMA6yul1YY7l3AFmI8QdPPieYsZfT5GPmDbcEqSvBIKb2YYJn7ypq7sK4Fui9U2nFviC4sSJZ5lbIhBdTaCASIPA+ILdxI/iAiCmMji9YM1y3rz1/TK0gWvqnr22HkDuLYHrktpzNkprghDil4/hSye3uUSkL/PxM5srf5rdfm7zAuWZ3ZzHaX9NhA2Q35poEFfxl0xJwfcvAHKRhPFibqPsu9vd5uv14WPV+83ut9ubw3/uWmWrH959ff/3vxyn270LM72uqEtRvlK37FVVNaXtkMjj/5iW2epqjZfoXLZrFp+eqepClhfNfhbHZ/KlKvx+ae8siuO6kPHv8fuLS/TOJjL7+YANkh4yyebtxcxORewpIBaetx7kxLx0Y3LI26TB5YqYxWes45+MJAWeRZbyoThTL5yXAv6+KDnyYsrqrPHetYHnlTwqXXLH5nkANB237tQXlp6Xpwidt8Xrty4DDXnHmLPUMBy7LieDhanLjs1raf7Lur1JSZp8Z4tjVOMpBoVFv/jAuT/j6RJRjJAbAkHkF9m95ebv8FCllPxS83h5zTPa2DwCHK1vkeZ8chaBcZRArnFSaonpDbcUccidR2F3QAhOTS1A3mFlsc7P33OECiUaBqMRd5lbn0mEZjfDDOnJXPBpL8gN1cpe4XVj8qZpfChJA5gHbwQMy38JngvAWBxTh9Bol4g68TsdL98D42tbZY2caorReE8jV0gVveZW27hMRU8BvIymTgG9H/PppBkg8r5/FqO87WUUBTlYQuHvxrBgpHRPvqAPVpBcJOmawbX8TrmeVWZxaGfSZ9PYGy15u0adZdXPoDJM0nUqsq0FMGTD9VsLsFEUIGnOA7DYpXiuVw39DmJeyclFZ5ALKifl2yg6uc8QCkFjrfPfax5gfyk5q+A2egaMFCSsqAnHmTHoB2EYRjtBrQSQ4u09wwqurz72yYc2BQC4AFLjWHu068NaWvDiqnbhLtnTEbixweobpbfEnkFGJyPwibtRG8Lph+YCHE6I9PYnds2MRKl/S8t80xBPRkTAPJKY1CuHfGpuzej5pbs1oDaeEasIe8IXE4j0SLhTItyhIdK7v7/RCZABeUmzsBKzC4aPfDmEThbFMwF05o69D9cGWvBeFwLkTQVz6WxfTyTKcYK+0XrTZA7rJ6emSBptlQFAm37ikgWjWY2kxSzWcwbrc7y07lFxAVBI9YLx2rVjBln22M1lqXTnjncyWvpbrsoVDNaxODOoJBZXpn8xt5WI+4cOU/uIctx3Dg17/fer9jKfns757Vy1hw0M36/au1pDPaK/e+/12oU8DzHEl20XottVnR1D3unB+CAL/8yvIIshmsdvsF1AOyXMW5eseMdbE3qBK/rfIBeQaBfBTgX2zt7NHq3hBd1EeB/1S2i927QUiNZMeX6xQnCSYQYC6PQkP/qsYYabTFz1iuTGcyaAwS5dBcZpxixKvoq7oI6FKDwRTZL3E/AF8LoTCccrRvOt5f7T2/A0r66T0eki1/iCy+Tg+57JiEoxDNb8lQC6yq6el8h3DbiljNp3clJc0isBWqLLGKSLoorByh4N5ZI5E+CyziFMN6qiNprkhSETLRqseR8oQNKcB2DxSnGbHrKzlizbZaaEgh5xKKufAYyU79FdU2UKxK9vaSXFcpjzNgIu9coC6bkA+dEUrwojDZ8vuJYX5qN7N1oJ4OxeKKmL8gbvljbtFLBUa9+DtUc4N3gaQnpPbAHIQ7twhRfVVBVZsbw7enxzVN7tvxpRcoZK42hDS6dopQrvFPkgGqPy7hTzcx/LpLaLaAtuZBht2KEXZcQ9oihb3u0/lXoe6ishIvC9BrobwMxXHY5X+2RN/ZLS5bkvhfXRO15aVxB1XT0kFAHr8BJAX9lEd1Gd6aNZ7d1ymnNgZLjOLNfXrhl43BPLF96RXVIDuCw+JUoWBcmm+yGM8yFUS5zOSnrqhENEhD51YzY5b343fHzpO9Ac54DIkj9PDLcthUJqmwHi5La+UlEZ9sXssu3vD4+bT/ufDm+m7bZ3d5vdcWof0c/qK7fDLvm9cpv59HTOb6Zyiyeyrqp1Ib//cyu3LV4k0Rby5D1+f1FcucXnuXOVKc786kwEweRzctXssdZc9FM5rsnxK5TiyarKMThPuSo5cSJQ30TlpAaqR+JqqLV/cXDzWfxBJenci/Rm+Wq86+z3q2H3wT1fdKxClC37eSHQ7WxRH+2tKcQORqi5poCP735AzBzpdva7R053LgLamtFKggOjBZqhczpAdItX2ctubcA2Yl/kOUVYh9Ok8toq4S96odhZdv2DBP283BNuMTpYDl4ALub6i/xc0sxbz0QGuuRwJqCYUXH0ztNIOOsu9No/zbNSSEahzF/AN+QE8HD5QdY46L1v6+CXkvmCUkqUSLRBmR3M/fN29/jl+uk2v+7d63FYV/3wz/c/pqqq4E6/4V6Fr72P8j3E8wYzbyjEg4+/kQv9XrQ3F3nyulf5wSVe8jZyMPR+gO5wQ1kQZAz33Uqm0FEHgIqAnOP/YOr9y0MENUlN8qWZUEDEnyZyvFzbI3RmGqsgQpUa4jEIjLrXIYeC42ISoAzvNGbCsYrCsRru3h+7TF2tdTgHPT7MiuVW6+EIfGsAcMcp7jZPcQsEYwiD2EZeWY+wP5s13PWPwWAdiVw4Olurqi6iHU5gdWiBxXVDOIG9tfV63iVd8mlPSG09SYbStGQGV8RgrGCn4ZaWUfEew+20LpDmMEU+wIxifRJlQv4WRJmzNzWmjiLpba/aowcYUaokjxOvccNsToy8YU4nxm9tkTgFZHVD2hSQ3axOAVle8BqlkTSzBJyTduNRp5N2psW+pErTPk+H10tUesXsXvJyr5jjS17ugldIrSm0gB8ylbWxQbGsN7FA1ljcG0yTgklpQLXXM0iumOQlyxnvzONRp83ZMCq3V5Kks5obeyVrOXcjlSh5Q/gbMHANIW8ga9sQ5kblpyEfX/MOwqJGBAO1BTsXeyYNPzTbGgSTnLNVKRHzJXObPaMl449E/HIWfoP+YEgbivt4UKJBCQdlFA5VnJUNMCdWNEBb4PAbxqWZouV9tIFGR95DG2XUa17tmgiuebVropnLIsOgnFGV2IPGHd4Y5hKmY1erhdziuUJurThiNtabMJOoGY+YGsh5C2UXomZJL8BfQDkhR8p5F8MtPJhWRVPeWmbdcBdpG+c39caj+m0U8V/SV4QSXIl3zCKeDEOaiN3JMKaJI8ACg0oRoIG/kshbC7ckn/ewxD4beA+pnWLm3bMo9GTM7KNz03piF93o1Z/nrnYvzmeiUSuLxLYtWclCbd5SW2JhkqFnbGSKpsD+csI2A7Yz/ZDTnft08oQwNyWrj7taWrHKgQNjqvwlXyadGpgCe9oSjyP758bhDMpVTgnVFw5yljRyBs8Ix6KxfXM4FgvcB0h5RFTuPMWQ6uBWNGnKECHLcmSJwrsVC0wJol0TmxvWYtitUX0t9l62dwGL/WX+IPHY8Ioi8zmxzeJ0KR3DVDslnTOCgCe+RTnmdF00coVIqZGojEystMvI4BW7IohZG+VhSC5hpjGTiWTMSHARZhZqziMY2cLIiQQjWxitTMJFSx58lF5QHI2tgW2W4eJbPq/hd8qtCRQqGbl4zpskIx0+x/Xg4OoP97sawq/rTYCZ04RFTq/h7xsBPSfNUsXEc3Laekf+hTvuSuIr9rSjEWLxikdD3HnF6VaDAjc7cqLU8LSjwXTjmGxVInFFNg7xg49Cdp1ud5MxXv/J044vIOXo7nmEz/U13RR2fWm1iduWwL1cCmO49rS4AyNwAI/d6VxwoQb1Aq+Im+JlVBM494+BTUHqwFhfo2jOkc0aMZNoFRhv2LsCp/xboplyNcDtgmQ/G+4xL08GON3J/BPRTSgps+QXmUObsKRFBjYHenIdk/2gvVBFg4QzHnyop9jkgRbDOAJCfBAAEOJjAAUWec3raXghkPYLFEMBXw1rcYYt4qtL9FGZghM6xvEgvAzCOBukdlm8+yMYTiV7tMGo+LNHG0qMEkaJ2JLGHm00Gixm7u/s1EZku+XfAPI5zk0j0OLVH9yXZviyZtBUELcZhQo8D4aONGevQ0nZgH3KYESsXJ8KRtBqHEkriVuB88HIEhjGmSNWPg/nb2fC83ABXQ6wmJGzP2RbzrFcU7PVFhDEdSAjKuMykNEHyFWgEvyRpNnAHyVy5msJ8oCYVb7JiIXfkjfFu6+R/+D4IGAvIhtMfoxdm61gmC1ONwVjt+B0UyhooMbOEQM/to4YyLF3xMT8Qhd7dD88HH/5Pw==';
f['cisco/modems_and_phones.xml'] = '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';
f['cisco/people.xml'] = '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';
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index fb7d5aee..d92058d5 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -96,7 +96,7 @@ ea;m.wa=m.normalizeRCData=e;m.xa=m.sanitize=function(a,b,d,e){return Q(a,ea(b,d,
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pako=t()}}(function(){return function r(s,o,l){function h(e,t){if(!o[e]){if(!s[e]){var a="function"==typeof require&&require;if(!t&&a)return a(e,!0);if(d)return d(e,!0);var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}var n=o[e]={exports:{}};s[e][0].call(n.exports,function(t){return h(s[e][1][t]||t)},n,n.exports,r,s,o,l)}return o[e].exports}for(var d="function"==typeof require&&require,t=0;t<l.length;t++)h(l[t]);return h}({1:[function(t,e,a){"use strict";var s=t("./zlib/deflate"),o=t("./utils/common"),l=t("./utils/strings"),n=t("./zlib/messages"),r=t("./zlib/zstream"),h=Object.prototype.toString,d=0,f=-1,_=0,u=8;function c(t){if(!(this instanceof c))return new c(t);this.options=o.assign({level:f,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:_,to:""},t||{});var e=this.options;e.raw&&0<e.windowBits?e.windowBits=-e.windowBits:e.gzip&&0<e.windowBits&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new r,this.strm.avail_out=0;var a=s.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==d)throw new Error(n[a]);if(e.header&&s.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(i="string"==typeof e.dictionary?l.string2buf(e.dictionary):"[object ArrayBuffer]"===h.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(a=s.deflateSetDictionary(this.strm,i))!==d)throw new Error(n[a]);this._dict_set=!0}}function i(t,e){var a=new c(e);if(a.push(t,!0),a.err)throw a.msg||n[a.err];return a.result}c.prototype.push=function(t,e){var a,i,n=this.strm,r=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:!0===e?4:0,"string"==typeof t?n.input=l.string2buf(t):"[object ArrayBuffer]"===h.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new o.Buf8(r),n.next_out=0,n.avail_out=r),1!==(a=s.deflate(n,i))&&a!==d)return this.onEnd(a),!(this.ended=!0);0!==n.avail_out&&(0!==n.avail_in||4!==i&&2!==i)||("string"===this.options.to?this.onData(l.buf2binstring(o.shrinkBuf(n.output,n.next_out))):this.onData(o.shrinkBuf(n.output,n.next_out)))}while((0<n.avail_in||0===n.avail_out)&&1!==a);return 4===i?(a=s.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===d):2!==i||(this.onEnd(d),!(n.avail_out=0))},c.prototype.onData=function(t){this.chunks.push(t)},c.prototype.onEnd=function(t){t===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Deflate=c,a.deflate=i,a.deflateRaw=function(t,e){return(e=e||{}).raw=!0,i(t,e)},a.gzip=function(t,e){return(e=e||{}).gzip=!0,i(t,e)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(t,e,a){"use strict";var f=t("./zlib/inflate"),_=t("./utils/common"),u=t("./utils/strings"),c=t("./zlib/constants"),i=t("./zlib/messages"),n=t("./zlib/zstream"),r=t("./zlib/gzheader"),b=Object.prototype.toString;function s(t){if(!(this instanceof s))return new s(t);this.options=_.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&0<=e.windowBits&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(0<=e.windowBits&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),15<e.windowBits&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new n,this.strm.avail_out=0;var a=f.inflateInit2(this.strm,e.windowBits);if(a!==c.Z_OK)throw new Error(i[a]);if(this.header=new r,f.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=u.string2buf(e.dictionary):"[object ArrayBuffer]"===b.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=f.inflateSetDictionary(this.strm,e.dictionary))!==c.Z_OK))throw new Error(i[a])}function o(t,e){var a=new s(e);if(a.push(t,!0),a.err)throw a.msg||i[a.err];return a.result}s.prototype.push=function(t,e){var a,i,n,r,s,o=this.strm,l=this.options.chunkSize,h=this.options.dictionary,d=!1;if(this.ended)return!1;i=e===~~e?e:!0===e?c.Z_FINISH:c.Z_NO_FLUSH,"string"==typeof t?o.input=u.binstring2buf(t):"[object ArrayBuffer]"===b.call(t)?o.input=new Uint8Array(t):o.input=t,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new _.Buf8(l),o.next_out=0,o.avail_out=l),(a=f.inflate(o,c.Z_NO_FLUSH))===c.Z_NEED_DICT&&h&&(a=f.inflateSetDictionary(this.strm,h)),a===c.Z_BUF_ERROR&&!0===d&&(a=c.Z_OK,d=!1),a!==c.Z_STREAM_END&&a!==c.Z_OK)return this.onEnd(a),!(this.ended=!0);o.next_out&&(0!==o.avail_out&&a!==c.Z_STREAM_END&&(0!==o.avail_in||i!==c.Z_FINISH&&i!==c.Z_SYNC_FLUSH)||("string"===this.options.to?(n=u.utf8border(o.output,o.next_out),r=o.next_out-n,s=u.buf2string(o.output,n),o.next_out=r,o.avail_out=l-r,r&&_.arraySet(o.output,o.output,n,r,0),this.onData(s)):this.onData(_.shrinkBuf(o.output,o.next_out)))),0===o.avail_in&&0===o.avail_out&&(d=!0)}while((0<o.avail_in||0===o.avail_out)&&a!==c.Z_STREAM_END);return a===c.Z_STREAM_END&&(i=c.Z_FINISH),i===c.Z_FINISH?(a=f.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===c.Z_OK):i!==c.Z_SYNC_FLUSH||(this.onEnd(c.Z_OK),!(o.avail_out=0))},s.prototype.onData=function(t){this.chunks.push(t)},s.prototype.onEnd=function(t){t===c.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=_.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Inflate=s,a.inflate=o,a.inflateRaw=function(t,e){return(e=e||{}).raw=!0,o(t,e)},a.ungzip=o},{"./utils/common":3,"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(t,e,a){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;a.assign=function(t){for(var e,a,i=Array.prototype.slice.call(arguments,1);i.length;){var n=i.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)e=n,a=r,Object.prototype.hasOwnProperty.call(e,a)&&(t[r]=n[r])}}return t},a.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,a,i,n){if(e.subarray&&t.subarray)t.set(e.subarray(a,a+i),n);else for(var r=0;r<i;r++)t[n+r]=e[a+r]},flattenChunks:function(t){var e,a,i,n,r,s;for(e=i=0,a=t.length;e<a;e++)i+=t[e].length;for(s=new Uint8Array(i),e=n=0,a=t.length;e<a;e++)r=t[e],s.set(r,n),n+=r.length;return s}},r={arraySet:function(t,e,a,i,n){for(var r=0;r<i;r++)t[n+r]=e[a+r]},flattenChunks:function(t){return[].concat.apply([],t)}};a.setTyped=function(t){t?(a.Buf8=Uint8Array,a.Buf16=Uint16Array,a.Buf32=Int32Array,a.assign(a,n)):(a.Buf8=Array,a.Buf16=Array,a.Buf32=Array,a.assign(a,r))},a.setTyped(i)},{}],4:[function(t,e,a){"use strict";var l=t("./common"),n=!0,r=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){r=!1}for(var h=new l.Buf8(256),i=0;i<256;i++)h[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;function d(t,e){if(e<65534&&(t.subarray&&r||!t.subarray&&n))return String.fromCharCode.apply(null,l.shrinkBuf(t,e));for(var a="",i=0;i<e;i++)a+=String.fromCharCode(t[i]);return a}h[254]=h[254]=1,a.string2buf=function(t){var e,a,i,n,r,s=t.length,o=0;for(n=0;n<s;n++)55296==(64512&(a=t.charCodeAt(n)))&&n+1<s&&56320==(64512&(i=t.charCodeAt(n+1)))&&(a=65536+(a-55296<<10)+(i-56320),n++),o+=a<128?1:a<2048?2:a<65536?3:4;for(e=new l.Buf8(o),n=r=0;r<o;n++)55296==(64512&(a=t.charCodeAt(n)))&&n+1<s&&56320==(64512&(i=t.charCodeAt(n+1)))&&(a=65536+(a-55296<<10)+(i-56320),n++),a<128?e[r++]=a:(a<2048?e[r++]=192|a>>>6:(a<65536?e[r++]=224|a>>>12:(e[r++]=240|a>>>18,e[r++]=128|a>>>12&63),e[r++]=128|a>>>6&63),e[r++]=128|63&a);return e},a.buf2binstring=function(t){return d(t,t.length)},a.binstring2buf=function(t){for(var e=new l.Buf8(t.length),a=0,i=e.length;a<i;a++)e[a]=t.charCodeAt(a);return e},a.buf2string=function(t,e){var a,i,n,r,s=e||t.length,o=new Array(2*s);for(a=i=0;a<s;)if((n=t[a++])<128)o[i++]=n;else if(4<(r=h[n]))o[i++]=65533,a+=r-1;else{for(n&=2===r?31:3===r?15:7;1<r&&a<s;)n=n<<6|63&t[a++],r--;1<r?o[i++]=65533:n<65536?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|1023&n)}return d(o,i)},a.utf8border=function(t,e){var a;for((e=e||t.length)>t.length&&(e=t.length),a=e-1;0<=a&&128==(192&t[a]);)a--;return a<0?e:0===a?e:a+h[t[a]]>e?a:e}},{"./common":3}],5:[function(t,e,a){"use strict";e.exports=function(t,e,a,i){for(var n=65535&t|0,r=t>>>16&65535|0,s=0;0!==a;){for(a-=s=2e3<a?2e3:a;r=r+(n=n+e[i++]|0)|0,--s;);n%=65521,r%=65521}return n|r<<16|0}},{}],6:[function(t,e,a){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(t,e,a){"use strict";var o=function(){for(var t,e=[],a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e}();e.exports=function(t,e,a,i){var n=o,r=i+a;t^=-1;for(var s=i;s<r;s++)t=t>>>8^n[255&(t^e[s])];return-1^t}},{}],8:[function(t,e,a){"use strict";var l,_=t("../utils/common"),h=t("./trees"),u=t("./adler32"),c=t("./crc32"),i=t("./messages"),d=0,f=4,b=0,g=-2,m=-1,w=4,n=2,p=8,v=9,r=286,s=30,o=19,k=2*r+1,y=15,x=3,z=258,B=z+x+1,S=42,E=113,A=1,Z=2,R=3,C=4;function N(t,e){return t.msg=i[e],e}function O(t){return(t<<1)-(4<t?9:0)}function D(t){for(var e=t.length;0<=--e;)t[e]=0}function I(t){var e=t.state,a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(_.arraySet(t.output,e.pending_buf,e.pending_out,a,t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))}function U(t,e){h._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,I(t.strm)}function T(t,e){t.pending_buf[t.pending++]=e}function F(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var a,i,n=t.max_chain_length,r=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-B?t.strstart-(t.w_size-B):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+z,u=h[r+s-1],c=h[r+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(h[(a=e)+s]===c&&h[a+s-1]===u&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do{}while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=z-(_-r),r=_-z,s<i){if(t.match_start=e,o<=(s=i))break;u=h[r+s-1],c=h[r+s]}}}while((e=f[e&d])>l&&0!=--n);return s<=t.lookahead?s:t.lookahead}function H(t){var e,a,i,n,r,s,o,l,h,d,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-B)){for(_.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=a=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--a;);for(e=a=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--a;);n+=f}if(0===t.strm.avail_in)break;if(s=t.strm,o=t.window,l=t.strstart+t.lookahead,h=n,d=void 0,d=s.avail_in,h<d&&(d=h),a=0===d?0:(s.avail_in-=d,_.arraySet(o,s.input,s.next_in,d,l),1===s.state.wrap?s.adler=u(s.adler,o,d,l):2===s.state.wrap&&(s.adler=c(s.adler,o,d,l)),s.next_in+=d,s.total_in+=d,d),t.lookahead+=a,t.lookahead+t.insert>=x)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=(t.ins_h<<t.hash_shift^t.window[r+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[r+x-1])&t.hash_mask,t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<x)););}while(t.lookahead<B&&0!==t.strm.avail_in)}function j(t,e){for(var a,i;;){if(t.lookahead<B){if(H(t),t.lookahead<B&&e===d)return A;if(0===t.lookahead)break}if(a=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-B&&(t.match_length=L(t,a)),t.match_length>=x)if(i=h._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart,0!=--t.match_length;);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=h._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(U(t,!1),0===t.strm.avail_out))return A}return t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(U(t,!0),0===t.strm.avail_out?R:C):t.last_lit&&(U(t,!1),0===t.strm.avail_out)?A:Z}function K(t,e){for(var a,i,n;;){if(t.lookahead<B){if(H(t),t.lookahead<B&&e===d)return A;if(0===t.lookahead)break}if(a=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=x-1,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-B&&(t.match_length=L(t,a),t.match_length<=5&&(1===t.strategy||t.match_length===x&&4096<t.strstart-t.match_start)&&(t.match_length=x-1)),t.prev_length>=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=h._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!=--t.prev_length;);if(t.match_available=0,t.match_length=x-1,t.strstart++,i&&(U(t,!1),0===t.strm.avail_out))return A}else if(t.match_available){if((i=h._tr_tally(t,0,t.window[t.strstart-1]))&&U(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return A}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=h._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(U(t,!0),0===t.strm.avail_out?R:C):t.last_lit&&(U(t,!1),0===t.strm.avail_out)?A:Z}function M(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}function P(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=p,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new _.Buf16(2*k),this.dyn_dtree=new _.Buf16(2*(2*s+1)),this.bl_tree=new _.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new _.Buf16(y+1),this.heap=new _.Buf16(2*r+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new _.Buf16(2*r+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Y(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=n,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?S:E,t.adler=2===e.wrap?0:1,e.last_flush=d,h._tr_init(e),b):N(t,g)}function q(t){var e,a=Y(t);return a===b&&((e=t.state).window_size=2*e.w_size,D(e.head),e.max_lazy_match=l[e.level].max_lazy,e.good_match=l[e.level].good_length,e.nice_match=l[e.level].nice_length,e.max_chain_length=l[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0),a}function G(t,e,a,i,n,r){if(!t)return g;var s=1;if(e===m&&(e=6),i<0?(s=0,i=-i):15<i&&(s=2,i-=16),n<1||v<n||a!==p||i<8||15<i||e<0||9<e||r<0||w<r)return N(t,g);8===i&&(i=9);var o=new P;return(t.state=o).strm=t,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new _.Buf8(2*o.w_size),o.head=new _.Buf16(o.hash_size),o.prev=new _.Buf16(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new _.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=r,o.method=a,q(t)}l=[new M(0,0,0,0,function(t,e){var a=65535;for(a>t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(H(t),0===t.lookahead&&e===d)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,U(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-B&&(U(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(U(t,!0),0===t.strm.avail_out?R:C):(t.strstart>t.block_start&&(U(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,j),new M(4,5,16,8,j),new M(4,6,32,32,j),new M(4,4,16,16,K),new M(8,16,32,32,K),new M(8,16,128,128,K),new M(8,32,128,256,K),new M(32,128,258,1024,K),new M(32,258,258,4096,K)],a.deflateInit=function(t,e){return G(t,e,p,15,8,0)},a.deflateInit2=G,a.deflateReset=q,a.deflateResetKeep=Y,a.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?g:(t.state.gzhead=e,b):g},a.deflate=function(t,e){var a,i,n,r;if(!t||!t.state||5<e||e<0)return t?N(t,g):g;if(i=t.state,!t.output||!t.input&&0!==t.avail_in||666===i.status&&e!==f)return N(t,0===t.avail_out?-5:g);if(i.strm=t,a=i.last_flush,i.last_flush=e,i.status===S)if(2===i.wrap)t.adler=0,T(i,31),T(i,139),T(i,8),i.gzhead?(T(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),T(i,255&i.gzhead.time),T(i,i.gzhead.time>>8&255),T(i,i.gzhead.time>>16&255),T(i,i.gzhead.time>>24&255),T(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),T(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(T(i,255&i.gzhead.extra.length),T(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=c(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(T(i,0),T(i,0),T(i,0),T(i,0),T(i,0),T(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),T(i,3),i.status=E);else{var s=p+(i.w_bits-8<<4)<<8;s|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(s|=32),s+=31-s%31,i.status=E,F(i,s),0!==i.strstart&&(F(i,t.adler>>>16),F(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=c(t.adler,i.pending_buf,i.pending-n,n)),I(t),n=i.pending,i.pending!==i.pending_buf_size));)T(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=c(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=c(t.adler,i.pending_buf,i.pending-n,n)),I(t),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}T(i,r=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0)}while(0!==r);i.gzhead.hcrc&&i.pending>n&&(t.adler=c(t.adler,i.pending_buf,i.pending-n,n)),0===r&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=c(t.adler,i.pending_buf,i.pending-n,n)),I(t),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}T(i,r=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0)}while(0!==r);i.gzhead.hcrc&&i.pending>n&&(t.adler=c(t.adler,i.pending_buf,i.pending-n,n)),0===r&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&I(t),i.pending+2<=i.pending_buf_size&&(T(i,255&t.adler),T(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(I(t),0===t.avail_out)return i.last_flush=-1,b}else if(0===t.avail_in&&O(e)<=O(a)&&e!==f)return N(t,-5);if(666===i.status&&0!==t.avail_in)return N(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==d&&666!==i.status){var o=2===i.strategy?function(t,e){for(var a;;){if(0===t.lookahead&&(H(t),0===t.lookahead)){if(e===d)return A;break}if(t.match_length=0,a=h._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(U(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(U(t,!0),0===t.strm.avail_out?R:C):t.last_lit&&(U(t,!1),0===t.strm.avail_out)?A:Z}(i,e):3===i.strategy?function(t,e){for(var a,i,n,r,s=t.window;;){if(t.lookahead<=z){if(H(t),t.lookahead<=z&&e===d)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0<t.strstart&&(i=s[n=t.strstart-1])===s[++n]&&i===s[++n]&&i===s[++n]){r=t.strstart+z;do{}while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&n<r);t.match_length=z-(r-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(a=h._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=h._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(U(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(U(t,!0),0===t.strm.avail_out?R:C):t.last_lit&&(U(t,!1),0===t.strm.avail_out)?A:Z}(i,e):l[i.level].func(i,e);if(o!==R&&o!==C||(i.status=666),o===A||o===R)return 0===t.avail_out&&(i.last_flush=-1),b;if(o===Z&&(1===e?h._tr_align(i):5!==e&&(h._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),I(t),0===t.avail_out))return i.last_flush=-1,b}return e!==f?b:i.wrap<=0?1:(2===i.wrap?(T(i,255&t.adler),T(i,t.adler>>8&255),T(i,t.adler>>16&255),T(i,t.adler>>24&255),T(i,255&t.total_in),T(i,t.total_in>>8&255),T(i,t.total_in>>16&255),T(i,t.total_in>>24&255)):(F(i,t.adler>>>16),F(i,65535&t.adler)),I(t),0<i.wrap&&(i.wrap=-i.wrap),0!==i.pending?b:1)},a.deflateEnd=function(t){var e;return t&&t.state?(e=t.state.status)!==S&&69!==e&&73!==e&&91!==e&&103!==e&&e!==E&&666!==e?N(t,g):(t.state=null,e===E?N(t,-3):b):g},a.deflateSetDictionary=function(t,e){var a,i,n,r,s,o,l,h,d=e.length;if(!t||!t.state)return g;if(2===(r=(a=t.state).wrap)||1===r&&a.status!==S||a.lookahead)return g;for(1===r&&(t.adler=u(t.adler,e,d,0)),a.wrap=0,d>=a.w_size&&(0===r&&(D(a.head),a.strstart=0,a.block_start=0,a.insert=0),h=new _.Buf8(a.w_size),_.arraySet(h,e,d-a.w_size,a.w_size,0),e=h,d=a.w_size),s=t.avail_in,o=t.next_in,l=t.input,t.avail_in=d,t.next_in=0,t.input=e,H(a);a.lookahead>=x;){for(i=a.strstart,n=a.lookahead-(x-1);a.ins_h=(a.ins_h<<a.hash_shift^a.window[i+x-1])&a.hash_mask,a.prev[i&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=i,i++,--n;);a.strstart=i,a.lookahead=x-1,H(a)}return a.strstart+=a.lookahead,a.block_start=a.strstart,a.insert=a.lookahead,a.lookahead=0,a.match_length=a.prev_length=x-1,a.match_available=0,t.next_in=o,t.input=l,t.avail_in=s,a.wrap=r,b},a.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,"./crc32":7,"./messages":13,"./trees":14}],9:[function(t,e,a){"use strict";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],10:[function(t,e,a){"use strict";e.exports=function(t,e){var a,i,n,r,s,o,l,h,d,f,_,u,c,b,g,m,w,p,v,k,y,x,z,B,S;a=t.state,i=t.next_in,B=t.input,n=i+(t.avail_in-5),r=t.next_out,S=t.output,s=r-(e-t.avail_out),o=r+(t.avail_out-257),l=a.dmax,h=a.wsize,d=a.whave,f=a.wnext,_=a.window,u=a.hold,c=a.bits,b=a.lencode,g=a.distcode,m=(1<<a.lenbits)-1,w=(1<<a.distbits)-1;t:do{c<15&&(u+=B[i++]<<c,c+=8,u+=B[i++]<<c,c+=8),p=b[u&m];e:for(;;){if(u>>>=v=p>>>24,c-=v,0===(v=p>>>16&255))S[r++]=65535&p;else{if(!(16&v)){if(0==(64&v)){p=b[(65535&p)+(u&(1<<v)-1)];continue e}if(32&v){a.mode=12;break t}t.msg="invalid literal/length code",a.mode=30;break t}k=65535&p,(v&=15)&&(c<v&&(u+=B[i++]<<c,c+=8),k+=u&(1<<v)-1,u>>>=v,c-=v),c<15&&(u+=B[i++]<<c,c+=8,u+=B[i++]<<c,c+=8),p=g[u&w];a:for(;;){if(u>>>=v=p>>>24,c-=v,!(16&(v=p>>>16&255))){if(0==(64&v)){p=g[(65535&p)+(u&(1<<v)-1)];continue a}t.msg="invalid distance code",a.mode=30;break t}if(y=65535&p,c<(v&=15)&&(u+=B[i++]<<c,(c+=8)<v&&(u+=B[i++]<<c,c+=8)),l<(y+=u&(1<<v)-1)){t.msg="invalid distance too far back",a.mode=30;break t}if(u>>>=v,c-=v,(v=r-s)<y){if(d<(v=y-v)&&a.sane){t.msg="invalid distance too far back",a.mode=30;break t}if(z=_,(x=0)===f){if(x+=h-v,v<k){for(k-=v;S[r++]=_[x++],--v;);x=r-y,z=S}}else if(f<v){if(x+=h+f-v,(v-=f)<k){for(k-=v;S[r++]=_[x++],--v;);if(x=0,f<k){for(k-=v=f;S[r++]=_[x++],--v;);x=r-y,z=S}}}else if(x+=f-v,v<k){for(k-=v;S[r++]=_[x++],--v;);x=r-y,z=S}for(;2<k;)S[r++]=z[x++],S[r++]=z[x++],S[r++]=z[x++],k-=3;k&&(S[r++]=z[x++],1<k&&(S[r++]=z[x++]))}else{for(x=r-y;S[r++]=S[x++],S[r++]=S[x++],S[r++]=S[x++],2<(k-=3););k&&(S[r++]=S[x++],1<k&&(S[r++]=S[x++]))}break}}break}}while(i<n&&r<o);i-=k=c>>3,u&=(1<<(c-=k<<3))-1,t.next_in=i,t.next_out=r,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=r<o?o-r+257:257-(r-o),a.hold=u,a.bits=c}},{}],11:[function(t,e,a){"use strict";var Z=t("../utils/common"),R=t("./adler32"),C=t("./crc32"),N=t("./inffast"),O=t("./inftrees"),D=1,I=2,U=0,T=-2,F=1,i=852,n=592;function L(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function r(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Z.Buf16(320),this.work=new Z.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function s(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=F,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Z.Buf32(i),e.distcode=e.distdyn=new Z.Buf32(n),e.sane=1,e.back=-1,U):T}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,s(t)):T}function l(t,e){var a,i;return t&&t.state?(i=t.state,e<0?(a=0,e=-e):(a=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15<e)?T:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,o(t))):T}function h(t,e){var a,i;return t?(i=new r,(t.state=i).window=null,(a=l(t,e))!==U&&(t.state=null),a):T}var d,f,_=!0;function H(t){if(_){var e;for(d=new Z.Buf32(512),f=new Z.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(O(D,t.lens,0,288,d,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;O(I,t.lens,0,32,f,0,t.work,{bits:5}),_=!1}t.lencode=d,t.lenbits=9,t.distcode=f,t.distbits=5}function j(t,e,a,i){var n,r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Z.Buf8(r.wsize)),i>=r.wsize?(Z.arraySet(r.window,e,a-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(i<(n=r.wsize-r.wnext)&&(n=i),Z.arraySet(r.window,e,a-i,n,r.wnext),(i-=n)?(Z.arraySet(r.window,e,a-i,i,0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=n))),0}a.inflateReset=o,a.inflateReset2=l,a.inflateResetKeep=s,a.inflateInit=function(t){return h(t,15)},a.inflateInit2=h,a.inflate=function(t,e){var a,i,n,r,s,o,l,h,d,f,_,u,c,b,g,m,w,p,v,k,y,x,z,B,S=0,E=new Z.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return T;12===(a=t.state).mode&&(a.mode=13),s=t.next_out,n=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,f=o,_=l,x=U;t:for(;;)switch(a.mode){case F:if(0===a.wrap){a.mode=13;break}for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(2&a.wrap&&35615===h){E[a.check=0]=255&h,E[1]=h>>>8&255,a.check=C(a.check,E,2,0),d=h=0,a.mode=2;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=30;break}if(8!=(15&h)){t.msg="unknown compression method",a.mode=30;break}if(d-=4,y=8+(15&(h>>>=4)),0===a.wbits)a.wbits=y;else if(y>a.wbits){t.msg="invalid window size",a.mode=30;break}a.dmax=1<<y,t.adler=a.check=1,a.mode=512&h?10:12,d=h=0;break;case 2:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.flags=h,8!=(255&a.flags)){t.msg="unknown compression method",a.mode=30;break}if(57344&a.flags){t.msg="unknown header flags set",a.mode=30;break}a.head&&(a.head.text=h>>8&1),512&a.flags&&(E[0]=255&h,E[1]=h>>>8&255,a.check=C(a.check,E,2,0)),d=h=0,a.mode=3;case 3:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.time=h),512&a.flags&&(E[0]=255&h,E[1]=h>>>8&255,E[2]=h>>>16&255,E[3]=h>>>24&255,a.check=C(a.check,E,4,0)),d=h=0,a.mode=4;case 4:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&(E[0]=255&h,E[1]=h>>>8&255,a.check=C(a.check,E,2,0)),d=h=0,a.mode=5;case 5:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&(E[0]=255&h,E[1]=h>>>8&255,a.check=C(a.check,E,2,0)),d=h=0}else a.head&&(a.head.extra=null);a.mode=6;case 6:if(1024&a.flags&&(o<(u=a.length)&&(u=o),u&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Array(a.head.extra_len)),Z.arraySet(a.head.extra,i,r,u,y)),512&a.flags&&(a.check=C(a.check,i,u,r)),o-=u,r+=u,a.length-=u),a.length))break t;a.length=0,a.mode=7;case 7:if(2048&a.flags){if(0===o)break t;for(u=0;y=i[r+u++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y)),y&&u<o;);if(512&a.flags&&(a.check=C(a.check,i,u,r)),o-=u,r+=u,y)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=8;case 8:if(4096&a.flags){if(0===o)break t;for(u=0;y=i[r+u++],a.head&&y&&a.length<65536&&(a.head.comment+=String.fromCharCode(y)),y&&u<o;);if(512&a.flags&&(a.check=C(a.check,i,u,r)),o-=u,r+=u,y)break t}else a.head&&(a.head.comment=null);a.mode=9;case 9:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=30;break}d=h=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=12;break;case 10:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}t.adler=a.check=L(h),d=h=0,a.mode=11;case 11:if(0===a.havedict)return t.next_out=s,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,2;t.adler=a.check=1,a.mode=12;case 12:if(5===e||6===e)break t;case 13:if(a.last){h>>>=7&d,d-=7&d,a.mode=27;break}for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}switch(a.last=1&h,d-=1,3&(h>>>=1)){case 0:a.mode=14;break;case 1:if(H(a),a.mode=20,6!==e)break;h>>>=2,d-=2;break t;case 2:a.mode=17;break;case 3:t.msg="invalid block type",a.mode=30}h>>>=2,d-=2;break;case 14:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=30;break}if(a.length=65535&h,d=h=0,a.mode=15,6===e)break t;case 15:a.mode=16;case 16:if(u=a.length){if(o<u&&(u=o),l<u&&(u=l),0===u)break t;Z.arraySet(n,i,r,u,s),o-=u,r+=u,l-=u,s+=u,a.length-=u;break}a.mode=12;break;case 17:for(;d<14;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,286<a.nlen||30<a.ndist){t.msg="too many length or distance symbols",a.mode=30;break}a.have=0,a.mode=18;case 18:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.lens[A[a.have++]]=7&h,h>>>=3,d-=3}for(;a.have<19;)a.lens[A[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,z={bits:a.lenbits},x=O(0,a.lens,0,19,a.lencode,0,a.work,z),a.lenbits=z.bits,x){t.msg="invalid code lengths set",a.mode=30;break}a.have=0,a.mode=19;case 19:for(;a.have<a.nlen+a.ndist;){for(;m=(S=a.lencode[h&(1<<a.lenbits)-1])>>>16&255,w=65535&S,!((g=S>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(w<16)h>>>=g,d-=g,a.lens[a.have++]=w;else{if(16===w){for(B=g+2;d<B;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h>>>=g,d-=g,0===a.have){t.msg="invalid bit length repeat",a.mode=30;break}y=a.lens[a.have-1],u=3+(3&h),h>>>=2,d-=2}else if(17===w){for(B=g+3;d<B;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}d-=g,y=0,u=3+(7&(h>>>=g)),h>>>=3,d-=3}else{for(B=g+7;d<B;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}d-=g,y=0,u=11+(127&(h>>>=g)),h>>>=7,d-=7}if(a.have+u>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=30;break}for(;u--;)a.lens[a.have++]=y}}if(30===a.mode)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=30;break}if(a.lenbits=9,z={bits:a.lenbits},x=O(D,a.lens,0,a.nlen,a.lencode,0,a.work,z),a.lenbits=z.bits,x){t.msg="invalid literal/lengths set",a.mode=30;break}if(a.distbits=6,a.distcode=a.distdyn,z={bits:a.distbits},x=O(I,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,z),a.distbits=z.bits,x){t.msg="invalid distances set",a.mode=30;break}if(a.mode=20,6===e)break t;case 20:a.mode=21;case 21:if(6<=o&&258<=l){t.next_out=s,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,N(t,_),s=t.next_out,n=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,12===a.mode&&(a.back=-1);break}for(a.back=0;m=(S=a.lencode[h&(1<<a.lenbits)-1])>>>16&255,w=65535&S,!((g=S>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(m&&0==(240&m)){for(p=g,v=m,k=w;m=(S=a.lencode[k+((h&(1<<p+v)-1)>>p)])>>>16&255,w=65535&S,!(p+(g=S>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=p,d-=p,a.back+=p}if(h>>>=g,d-=g,a.back+=g,a.length=w,0===m){a.mode=26;break}if(32&m){a.back=-1,a.mode=12;break}if(64&m){t.msg="invalid literal/length code",a.mode=30;break}a.extra=15&m,a.mode=22;case 22:if(a.extra){for(B=a.extra;d<B;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=23;case 23:for(;m=(S=a.distcode[h&(1<<a.distbits)-1])>>>16&255,w=65535&S,!((g=S>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(0==(240&m)){for(p=g,v=m,k=w;m=(S=a.distcode[k+((h&(1<<p+v)-1)>>p)])>>>16&255,w=65535&S,!(p+(g=S>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=p,d-=p,a.back+=p}if(h>>>=g,d-=g,a.back+=g,64&m){t.msg="invalid distance code",a.mode=30;break}a.offset=w,a.extra=15&m,a.mode=24;case 24:if(a.extra){for(B=a.extra;d<B;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=30;break}a.mode=25;case 25:if(0===l)break t;if(u=_-l,a.offset>u){if((u=a.offset-u)>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=30;break}u>a.wnext?(u-=a.wnext,c=a.wsize-u):c=a.wnext-u,u>a.length&&(u=a.length),b=a.window}else b=n,c=s-a.offset,u=a.length;for(l<u&&(u=l),l-=u,a.length-=u;n[s++]=b[c++],--u;);0===a.length&&(a.mode=21);break;case 26:if(0===l)break t;n[s++]=a.length,l--,a.mode=21;break;case 27:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[r++]<<d,d+=8}if(_-=l,t.total_out+=_,a.total+=_,_&&(t.adler=a.check=a.flags?C(a.check,n,_,s-_):R(a.check,n,_,s-_)),_=l,(a.flags?h:L(h))!==a.check){t.msg="incorrect data check",a.mode=30;break}d=h=0}a.mode=28;case 28:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=30;break}d=h=0}a.mode=29;case 29:x=1;break t;case 30:x=-3;break t;case 31:return-4;case 32:default:return T}return t.next_out=s,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||_!==t.avail_out&&a.mode<30&&(a.mode<27||4!==e))&&j(t,t.output,t.next_out,_-t.avail_out)?(a.mode=31,-4):(f-=t.avail_in,_-=t.avail_out,t.total_in+=f,t.total_out+=_,a.total+=_,a.wrap&&_&&(t.adler=a.check=a.flags?C(a.check,n,_,t.next_out-_):R(a.check,n,_,t.next_out-_)),t.data_type=a.bits+(a.last?64:0)+(12===a.mode?128:0)+(20===a.mode||15===a.mode?256:0),(0===f&&0===_||4===e)&&x===U&&(x=-5),x)},a.inflateEnd=function(t){if(!t||!t.state)return T;var e=t.state;return e.window&&(e.window=null),t.state=null,U},a.inflateGetHeader=function(t,e){var a;return t&&t.state?0==(2&(a=t.state).wrap)?T:((a.head=e).done=!1,U):T},a.inflateSetDictionary=function(t,e){var a,i=e.length;return t&&t.state?0!==(a=t.state).wrap&&11!==a.mode?T:11===a.mode&&R(1,e,i,0)!==a.check?-3:j(t,e,i,i)?(a.mode=31,-4):(a.havedict=1,U):T},a.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(t,e,a){"use strict";var D=t("../utils/common"),I=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],U=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],T=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],F=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,a,i,n,r,s,o){var l,h,d,f,_,u,c,b,g,m=o.bits,w=0,p=0,v=0,k=0,y=0,x=0,z=0,B=0,S=0,E=0,A=null,Z=0,R=new D.Buf16(16),C=new D.Buf16(16),N=null,O=0;for(w=0;w<=15;w++)R[w]=0;for(p=0;p<i;p++)R[e[a+p]]++;for(y=m,k=15;1<=k&&0===R[k];k--);if(k<y&&(y=k),0===k)return n[r++]=20971520,n[r++]=20971520,o.bits=1,0;for(v=1;v<k&&0===R[v];v++);for(y<v&&(y=v),w=B=1;w<=15;w++)if(B<<=1,(B-=R[w])<0)return-1;if(0<B&&(0===t||1!==k))return-1;for(C[1]=0,w=1;w<15;w++)C[w+1]=C[w]+R[w];for(p=0;p<i;p++)0!==e[a+p]&&(s[C[e[a+p]]++]=p);if(0===t?(A=N=s,u=19):1===t?(A=I,Z-=257,N=U,O-=257,u=256):(A=T,N=F,u=-1),w=v,_=r,z=p=E=0,d=-1,f=(S=1<<(x=y))-1,1===t&&852<S||2===t&&592<S)return 1;for(;;){for(c=w-z,s[p]<u?(b=0,g=s[p]):s[p]>u?(b=N[O+s[p]],g=A[Z+s[p]]):(b=96,g=0),l=1<<w-z,v=h=1<<x;n[_+(E>>z)+(h-=l)]=c<<24|b<<16|g|0,0!==h;);for(l=1<<w-1;E&l;)l>>=1;if(0!==l?(E&=l-1,E+=l):E=0,p++,0==--R[w]){if(w===k)break;w=e[a+s[p]]}if(y<w&&(E&f)!==d){for(0===z&&(z=y),_+=v,B=1<<(x=w-z);x+z<k&&!((B-=R[x+z])<=0);)x++,B<<=1;if(S+=1<<x,1===t&&852<S||2===t&&592<S)return 1;n[d=E&f]=y<<24|x<<16|_-r|0}}return 0!==E&&(n[_+E]=w-z<<24|64<<16|0),o.bits=y,0}},{"../utils/common":3}],13:[function(t,e,a){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(t,e,a){"use strict";var l=t("../utils/common"),o=0,h=1;function i(t){for(var e=t.length;0<=--e;)t[e]=0}var d=0,s=29,f=256,_=f+1+s,u=30,c=19,g=2*_+1,m=15,n=16,b=7,w=256,p=16,v=17,k=18,y=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],x=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],z=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],B=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S=new Array(2*(_+2));i(S);var E=new Array(2*u);i(E);var A=new Array(512);i(A);var Z=new Array(256);i(Z);var R=new Array(s);i(R);var C,N,O,D=new Array(u);function I(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function r(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function U(t){return t<256?A[t]:A[256+(t>>>7)]}function T(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function F(t,e,a){t.bi_valid>n-a?(t.bi_buf|=e<<t.bi_valid&65535,T(t,t.bi_buf),t.bi_buf=e>>n-t.bi_valid,t.bi_valid+=a-n):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)}function L(t,e,a){F(t,a[2*e],a[2*e+1])}function H(t,e){for(var a=0;a|=1&t,t>>>=1,a<<=1,0<--e;);return a>>>1}function j(t,e,a){var i,n,r=new Array(m+1),s=0;for(i=1;i<=m;i++)r[i]=s=s+a[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=H(r[o]++,o))}}function K(t){var e;for(e=0;e<_;e++)t.dyn_ltree[2*e]=0;for(e=0;e<u;e++)t.dyn_dtree[2*e]=0;for(e=0;e<c;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*w]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function M(t){8<t.bi_valid?T(t,t.bi_buf):0<t.bi_valid&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function P(t,e,a,i){var n=2*e,r=2*a;return t[n]<t[r]||t[n]===t[r]&&i[e]<=i[a]}function Y(t,e,a){for(var i=t.heap[a],n=a<<1;n<=t.heap_len&&(n<t.heap_len&&P(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!P(e,i,t.heap[n],t.depth));)t.heap[a]=t.heap[n],a=n,n<<=1;t.heap[a]=i}function q(t,e,a){var i,n,r,s,o=0;if(0!==t.last_lit)for(;i=t.pending_buf[t.d_buf+2*o]<<8|t.pending_buf[t.d_buf+2*o+1],n=t.pending_buf[t.l_buf+o],o++,0===i?L(t,n,e):(L(t,(r=Z[n])+f+1,e),0!==(s=y[r])&&F(t,n-=R[r],s),L(t,r=U(--i),a),0!==(s=x[r])&&F(t,i-=D[r],s)),o<t.last_lit;);L(t,w,e)}function G(t,e){var a,i,n,r=e.dyn_tree,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,l=e.stat_desc.elems,h=-1;for(t.heap_len=0,t.heap_max=g,a=0;a<l;a++)0!==r[2*a]?(t.heap[++t.heap_len]=h=a,t.depth[a]=0):r[2*a+1]=0;for(;t.heap_len<2;)r[2*(n=t.heap[++t.heap_len]=h<2?++h:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=s[2*n+1]);for(e.max_code=h,a=t.heap_len>>1;1<=a;a--)Y(t,r,a);for(n=l;a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Y(t,r,1),i=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=i,r[2*n]=r[2*a]+r[2*i],t.depth[n]=(t.depth[a]>=t.depth[i]?t.depth[a]:t.depth[i])+1,r[2*a+1]=r[2*i+1]=n,t.heap[1]=n++,Y(t,r,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var a,i,n,r,s,o,l=e.dyn_tree,h=e.max_code,d=e.stat_desc.static_tree,f=e.stat_desc.has_stree,_=e.stat_desc.extra_bits,u=e.stat_desc.extra_base,c=e.stat_desc.max_length,b=0;for(r=0;r<=m;r++)t.bl_count[r]=0;for(l[2*t.heap[t.heap_max]+1]=0,a=t.heap_max+1;a<g;a++)c<(r=l[2*l[2*(i=t.heap[a])+1]+1]+1)&&(r=c,b++),l[2*i+1]=r,h<i||(t.bl_count[r]++,s=0,u<=i&&(s=_[i-u]),o=l[2*i],t.opt_len+=o*(r+s),f&&(t.static_len+=o*(d[2*i+1]+s)));if(0!==b){do{for(r=c-1;0===t.bl_count[r];)r--;t.bl_count[r]--,t.bl_count[r+1]+=2,t.bl_count[c]--,b-=2}while(0<b);for(r=c;0!==r;r--)for(i=t.bl_count[r];0!==i;)h<(n=t.heap[--a])||(l[2*n+1]!==r&&(t.opt_len+=(r-l[2*n+1])*l[2*n],l[2*n+1]=r),i--)}}(t,e),j(r,h,t.bl_count)}function X(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=e[2*(i+1)+1],++o<l&&n===s||(o<h?t.bl_tree[2*n]+=o:0!==n?(n!==r&&t.bl_tree[2*n]++,t.bl_tree[2*p]++):o<=10?t.bl_tree[2*v]++:t.bl_tree[2*k]++,r=n,(o=0)===s?(l=138,h=3):n===s?(l=6,h=3):(l=7,h=4))}function W(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),i=0;i<=a;i++)if(n=s,s=e[2*(i+1)+1],!(++o<l&&n===s)){if(o<h)for(;L(t,n,t.bl_tree),0!=--o;);else 0!==n?(n!==r&&(L(t,n,t.bl_tree),o--),L(t,p,t.bl_tree),F(t,o-3,2)):o<=10?(L(t,v,t.bl_tree),F(t,o-3,3)):(L(t,k,t.bl_tree),F(t,o-11,7));r=n,(o=0)===s?(l=138,h=3):n===s?(l=6,h=3):(l=7,h=4)}}i(D);var J=!1;function Q(t,e,a,i){var n,r,s,o;F(t,(d<<1)+(i?1:0),3),r=e,s=a,o=!0,M(n=t),o&&(T(n,s),T(n,~s)),l.arraySet(n.pending_buf,n.window,r,s,n.pending),n.pending+=s}a._tr_init=function(t){J||(function(){var t,e,a,i,n,r=new Array(m+1);for(i=a=0;i<s-1;i++)for(R[i]=a,t=0;t<1<<y[i];t++)Z[a++]=i;for(Z[a-1]=i,i=n=0;i<16;i++)for(D[i]=n,t=0;t<1<<x[i];t++)A[n++]=i;for(n>>=7;i<u;i++)for(D[i]=n<<7,t=0;t<1<<x[i]-7;t++)A[256+n++]=i;for(e=0;e<=m;e++)r[e]=0;for(t=0;t<=143;)S[2*t+1]=8,t++,r[8]++;for(;t<=255;)S[2*t+1]=9,t++,r[9]++;for(;t<=279;)S[2*t+1]=7,t++,r[7]++;for(;t<=287;)S[2*t+1]=8,t++,r[8]++;for(j(S,_+1,r),t=0;t<u;t++)E[2*t+1]=5,E[2*t]=H(t,5);C=new I(S,y,f+1,_,m),N=new I(E,x,0,u,m),O=new I(new Array(0),z,0,c,b)}(),J=!0),t.l_desc=new r(t.dyn_ltree,C),t.d_desc=new r(t.dyn_dtree,N),t.bl_desc=new r(t.bl_tree,O),t.bi_buf=0,t.bi_valid=0,K(t)},a._tr_stored_block=Q,a._tr_flush_block=function(t,e,a,i){var n,r,s=0;0<t.level?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e<f;e++)if(0!==t.dyn_ltree[2*e])return h;return o}(t)),G(t,t.l_desc),G(t,t.d_desc),s=function(t){var e;for(X(t,t.dyn_ltree,t.l_desc.max_code),X(t,t.dyn_dtree,t.d_desc.max_code),G(t,t.bl_desc),e=c-1;3<=e&&0===t.bl_tree[2*B[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(r=t.static_len+3+7>>>3)<=n&&(n=r)):n=r=a+5,a+4<=n&&-1!==e?Q(t,e,a,i):4===t.strategy||r===n?(F(t,2+(i?1:0),3),q(t,S,E)):(F(t,4+(i?1:0),3),function(t,e,a,i){var n;for(F(t,e-257,5),F(t,a-1,5),F(t,i-4,4),n=0;n<i;n++)F(t,t.bl_tree[2*B[n]+1],3);W(t,t.dyn_ltree,e-1),W(t,t.dyn_dtree,a-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),q(t,t.dyn_ltree,t.dyn_dtree)),K(t),i&&M(t)},a._tr_tally=function(t,e,a){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&a,t.last_lit++,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(Z[a]+f+1)]++,t.dyn_dtree[2*U(e)]++),t.last_lit===t.lit_bufsize-1},a._tr_align=function(t){var e;F(t,2,3),L(t,w,S),16===(e=t).bi_valid?(T(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}},{"../utils/common":3}],15:[function(t,e,a){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],"/":[function(t,e,a){"use strict";var i={};(0,t("./lib/utils/common").assign)(i,t("./lib/deflate"),t("./lib/inflate"),t("./lib/zlib/constants")),e.exports=i},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")});
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a,b){var c="",d,e,f,g,k,l,m=0;for(null!=b&&b||(a=Base64._utf8_encode(a));m<a.length;)d=a.charCodeAt(m++),e=a.charCodeAt(m++),f=a.charCodeAt(m++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,
"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
-String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.PLANT_URL=window.PLANT_URL||"https://exp-plant.draw.io/plantuml4";window.DRAW_MATH_URL=window.DRAW_MATH_URL||"https://www.draw.io/math";
+String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.PLANT_URL=window.PLANT_URL||"https://exp-plant.draw.io/plantuml-1-2019-7";window.DRAW_MATH_URL=window.DRAW_MATH_URL||"https://www.draw.io/math";
window.VSD_CONVERT_URL=window.VSD_CONVERT_URL||"https://convert.draw.io/VsdConverter/api/converter";window.EMF_CONVERT_URL=window.EMF_CONVERT_URL||"https://convert.draw.io/emf2png/convertEMF";window.REALTIME_URL=window.REALTIME_URL||"https://rt.draw.io/cache";window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"5cdc018a32acddf6eba37592d9374945241e644b8368af847422d74c8709bc44";window.SAVE_URL=window.SAVE_URL||"save";
window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.VIEWER_URL=null;window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":"https://www.draw.io/iconSearch");window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";
window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
@@ -107,7 +107,7 @@ window.uiTheme=window.uiTheme||function(){var a=urlParams.ui;if(null==a&&"undefi
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(c){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";b=window.location.host;"test.draw.io"!=b&&(a=b.length-7,b=b.lastIndexOf("draw.io",a),-1!==b&&b===a&&(window.DRAWIO_LOG_URL="https://log.draw.io"))})();if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
if("1"==urlParams.offline||"1"==urlParams.local)urlParams.math="0";"1"==urlParams.lightbox&&(urlParams.chrome="0");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);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:"4.1.0",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:"4.1.1",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_ANDROID:0<=navigator.userAgent.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IOS_VERSION:function(){if(/iP(hone|od|ad)/.test(navigator.platform)){var a=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);if(null!=a&&0<a.length)return parseInt(a[1])}return 0}(),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."),
@@ -151,72 +151,72 @@ if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.ap
new ActiveXObject("Microsoft.XMLDOM");a.async=!1;a.validateOnParse=!1;a.resolveExternals=!1;return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createMsXmlDocument();b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&
window.getSelection().removeAllRanges()}:function(){}}(),removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");a=a.replace(/&/g,"&amp;");a=a.replace(/"/g,"&quot;");a=a.replace(/\'/g,"&#39;");a=a.replace(/</g,"&lt;");a=a.replace(/>/g,"&gt;");if(null==b||b)a=a.replace(/\n/g,
"&#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";mxClient.IS_IE||mxClient.IS_IE11?c=mxUtils.getPrettyXml(a,"","",""):null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||"&#xa;")},getPrettyXml:function(a,b,c,d,e){var f=[];if(null!=a)if(b=null!=b?b:" ",c=null!=c?c:"",d=null!=d?d:"\n",null!=
-a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_TEXT)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+mxUtils.htmlEntities(a)+d);else{f.push(c+"<"+a.nodeName);var g=a.attributes;if(null!=g)for(var k=0;k<g.length;k++){var l=mxUtils.htmlEntities(g[k].value);f.push(" "+g[k].nodeName+'="'+l+'"')}g=a.firstChild;if(null!=g){for(f.push(">"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,b,c+b,d,e)),g=g.nextSibling;
-f.push(c+"</"+a.nodeName+">"+d)}else f.push("/>"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(a){if(1!=a.length||"BR"!=a[0].nodeName&&"\n"!=a[0].innerHTML)for(var e=0;e<a.length;e++){var g=a[e];"BR"==g.nodeName||"\n"==g.innerHTML||(1==a.length||0==e)&&"DIV"==g.nodeName&&"<br>"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0<g.nodeValue.length&&d.push(g.nodeValue):8!==g.nodeType&&0<g.childNodes.length&&b(g.childNodes),e<a.length-1&&0<=mxUtils.indexOf(c,
-a[e+1].nodeName)&&d.push("\n"))}}var c="BLOCKQUOTE DIV H1 H2 H3 H4 H5 H6 OL P PRE TABLE UL".split(" "),d=[];b(a);return d.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return mxClient.IS_IE&&void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":
-"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("<"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('="'),b.push(e),b.push('"'))}0==a.innerHTML.length?
-b.push("/>"):(b.push(">"),b.push(a.innerHTML),b.push("</"+a.nodeName+">"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),
-a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,
-b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},getDocumentSize:function(){var a=document.body,b=document.documentElement;try{return new mxRectangle(0,0,a.clientWidth||b.clientWidth,
-Math.max(a.clientHeight||0,b.clientHeight))}catch(c){return new mxRectangle}},fit:function(a){var b=mxUtils.getDocumentSize(),c=parseInt(a.offsetLeft),d=parseInt(a.offsetWidth),e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),f=e.x,e=e.y,g=f+b.width;c+d>g&&(a.style.left=Math.max(f,g-d)+"px");c=parseInt(a.offsetTop);d=parseInt(a.offsetHeight);b=e+b.height;c+d>b&&(a.style.top=Math.max(e,b-d)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=
-new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=
-function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,
-e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(null!=a[c]&&null==b[c]||null==a[c]&&null!=b[c]||null!=a[c]&&null!=b[c]&&(a[c].x!=b[c].x||a[c].y!=b[c].y))return!1;return!0},equalEntries:function(a,b){var c=0;if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){for(var d in b)c++;
-for(d in a)if(c--,!(mxUtils.isNaN(a[d])&&mxUtils.isNaN(b[d])||a[d]==b[d]))return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" = [null]\n";else if("function"==typeof a[c])b+=
-c+" => [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" => ["+d+"]\n");else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,r=m*m,t=c*c,u=d*d,x=n/
-t+r/u;1<x?(c*=Math.sqrt(x),d*=Math.sqrt(x),f=0):(x=1,f===g&&(x=-1),f=x*Math.sqrt((t*u-t*r-u*n)/(t*r+u*n)));n=f*c*m/d;r=-1*f*d*e/c;k=p*n-q*r+k/2;l=q*n+p*r+l/2;t=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=t?t:2*Math.PI+t;t=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=t?t:2*Math.PI+t;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var y=Math.cos(f),A=Math.sin(f),
-r=-m*(n*A+d*y),t=-m*(c*A-p*y),q=[],z=0;z<g;++z){f+=e;var y=Math.cos(f),A=Math.sin(f),u=n*y-d*A+k,x=c*y+p*A+l,v=-m*(n*A+d*y),y=-m*(c*A-p*y),A=6*z;q[A]=Number(r+a);q[A+1]=Number(t+b);q[A+2]=Number(u-v+a);q[A+3]=Number(x-y+b);q[A+4]=Number(u+a);q[A+5]=Number(x+b);r=u+v;t=x+y}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+
-a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,
-b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(b.style,c?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=
-mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;
-break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},reversePortConstraints:function(a){var b;b=(a&mxConstants.DIRECTION_MASK_WEST)<<3;b|=(a&mxConstants.DIRECTION_MASK_NORTH)<<
-1;b|=(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},getDirectedBounds:function(a,b,c,d,e){var f=mxUtils.getValue(c,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);d=null!=d?d:mxUtils.getValue(c,mxConstants.STYLE_FLIPH,
-!1);e=null!=e?e:mxUtils.getValue(c,mxConstants.STYLE_FLIPV,!1);b.x=Math.round(Math.max(0,Math.min(a.width,b.x)));b.y=Math.round(Math.max(0,Math.min(a.height,b.y)));b.width=Math.round(Math.max(0,Math.min(a.width,b.width)));b.height=Math.round(Math.max(0,Math.min(a.height,b.height)));if(e&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||d&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.x,b.x=b.width,b.width=c;if(d&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||
-e&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.y,b.y=b.height,b.height=c;d=mxRectangle.fromRectangle(b);f==mxConstants.DIRECTION_SOUTH?(d.y=b.x,d.x=b.height,d.width=b.y,d.height=b.width):f==mxConstants.DIRECTION_WEST?(d.y=b.height,d.x=b.width,d.width=b.x,d.height=b.y):f==mxConstants.DIRECTION_NORTH&&(d.y=b.width,d.x=b.y,d.width=b.height,d.height=b.x);return new mxRectangle(a.x+d.x,a.y+d.y,a.width-d.width-d.x,a.height-d.height-d.y)},getPerimeterPoint:function(a,b,c){for(var d=
-null,e=0;e<a.length-1;e++){var f=mxUtils.intersection(a[e].x,a[e].y,a[e+1].x,a[e+1].y,b.x,b.y,c.x,c.y);if(null!=f){var g=c.x-f.x,k=c.y-f.y,f={p:f,distSq:k*k+g*g};null!=f&&(null==d||d.distSq>f.distSq)&&(d=f)}}return null!=d?d.p:null},rectangleIntersectsSegment:function(a,b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);
-g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,
-mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},
-getOffset:function(a,b){for(var c=0,d=0,e=!1,f=a,g=document.body,k=document.documentElement;null!=f&&f!=g&&f!=k&&!e;){var l=mxUtils.getCurrentStyle(f);null!=l&&(e=e||"fixed"==l.position);f=f.parentNode}b||e||(e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c+=e.x,d+=e.y);e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,a.body.scrollTop);a=a.defaultView||a.parentWindow;
-return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!0;for(var d=null!=a?a.ownerDocument:document,e=d.body,f=d.documentElement,g=new mxPoint,k=!1;null!=a&&a!=e&&a!=f;){isNaN(a.scrollLeft)||isNaN(a.scrollTop)||
-(g.x+=a.scrollLeft,g.y+=a.scrollTop);var l=mxUtils.getCurrentStyle(a);null!=l&&(k=k||"fixed"==l.position);a=b?a.parentNode:null}!k&&c&&(a=mxUtils.getDocumentScrollOrigin(d),g.x+=a.x,g.y+=a.y);return g},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a,!1);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return null!=a?a.replace(new RegExp("^["+(b||"\\s")+"]+","g"),""):null},rtrim:function(a,b){return null!=a?a.replace(new RegExp("["+(b||"\\s")+
-"]+$","g"),""):null},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)&&("string"!=typeof a||0>a.toLowerCase().indexOf("0x"))},isInteger:function(a){return String(parseInt(a))===String(a)},mod:function(a,b){return(a%b+b)%b},intersection:function(a,b,c,d,e,f,g,k){var l=(k-f)*(c-a)-(g-e)*(d-b);g=((g-e)*(b-f)-(k-f)*(a-e))/l;e=((c-a)*(b-f)-(d-b)*(a-e))/l;return 0<=g&&1>=g&&0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,
-b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;0>=e*c+f*d?c=0:(e=c-e,f=d-f,a=e*c+f*d,c=0>=a?0:a*a/(c*c+d*d));e=e*e+f*f-c;0>e&&(e=0);return e},ptLineDist:function(a,b,c,d,e,f){return Math.abs((d-b)*e-(c-a)*f+c*b-d*a)/Math.sqrt((d-b)*(d-b)+(c-a)*(c-a))},relativeCcw:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;a=e*d-f*c;0==a&&(a=e*c+f*d,0<a&&(a=(e-c)*c+(f-d)*d,0>a&&(a=0)));return 0>a?-1:0<a?1:0},animateChanges:function(a,b){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,
-arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity="+b/5+")":mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createImage:function(a){var b;mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(b=document.createElement(mxClient.VML_PREFIX+":image"),b.setAttribute("src",a),b.style.borderStyle=
-"none"):(b=document.createElement("img"),b.setAttribute("src",a),b.setAttribute("border","0"));return b},sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(a,e){var d=c.get(a);null==d&&(d=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),c.put(a,d));var g=c.get(e);null==g&&(g=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,g));d=mxCellPath.compare(d,g);return 0==d?0:0<d==b?1:-1});return a},getStylename:function(a){return null!=a&&(a=a.split(";")[0],0>a.indexOf("="))?
-a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0>a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b)for(var c=a.split(";"),d=0,e=0;e<c.length;e++){if(c[e]==b)return d;d+=c[e].length+1}return-1},addStylename:function(a,b){0>mxUtils.indexOfStylename(a,b)&&(null==a?a="":0<a.length&&";"!=a.charAt(a.length-1)&&(a+=";"),a+=b);return a},removeStylename:function(a,b){var c=[];if(null!=a)for(var d=a.split(";"),e=0;e<
-d.length;e++)d[e]!=b&&c.push(d[e]);return c.join(";")},removeAllStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0<=a[c].indexOf("=")&&b.push(a[c])}return b.join(";")},setCellStyles:function(a,b,c,d){if(null!=b&&0<b.length){a.beginUpdate();try{for(var e=0;e<b.length;e++)if(null!=b[e]){var f=mxUtils.setStyle(a.getStyle(b[e]),c,d);a.setStyle(b[e],f)}}finally{a.endUpdate()}}},setStyle:function(a,b,c){var d=null!=c&&("undefined"==typeof c.length||0<c.length);if(null==
-a||0==a.length)d&&(a=b+"="+c+";");else if(a.substring(0,b.length+1)==b+"="){var e=a.indexOf(";");a=d?b+"="+c+(0>e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0<b.length){a.beginUpdate();try{for(var f=0;f<b.length;f++)if(null!=
-b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"="+c:b+"=0";else{var e=a.indexOf(b+"=");if(0>e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g;g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,
-b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+"px";null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
-(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0<b.length&&(f.style.textDecoration=b.join(" ")));f.style.position="absolute";f.style.visibility="hidden";f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";f.style.zoom="1";null!=d?(f.style.width=d+"px",f.style.whiteSpace=
-"normal"):f.style.whiteSpace="nowrap";f.innerHTML=a;document.body.appendChild(f);a=new mxRectangle(0,0,f.offsetWidth,f.offsetHeight);document.body.removeChild(f);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,m=f.overlayPane;a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),
-f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var n=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate=n,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}return g},
-getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){var g=Math.floor(c)/c,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?
-g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return e*c/b*.99999},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||
-11==document.documentMode){d="<html><head>";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="<style>";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'</style></head><body style="margin:0px;">'+('<div style="position:absolute;overflow:hidden;width:'+e+"px;height:"+f+'px;"><div style="position:relative;left:'+k+"px;top:"+l+'px;">')+a.container.innerHTML;b.writeln(d+"</div></div></body><html>");b.close()}else{b.writeln("<html><head>");
-g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));b.writeln('</head><body style="margin:0px;"></body></html>');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");
-e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();
-mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;");c.appendChild(d);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/
-2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("<pre>"+mxUtils.htmlEntities(a)+"</pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");
-e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,
-e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=
-new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+
-"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,
-SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,
-CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,
-VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",
-LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",
-STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",
-STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",
-STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",
-STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",
-STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",
-STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",
-STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",
-STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",
-SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",
-ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",
-EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
+a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_TEXT)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+mxUtils.htmlEntities(mxUtils.trim(a),!1));else{f.push(c+"<"+a.nodeName);var g=a.attributes;if(null!=g)for(var k=0;k<g.length;k++){var l=mxUtils.htmlEntities(g[k].value);f.push(" "+g[k].nodeName+'="'+l+'"')}g=a.firstChild;if(null!=g){for(f.push(">"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,
+b,c+b,d,e)),g=g.nextSibling;f.push(c+"</"+a.nodeName+">"+d)}else f.push("/>"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(a){if(1!=a.length||"BR"!=a[0].nodeName&&"\n"!=a[0].innerHTML)for(var e=0;e<a.length;e++){var g=a[e];"BR"==g.nodeName||"\n"==g.innerHTML||(1==a.length||0==e)&&"DIV"==g.nodeName&&"<br>"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0<g.nodeValue.length&&d.push(g.nodeValue):8!==g.nodeType&&0<g.childNodes.length&&b(g.childNodes),
+e<a.length-1&&0<=mxUtils.indexOf(c,a[e+1].nodeName)&&d.push("\n"))}}var c="BLOCKQUOTE DIV H1 H2 H3 H4 H5 H6 OL P PRE TABLE UL".split(" "),d=[];b(a);return d.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return mxClient.IS_IE&&void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=
+b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("<"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('="'),
+b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/>"):(b.push(">"),b.push(a.innerHTML),b.push("</"+a.nodeName+">"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,
+d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},
+linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},getDocumentSize:function(){var a=document.body,b=document.documentElement;
+try{return new mxRectangle(0,0,a.clientWidth||b.clientWidth,Math.max(a.clientHeight||0,b.clientHeight))}catch(c){return new mxRectangle}},fit:function(a){var b=mxUtils.getDocumentSize(),c=parseInt(a.offsetLeft),d=parseInt(a.offsetWidth),e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),f=e.x,e=e.y,g=f+b.width;c+d>g&&(a.style.left=Math.max(f,g-d)+"px");c=parseInt(a.offsetTop);d=parseInt(a.offsetHeight);b=e+b.height;c+d>b&&(a.style.top=Math.max(e,b-d)+"px")},load:function(a){a=new mxXmlRequest(a,null,
+"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,
+d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,
+e;for(e in a)e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(null!=a[c]&&null==b[c]||null==a[c]&&null!=b[c]||null!=a[c]&&null!=b[c]&&(a[c].x!=b[c].x||a[c].y!=b[c].y))return!1;return!0},equalEntries:function(a,b){var c=0;if(null==a&&null!=b||null!=a&&null==
+b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){for(var d in b)c++;for(d in a)if(c--,!(mxUtils.isNaN(a[d])&&mxUtils.isNaN(b[d])||a[d]==b[d]))return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b=
+"",c;for(c in a)try{if(null==a[c])b+=c+" = [null]\n";else if("function"==typeof a[c])b+=c+" => [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" => ["+d+"]\n");else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/
+180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,r=m*m,t=c*c,u=d*d,x=n/t+r/u;1<x?(c*=Math.sqrt(x),d*=Math.sqrt(x),f=0):(x=1,f===g&&(x=-1),f=x*Math.sqrt((t*u-t*r-u*n)/(t*r+u*n)));n=f*c*m/d;r=-1*f*d*e/c;k=p*n-q*r+k/2;l=q*n+p*r+l/2;t=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=t?t:2*Math.PI+t;t=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=t?t:2*Math.PI+t;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/
+4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var y=Math.cos(f),A=Math.sin(f),r=-m*(n*A+d*y),t=-m*(c*A-p*y),q=[],z=0;z<g;++z){f+=e;var y=Math.cos(f),A=Math.sin(f),u=n*y-d*A+k,x=c*y+p*A+l,v=-m*(n*A+d*y),y=-m*(c*A-p*y),A=6*z;q[A]=Number(r+a);q[A+1]=Number(t+b);q[A+2]=Number(u-v+a);q[A+3]=Number(x-y+b);q[A+4]=Number(u+a);q[A+5]=Number(x+b);r=u+v;t=x+y}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=
+c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;
+var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(b.style,c?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<c?(a=
+1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=
+d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},reversePortConstraints:function(a){var b;
+b=(a&mxConstants.DIRECTION_MASK_WEST)<<3;b|=(a&mxConstants.DIRECTION_MASK_NORTH)<<1;b|=(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},getDirectedBounds:function(a,b,c,d,e){var f=mxUtils.getValue(c,mxConstants.STYLE_DIRECTION,
+mxConstants.DIRECTION_EAST);d=null!=d?d:mxUtils.getValue(c,mxConstants.STYLE_FLIPH,!1);e=null!=e?e:mxUtils.getValue(c,mxConstants.STYLE_FLIPV,!1);b.x=Math.round(Math.max(0,Math.min(a.width,b.x)));b.y=Math.round(Math.max(0,Math.min(a.height,b.y)));b.width=Math.round(Math.max(0,Math.min(a.width,b.width)));b.height=Math.round(Math.max(0,Math.min(a.height,b.height)));if(e&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||d&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=
+b.x,b.x=b.width,b.width=c;if(d&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||e&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.y,b.y=b.height,b.height=c;d=mxRectangle.fromRectangle(b);f==mxConstants.DIRECTION_SOUTH?(d.y=b.x,d.x=b.height,d.width=b.y,d.height=b.width):f==mxConstants.DIRECTION_WEST?(d.y=b.height,d.x=b.width,d.width=b.x,d.height=b.y):f==mxConstants.DIRECTION_NORTH&&(d.y=b.width,d.x=b.y,d.width=b.height,d.height=b.x);return new mxRectangle(a.x+
+d.x,a.y+d.y,a.width-d.width-d.x,a.height-d.height-d.y)},getPerimeterPoint:function(a,b,c){for(var d=null,e=0;e<a.length-1;e++){var f=mxUtils.intersection(a[e].x,a[e].y,a[e+1].x,a[e+1].y,b.x,b.y,c.x,c.y);if(null!=f){var g=c.x-f.x,k=c.y-f.y,f={p:f,distSq:k*k+g*g};null!=f&&(null==d||d.distSq>f.distSq)&&(d=f)}}return null!=d?d.p:null},rectangleIntersectsSegment:function(a,b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,
+g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=
+f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),
+a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},getOffset:function(a,b){for(var c=0,d=0,e=!1,f=a,g=document.body,k=document.documentElement;null!=f&&f!=g&&f!=k&&!e;){var l=mxUtils.getCurrentStyle(f);null!=l&&(e=e||"fixed"==l.position);f=f.parentNode}b||e||(e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c+=e.x,d+=e.y);e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,
+a.body.scrollTop);a=a.defaultView||a.parentWindow;return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!0;for(var d=null!=a?a.ownerDocument:document,e=d.body,f=d.documentElement,g=new mxPoint,k=!1;null!=a&&
+a!=e&&a!=f;){isNaN(a.scrollLeft)||isNaN(a.scrollTop)||(g.x+=a.scrollLeft,g.y+=a.scrollTop);var l=mxUtils.getCurrentStyle(a);null!=l&&(k=k||"fixed"==l.position);a=b?a.parentNode:null}!k&&c&&(a=mxUtils.getDocumentScrollOrigin(d),g.x+=a.x,g.y+=a.y);return g},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a,!1);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return null!=a?a.replace(new RegExp("^["+(b||"\\s")+"]+","g"),""):null},rtrim:function(a,
+b){return null!=a?a.replace(new RegExp("["+(b||"\\s")+"]+$","g"),""):null},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)&&("string"!=typeof a||0>a.toLowerCase().indexOf("0x"))},isInteger:function(a){return String(parseInt(a))===String(a)},mod:function(a,b){return(a%b+b)%b},intersection:function(a,b,c,d,e,f,g,k){var l=(k-f)*(c-a)-(g-e)*(d-b);g=((g-e)*(b-f)-(k-f)*(a-e))/l;e=((c-a)*(b-f)-(d-b)*(a-e))/l;return 0<=g&&1>=g&&
+0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;0>=e*c+f*d?c=0:(e=c-e,f=d-f,a=e*c+f*d,c=0>=a?0:a*a/(c*c+d*d));e=e*e+f*f-c;0>e&&(e=0);return e},ptLineDist:function(a,b,c,d,e,f){return Math.abs((d-b)*e-(c-a)*f+c*b-d*a)/Math.sqrt((d-b)*(d-b)+(c-a)*(c-a))},relativeCcw:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;a=e*d-f*c;0==a&&(a=e*c+f*d,0<a&&(a=(e-c)*c+(f-d)*d,0>a&&(a=0)));return 0>a?-1:0<a?1:0},animateChanges:function(a,b){mxEffects.animateChanges.apply(this,
+arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity="+b/5+")":mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createImage:function(a){var b;mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(b=document.createElement(mxClient.VML_PREFIX+
+":image"),b.setAttribute("src",a),b.style.borderStyle="none"):(b=document.createElement("img"),b.setAttribute("src",a),b.setAttribute("border","0"));return b},sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(a,e){var d=c.get(a);null==d&&(d=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),c.put(a,d));var g=c.get(e);null==g&&(g=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,g));d=mxCellPath.compare(d,g);return 0==d?0:0<d==b?1:-1});return a},getStylename:function(a){return null!=
+a&&(a=a.split(";")[0],0>a.indexOf("="))?a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0>a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b)for(var c=a.split(";"),d=0,e=0;e<c.length;e++){if(c[e]==b)return d;d+=c[e].length+1}return-1},addStylename:function(a,b){0>mxUtils.indexOfStylename(a,b)&&(null==a?a="":0<a.length&&";"!=a.charAt(a.length-1)&&(a+=";"),a+=b);return a},removeStylename:function(a,b){var c=[];
+if(null!=a)for(var d=a.split(";"),e=0;e<d.length;e++)d[e]!=b&&c.push(d[e]);return c.join(";")},removeAllStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0<=a[c].indexOf("=")&&b.push(a[c])}return b.join(";")},setCellStyles:function(a,b,c,d){if(null!=b&&0<b.length){a.beginUpdate();try{for(var e=0;e<b.length;e++)if(null!=b[e]){var f=mxUtils.setStyle(a.getStyle(b[e]),c,d);a.setStyle(b[e],f)}}finally{a.endUpdate()}}},setStyle:function(a,b,c){var d=null!=c&&("undefined"==
+typeof c.length||0<c.length);if(null==a||0==a.length)d&&(a=b+"="+c+";");else if(a.substring(0,b.length+1)==b+"="){var e=a.indexOf(";");a=d?b+"="+c+(0>e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0<b.length){a.beginUpdate();
+try{for(var f=0;f<b.length;f++)if(null!=b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"="+c:b+"=0";else{var e=a.indexOf(b+"=");if(0>e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g;g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+
+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+
+"px";null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0<b.length&&(f.style.textDecoration=b.join(" ")));f.style.position="absolute";f.style.visibility="hidden";f.style.display=mxClient.IS_QUIRKS?"inline":
+"inline-block";f.style.zoom="1";null!=d?(f.style.width=d+"px",f.style.whiteSpace="normal"):f.style.whiteSpace="nowrap";f.innerHTML=a;document.body.appendChild(f);a=new mxRectangle(0,0,f.offsetWidth,f.offsetHeight);document.body.removeChild(f);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,m=f.overlayPane;a.dialect==mxConstants.DIALECT_SVG?
+(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var n=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate=n,f.canvas.removeChild(f.drawPane),
+f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){var g=
+Math.floor(c)/c,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return e*c/b*.99999},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-
+g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="<html><head>";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="<style>";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'</style></head><body style="margin:0px;">'+('<div style="position:absolute;overflow:hidden;width:'+e+"px;height:"+f+'px;"><div style="position:relative;left:'+k+"px;top:"+l+'px;">')+
+a.container.innerHTML;b.writeln(d+"</div></div></body><html>");b.close()}else{b.writeln("<html><head>");g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));b.writeln('</head><body style="margin:0px;"></body></html>');b.close();c=b.createElement("div");
+c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+
+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;");c.appendChild(d);c=new mxWindow("Popup Window",
+c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("<pre>"+mxUtils.htmlEntities(a)+"</pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,
+null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||
+document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));
+g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=
+parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",
+NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",
+OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",
+VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",
+DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),
+PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",
+STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",
+STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",
+STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",
+STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",
+STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",
+STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",
+STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",
+SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",
+ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",
+ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};
mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};
mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};
@@ -545,8 +545,8 @@ 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),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);null!=b.style&&"1"==mxUtils.getValue(b.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(a.setStrokeColor(mxConstants.NONE),a.rect(c,d,e,f),a.stroke(),a.setStrokeColor(b.stroke));
-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.drawShape=function(a,b,c,d,e,f){var g=a.states.slice(),k=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),k=this.computeAspect(b.style,c,d,e,f,k),l=Math.min(k.width,k.height),l="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*l;a.setStrokeWidth(l);null!=b.style&&"1"==mxUtils.getValue(b.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(a.setStrokeColor(mxConstants.NONE),a.rect(c,d,e,f),a.stroke(),a.setStrokeColor(b.stroke));
+this.drawChildren(a,b,c,d,e,f,this.bgNode,k,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,k,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0));a.states.length!=g.length&&(a.states=g)};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,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){a.begin();p=!0;if("1"==c.getAttribute("rounded")){for(var p=!1,q=Number(c.getAttribute("arcSize")),r=0,t=[],u=c.firstChild;null!=u;){if(u.nodeType==mxConstants.NODETYPE_ELEMENT){var x=u.nodeName;if("move"==x||"line"==x)"move"!=x&&0!=t.length||t.push([]),t[t.length-1].push(new mxPoint(k+Number(u.getAttribute("x"))*
m,l+Number(u.getAttribute("y"))*n)),r++;else{p=!0;break}}u=u.nextSibling}if(!p&&0<r)for(m=0;m<t.length;m++)n=!1,l=t[m][0],k=t[m][t[m].length-1],l.x==k.x&&l.y==k.y&&(t[m].pop(),n=!0),this.addPoints(a,t[m],!0,q,n);else p=!0}if(p)for(u=c.firstChild;null!=u;)u.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,u,d,e,f),u=u.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"))*
@@ -1354,19 +1354,20 @@ mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels};mxGraph.protot
mxGraph.prototype.getTooltip=function(a,b,c,d){var e=null;null!=a&&(null==a.control||b!=a.control.node&&b.parentNode!=a.control.node||(e=this.collapseExpandResource,e=mxUtils.htmlEntities(mxResources.get(e)||e).replace(/\\n/g,"<br>")),null==e&&null!=a.overlays&&a.overlays.visit(function(a,c){null!=e||b!=c.node&&b.parentNode!=c.node||(e=c.overlay.toString())}),null==e&&(c=this.selectionCellsHandler.getHandler(a.cell),null!=c&&"function"==typeof c.getTooltipForNode&&(e=c.getTooltipForNode(b))),null==
e&&(e=this.getTooltipForCell(a.cell)));return e};mxGraph.prototype.getTooltipForCell=function(a){return null!=a&&null!=a.getTooltip?a.getTooltip():this.convertValueToString(a)};mxGraph.prototype.getLinkForCell=function(a){return null};mxGraph.prototype.getCursorForMouseEvent=function(a){return this.getCursorForCell(a.getCell())};mxGraph.prototype.getCursorForCell=function(a){return null};
mxGraph.prototype.getStartSize=function(a){var b=new mxRectangle,c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a);null!=a&&(c=parseInt(mxUtils.getValue(a,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)?b.height=c:b.width=c);return b};mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};
-mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
-mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
-mxGraph.prototype.isSwimlane=function(a){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);if(null!=b&&!this.model.isEdge(a))return b[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
-mxGraph.prototype.setEnabled=function(a){this.enabled=a};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
-mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
-mxGraph.prototype.isCellCloneable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};
-mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};
-mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};
-mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};mxGraph.prototype.isLabelMovable=function(a){return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&this.vertexLabelsMovable)};mxGraph.prototype.isCellRotatable=function(a){var b=this.view.getState(a);return 0!=(null!=b?b.style:this.getCellStyle(a))[mxConstants.STYLE_ROTATABLE]};mxGraph.prototype.getMovableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellMovable(a)}))};
-mxGraph.prototype.isCellMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsMovable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_MOVABLE]};mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable};mxGraph.prototype.setCellsMovable=function(a){this.cellsMovable=a};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled};mxGraph.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled};
-mxGraph.prototype.setPortsEnabled=function(a){this.portsEnabled=a};mxGraph.prototype.getGridSize=function(){return this.gridSize};mxGraph.prototype.setGridSize=function(a){this.gridSize=a};mxGraph.prototype.getTolerance=function(){return this.tolerance};mxGraph.prototype.setTolerance=function(a){this.tolerance=a};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable};mxGraph.prototype.setVertexLabelsMovable=function(a){this.vertexLabelsMovable=a};
-mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable};mxGraph.prototype.setEdgeLabelsMovable=function(a){this.edgeLabelsMovable=a};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting};mxGraph.prototype.setSwimlaneNesting=function(a){this.swimlaneNesting=a};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled};mxGraph.prototype.setSwimlaneSelectionEnabled=function(a){this.swimlaneSelectionEnabled=a};
-mxGraph.prototype.isMultigraph=function(){return this.multigraph};mxGraph.prototype.setMultigraph=function(a){this.multigraph=a};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops};mxGraph.prototype.setAllowDanglingEdges=function(a){this.allowDanglingEdges=a};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges};mxGraph.prototype.setConnectableEdges=function(a){this.connectableEdges=a};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges};
+mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};
+mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};
+mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};mxGraph.prototype.isSwimlane=function(a){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);if(null!=b&&!this.model.isEdge(a))return b[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1};
+mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};mxGraph.prototype.setEnabled=function(a){this.enabled=a};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};
+mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};
+mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};mxGraph.prototype.isCellCloneable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};
+mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};
+mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};
+mxGraph.prototype.isCellDeletable=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};mxGraph.prototype.isLabelMovable=function(a){return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&this.vertexLabelsMovable)};
+mxGraph.prototype.isCellRotatable=function(a){var b=this.view.getState(a);return 0!=(null!=b?b.style:this.getCellStyle(a))[mxConstants.STYLE_ROTATABLE]};mxGraph.prototype.getMovableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellMovable(a)}))};mxGraph.prototype.isCellMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsMovable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_MOVABLE]};
+mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable};mxGraph.prototype.setCellsMovable=function(a){this.cellsMovable=a};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled};mxGraph.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled};mxGraph.prototype.setPortsEnabled=function(a){this.portsEnabled=a};mxGraph.prototype.getGridSize=function(){return this.gridSize};
+mxGraph.prototype.setGridSize=function(a){this.gridSize=a};mxGraph.prototype.getTolerance=function(){return this.tolerance};mxGraph.prototype.setTolerance=function(a){this.tolerance=a};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable};mxGraph.prototype.setVertexLabelsMovable=function(a){this.vertexLabelsMovable=a};mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable};
+mxGraph.prototype.setEdgeLabelsMovable=function(a){this.edgeLabelsMovable=a};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting};mxGraph.prototype.setSwimlaneNesting=function(a){this.swimlaneNesting=a};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled};mxGraph.prototype.setSwimlaneSelectionEnabled=function(a){this.swimlaneSelectionEnabled=a};mxGraph.prototype.isMultigraph=function(){return this.multigraph};
+mxGraph.prototype.setMultigraph=function(a){this.multigraph=a};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops};mxGraph.prototype.setAllowDanglingEdges=function(a){this.allowDanglingEdges=a};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges};mxGraph.prototype.setConnectableEdges=function(a){this.connectableEdges=a};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges};
mxGraph.prototype.setCloneInvalidEdges=function(a){this.cloneInvalidEdges=a};mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges};mxGraph.prototype.setAllowLoops=function(a){this.allowLoops=a};mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove};mxGraph.prototype.setDisconnectOnMove=function(a){this.disconnectOnMove=a};mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled};
mxGraph.prototype.setDropEnabled=function(a){this.dropEnabled=a};mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled};mxGraph.prototype.setSplitEnabled=function(a){this.splitEnabled=a};mxGraph.prototype.isCellResizable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsResizable()&&!this.isCellLocked(a)&&"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")};mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable};
mxGraph.prototype.setCellsResizable=function(a){this.cellsResizable=a};mxGraph.prototype.isTerminalPointMovable=function(a,b){return!0};mxGraph.prototype.isCellBendable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isCellsBendable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_BENDABLE]};mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable};mxGraph.prototype.setCellsBendable=function(a){this.cellsBendable=a};
@@ -1479,12 +1480,13 @@ mxCellStatePreview.prototype.translateState=function(a,b,c){if(null!=a){var d=th
mxCellStatePreview.prototype.revalidateState=function(a,b,c,d){if(null!=a){var e=this.graph.getModel();e.isEdge(a.cell)&&a.view.updateCellState(a);var f=this.graph.getCellGeometry(a.cell),g=a.view.getState(e.getParent(a.cell));0==b&&0==c||null==f||!f.relative||!e.isVertex(a.cell)||null!=g&&!e.isVertex(g.cell)&&null==this.deltas.get(a.cell)||(a.x+=b,a.y+=c);this.graph.cellRenderer.redraw(a);null!=d&&d(a);f=e.getChildCount(a.cell);for(g=0;g<f;g++)this.revalidateState(this.graph.view.getState(e.getChildAt(a.cell,
g)),b,c,d)}};mxCellStatePreview.prototype.addEdges=function(a){for(var b=this.graph.getModel(),c=b.getEdgeCount(a.cell),d=0;d<c;d++){var e=a.view.getState(b.getEdgeAt(a.cell,d));null!=e&&this.moveState(e,0,0)}};function mxConnectionConstraint(a,b,c,d,e){this.point=a;this.perimeter=null!=b?b:!0;this.name=c;this.dx=d?d:0;this.dy=e?e:0}mxConnectionConstraint.prototype.point=null;mxConnectionConstraint.prototype.perimeter=null;mxConnectionConstraint.prototype.name=null;
mxConnectionConstraint.prototype.dx=null;mxConnectionConstraint.prototype.dy=null;
-function mxGraphHandler(a){this.graph=a;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.suspended||(this.updatePreview(),this.updateHint())});this.graph.addListener(mxEvent.PAN,this.panHandler);this.escapeHandler=mxUtils.bind(this,function(a,c){this.reset()});this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler);this.refreshHandler=mxUtils.bind(this,function(a,c){if(null!=this.first&&!this.suspended)try{this.bounds=this.graph.getView().getBounds(this.cells),
-this.pBounds=this.getPreviewBounds(this.cells),this.updatePreview(!0),window.setTimeout(mxUtils.bind(this,function(){this.livePreviewUsed&&(this.setHandlesVisibleForCells(this.cells,!1),this.updatePreview())}),0)}catch(d){this.reset()}});this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler)}mxGraphHandler.prototype.graph=null;mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50;mxGraphHandler.prototype.enabled=!0;mxGraphHandler.prototype.highlightEnabled=!0;
-mxGraphHandler.prototype.cloneEnabled=!0;mxGraphHandler.prototype.moveEnabled=!0;mxGraphHandler.prototype.guidesEnabled=!1;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=!0;mxGraphHandler.prototype.selectEnabled=!0;mxGraphHandler.prototype.removeCellsFromParent=!0;mxGraphHandler.prototype.removeEmptyParents=!1;mxGraphHandler.prototype.connectOnDrop=!1;mxGraphHandler.prototype.scrollOnMove=!0;
-mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor="black";mxGraphHandler.prototype.htmlPreview=!1;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=!1;mxGraphHandler.prototype.rotationEnabled=!0;mxGraphHandler.prototype.maxLivePreview=0;mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG;mxGraphHandler.prototype.isEnabled=function(){return this.enabled};mxGraphHandler.prototype.setEnabled=function(a){this.enabled=a};
-mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled};mxGraphHandler.prototype.setCloneEnabled=function(a){this.cloneEnabled=a};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled};mxGraphHandler.prototype.setMoveEnabled=function(a){this.moveEnabled=a};mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled};mxGraphHandler.prototype.setSelectEnabled=function(a){this.selectEnabled=a};
-mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent};mxGraphHandler.prototype.setRemoveCellsFromParent=function(a){this.removeCellsFromParent=a};mxGraphHandler.prototype.getInitialCellForEvent=function(a){return a.getCell()};mxGraphHandler.prototype.isDelayedSelection=function(a,b){return this.graph.isCellSelected(a)};mxGraphHandler.prototype.consumeMouseEvent=function(a,b){b.consume()};
+function mxGraphHandler(a){this.graph=a;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.suspended||(this.updatePreview(),this.updateHint())});this.graph.addListener(mxEvent.PAN,this.panHandler);this.escapeHandler=mxUtils.bind(this,function(a,c){this.reset()});this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler);this.refreshHandler=mxUtils.bind(this,function(a,c){window.setTimeout(mxUtils.bind(this,function(){if(null!=this.first&&!this.suspended){var a=this.currentDx,
+b=this.currentDy;this.currentDy=this.currentDx=0;this.updatePreview();this.bounds=this.graph.getView().getBounds(this.cells);this.pBounds=this.getPreviewBounds(this.cells);null==this.pBounds?this.reset():(this.currentDx=a,this.currentDy=b,this.updatePreview(),this.updateHint(),this.livePreviewUsed&&this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!1))}}),0)});this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler)}mxGraphHandler.prototype.graph=null;
+mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50;mxGraphHandler.prototype.enabled=!0;mxGraphHandler.prototype.highlightEnabled=!0;mxGraphHandler.prototype.cloneEnabled=!0;mxGraphHandler.prototype.moveEnabled=!0;mxGraphHandler.prototype.guidesEnabled=!1;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=!0;mxGraphHandler.prototype.selectEnabled=!0;
+mxGraphHandler.prototype.removeCellsFromParent=!0;mxGraphHandler.prototype.removeEmptyParents=!1;mxGraphHandler.prototype.connectOnDrop=!1;mxGraphHandler.prototype.scrollOnMove=!0;mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor="black";mxGraphHandler.prototype.htmlPreview=!1;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=!1;mxGraphHandler.prototype.rotationEnabled=!0;mxGraphHandler.prototype.maxLivePreview=0;
+mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG;mxGraphHandler.prototype.isEnabled=function(){return this.enabled};mxGraphHandler.prototype.setEnabled=function(a){this.enabled=a};mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled};mxGraphHandler.prototype.setCloneEnabled=function(a){this.cloneEnabled=a};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled};mxGraphHandler.prototype.setMoveEnabled=function(a){this.moveEnabled=a};
+mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled};mxGraphHandler.prototype.setSelectEnabled=function(a){this.selectEnabled=a};mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent};mxGraphHandler.prototype.setRemoveCellsFromParent=function(a){this.removeCellsFromParent=a};mxGraphHandler.prototype.getInitialCellForEvent=function(a){return a.getCell()};mxGraphHandler.prototype.isDelayedSelection=function(a,b){return this.graph.isCellSelected(a)};
+mxGraphHandler.prototype.consumeMouseEvent=function(a,b){b.consume()};
mxGraphHandler.prototype.mouseDown=function(a,b){if(!b.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&null!=b.getState()&&!mxEvent.isMultiTouchEvent(b.getEvent())){var c=this.getInitialCellForEvent(b);this.delayedSelection=this.isDelayedSelection(c,b);this.cell=null;this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(c,b.getEvent());if(this.isMoveEnabled()){var d=this.graph.model,e=d.getGeometry(c);this.graph.isCellMovable(c)&&(!d.isEdge(c)||1<this.graph.getSelectionCount()||
null!=e.points&&0<e.points.length||null==d.getTerminal(c,!0)||null==d.getTerminal(c,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(b.getEvent())&&this.graph.isCellsCloneable())?this.start(c,b.getX(),b.getY()):this.delayedSelection&&(this.cell=c);this.cellWasClicked=!0;this.consumeMouseEvent(mxEvent.MOUSE_DOWN,b)}}};
mxGraphHandler.prototype.getGuideStates=function(){var a=this.graph.getDefaultParent(),b=this.graph.getModel(),c=mxUtils.bind(this,function(a){return null!=this.graph.view.getState(a)&&b.isVertex(a)&&null!=b.getGeometry(a)&&!b.getGeometry(a).relative});return this.graph.view.getCellStates(b.filterDescendants(c,a))};mxGraphHandler.prototype.getCells=function(a){return!this.delayedSelection&&this.graph.isCellMovable(a)?[a]:this.graph.getMovableCells(this.graph.getSelectionCells())};
@@ -1499,24 +1501,24 @@ mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};
mxGraphHandler.prototype.mouseMove=function(a,b){var c=this.graph;if(b.isConsumed()||!c.isMouseDown||null==this.cell||null==this.first||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||c.isMouseDown||(d=c.getCursorForMouseEvent(b),null==d&&c.isEnabled()&&c.isCellMovable(b.getCell())&&(d=c.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=
d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{var d=this.getDelta(b),e=c.tolerance;if(null!=this.shape||this.livePreviewActive||Math.abs(d.x)>e||Math.abs(d.y)>e){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));var e=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),f=c.isGridEnabledEvent(b.getEvent()),g=b.getCell(),k=!0,l=null;this.cloning=e;c.isDropEnabled()&&
this.highlightEnabled&&(l=c.getDropTarget(this.cells,b.getEvent(),g,e));var m=c.getView().getState(l),n=!1;null==m||c.model.getParent(this.cell)==l&&!e?(this.target=null,this.connectOnDrop&&null!=g&&1==this.cells.length&&c.getModel().isVertex(g)&&c.isCellConnectable(g)&&(m=c.getView().getState(g),null!=m&&(g=null==c.getEdgeValidationError(null,this.cell,g)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(g),n=!0))):(this.target!=l&&(this.target=l,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),
-n=!0);null!=m&&n?this.highlight.highlight(m):this.highlight.hide();this.livePreviewActive&&e?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?e&&this.livePreviewActive||(this.setHandlesVisibleForCells(this.cells,!1),this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds));null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,
-d,f,e),k=!1):d=this.graph.snapDelta(d,this.bounds,!f,!1,!1);null!=this.guide&&k&&this.guide.hide();c.isConstrainedEvent(b.getEvent())&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};
+n=!0);null!=m&&n?this.highlight.highlight(m):this.highlight.hide();this.livePreviewActive&&e?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?e&&this.livePreviewActive||(this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!1),this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds));null!=this.guide&&this.useGuidesForEvent(b)?
+(d=this.guide.move(this.bounds,d,f,e),k=!1):d=this.graph.snapDelta(d,this.bounds,!f,!1,!1);null!=this.guide&&k&&this.guide.hide();c.isConstrainedEvent(b.getEvent())&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};
mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&this.updateLivePreview(this.currentDx,this.currentDy):this.updatePreviewShape()};mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())};
-mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(d,e){var f=e.clone();c.push([e,f]);null!=e.shape&&(null==e.shape.originalPointerEvents&&(e.shape.originalPointerEvents=e.shape.pointerEvents),e.shape.pointerEvents=!1,null!=e.text&&(null==e.text.originalPointerEvents&&(e.text.originalPointerEvents=e.text.pointerEvents),e.text.pointerEvents=!1));this.graph.model.isVertex(e.cell)&&(e.x+=a,e.y+=b,this.cloning||
-(e.view.graph.cellRenderer.redraw(e,!0),e.view.invalidate(e.cell),e.invalid=!1,null!=e.control&&null!=e.control.node&&(e.control.node.style.visibility="hidden")))}));for(var d=this.graph.view.scale,e=0;e<c.length;e++){var f=c[e][0];if(this.graph.model.isEdge(f.cell)){var g=this.graph.getCellGeometry(f.cell),k=[];if(null!=g&&null!=g.points)for(var l=0;l<g.points.length;l++)null!=g.points[l]&&k.push(new mxPoint(g.points[l].x+a/d,g.points[l].y+b/d));var g=f.visibleSourceState,l=f.visibleTargetState,
-m=c[e][1].absolutePoints;null!=g&&this.isCellMoving(g.cell)?f.view.updateFixedTerminalPoint(f,g,!0,this.graph.getConnectionConstraint(f,g,!0)):(g=m[0],f.setAbsoluteTerminalPoint(new mxPoint(g.x+a,g.y+b),!0),g=null);null!=l&&this.isCellMoving(l.cell)?f.view.updateFixedTerminalPoint(f,l,!1,this.graph.getConnectionConstraint(f,l,!1)):(l=m[m.length-1],f.setAbsoluteTerminalPoint(new mxPoint(l.x+a,l.y+b),!1),l=null);f.view.updatePoints(f,k,g,l);f.view.updateFloatingTerminalPoints(f,g,l);f.view.updateEdgeLabelOffset(f);
-f.invalid=!1;this.cloning||f.view.graph.cellRenderer.redraw(f,!0)}}this.graph.view.validate();this.redrawHandles(c);this.resetPreviewStates(c)}};mxGraphHandler.prototype.redrawHandles=function(a){for(var b=0;b<a.length;b++){var c=this.graph.selectionCellsHandler.getHandler(a[b][0].cell);null!=c&&c.redraw(!0)}};mxGraphHandler.prototype.resetPreviewStates=function(a){for(var b=0;b<a.length;b++)a[b][0].setState(a[b][1])};
+mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(d,e){if(null==this.graph.view.getState(e.cell))e.destroy();else{var f=e.clone();c.push([e,f]);null!=e.shape&&(null==e.shape.originalPointerEvents&&(e.shape.originalPointerEvents=e.shape.pointerEvents),e.shape.pointerEvents=!1,null!=e.text&&(null==e.text.originalPointerEvents&&(e.text.originalPointerEvents=e.text.pointerEvents),e.text.pointerEvents=
+!1));this.graph.model.isVertex(e.cell)&&(e.x+=a,e.y+=b,this.cloning||(e.view.graph.cellRenderer.redraw(e,!0),e.view.invalidate(e.cell),e.invalid=!1,null!=e.control&&null!=e.control.node&&(e.control.node.style.visibility="hidden")))}}));if(0==c.length)this.reset();else{for(var d=this.graph.view.scale,e=0;e<c.length;e++){var f=c[e][0];if(this.graph.model.isEdge(f.cell)){var g=this.graph.getCellGeometry(f.cell),k=[];if(null!=g&&null!=g.points)for(var l=0;l<g.points.length;l++)null!=g.points[l]&&k.push(new mxPoint(g.points[l].x+
+a/d,g.points[l].y+b/d));var g=f.visibleSourceState,l=f.visibleTargetState,m=c[e][1].absolutePoints;null!=g&&this.isCellMoving(g.cell)?f.view.updateFixedTerminalPoint(f,g,!0,this.graph.getConnectionConstraint(f,g,!0)):(g=m[0],f.setAbsoluteTerminalPoint(new mxPoint(g.x+a,g.y+b),!0),g=null);null!=l&&this.isCellMoving(l.cell)?f.view.updateFixedTerminalPoint(f,l,!1,this.graph.getConnectionConstraint(f,l,!1)):(l=m[m.length-1],f.setAbsoluteTerminalPoint(new mxPoint(l.x+a,l.y+b),!1),l=null);f.view.updatePoints(f,
+k,g,l);f.view.updateFloatingTerminalPoints(f,g,l);f.view.updateEdgeLabelOffset(f);f.invalid=!1;this.cloning||f.view.graph.cellRenderer.redraw(f,!0)}}this.graph.view.validate();this.redrawHandles(c);this.resetPreviewStates(c)}}};mxGraphHandler.prototype.redrawHandles=function(a){for(var b=0;b<a.length;b++){var c=this.graph.selectionCellsHandler.getHandler(a[b][0].cell);null!=c&&c.redraw(!0)}};mxGraphHandler.prototype.resetPreviewStates=function(a){for(var b=0;b<a.length;b++)a[b][0].setState(a[b][1])};
mxGraphHandler.prototype.suspend=function(){this.suspended||(this.livePreviewUsed&&this.updateLivePreview(0,0),null!=this.shape&&(this.shape.node.style.visibility="hidden"),null!=this.guide&&this.guide.setVisible(!1),this.suspended=!0)};mxGraphHandler.prototype.resume=function(){this.suspended&&(this.suspended=null,this.livePreviewUsed&&(this.livePreviewActive=!0),null!=this.shape&&(this.shape.node.style.visibility="visible"),null!=this.guide&&this.guide.setVisible(!0))};
mxGraphHandler.prototype.resetLivePreview=function(){null!=this.allCells&&(this.allCells.visit(mxUtils.bind(this,function(a,b){null!=b.shape&&null!=b.shape.originalPointerEvents&&(b.shape.pointerEvents=b.shape.originalPointerEvents,b.shape.originalPointerEvents=null,null!=b.text&&(b.text.pointerEvents=b.text.originalPointerEvents,b.text.originalPointerEvents=null));null!=b.control&&null!=b.control.node&&"hidden"==b.control.node.style.visibility&&(b.control.node.style.visibility="");b.view.invalidate(b.cell)})),
this.graph.view.validate())};mxGraphHandler.prototype.setHandlesVisibleForCells=function(a,b){for(var c=0;c<a.length;c++){var d=this.graph.selectionCellsHandler.getHandler(a[c]);null!=d&&(d.setHandlesVisible(b),b&&d.redraw())}};mxGraphHandler.prototype.setHighlightColor=function(a){null!=this.highlight&&this.highlight.setHighlightColor(a)};
mxGraphHandler.prototype.mouseUp=function(a,b){if(!b.isConsumed())if(this.livePreviewUsed&&this.resetLivePreview(),null==this.cell||null==this.first||null==this.shape&&!this.livePreviewUsed||null==this.currentDx||null==this.currentDy)this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(b);else{var c=this.graph,d=b.getCell();if(this.connectOnDrop&&null==this.target&&null!=d&&c.getModel().isVertex(d)&&c.isCellConnectable(d)&&c.isEdgeValid(null,this.cell,d))c.connectionHandler.connect(this.cell,
d,b.getEvent());else{var d=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),e=c.getView().scale,f=this.roundLength(this.currentDx/e),e=this.roundLength(this.currentDy/e),g=this.target;c.isSplitEnabled()&&c.isSplitTarget(g,this.cells,b.getEvent())?c.splitEdge(g,this.cells,null,f,e):this.moveCells(this.cells,f,e,d,this.target,b.getEvent())}}this.cellWasClicked&&this.consumeMouseEvent(mxEvent.MOUSE_UP,b);this.reset()};
mxGraphHandler.prototype.selectDelayed=function(a){this.graph.isCellSelected(this.cell)&&this.graph.popupMenuHandler.isPopupTrigger(a)||this.graph.selectCellForEvent(this.cell,a.getEvent())};
-mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.cells,!0));this.destroyShapes();this.removeHint();this.delayedSelection=!1;this.livePreviewUsed=this.livePreviewActive=null;this.cellWasClicked=!1;this.cellCount=this.currentDy=this.currentDx=this.suspended=null;this.cloning=!1;this.cell=this.cells=this.first=this.target=this.guides=this.pBounds=this.allCells=null};
+mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.graph.getSelectionCells(),!0));this.destroyShapes();this.removeHint();this.delayedSelection=!1;this.livePreviewUsed=this.livePreviewActive=null;this.cellWasClicked=!1;this.cellCount=this.currentDy=this.currentDx=this.suspended=null;this.cloning=!1;this.cell=this.cells=this.first=this.target=this.guides=this.pBounds=this.allCells=null};
mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){if(this.graph.getModel().isVertex(a)&&(a=this.graph.getView().getState(a),null!=a)){c=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(c),mxEvent.getClientY(c));var d=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);if(0!=d){b=Math.cos(-d);var d=Math.sin(-d),e=new mxPoint(a.getCenterX(),a.getCenterY());c=mxUtils.getRotatedPoint(c,b,d,e)}return!mxUtils.contains(a,c.x,c.y)}return!1};
mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){d&&(a=this.graph.getCloneableCells(a));var g=this.graph.getModel().getParent(this.cell);null==e&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(g,a,f)&&(e=this.graph.getDefaultParent());d=d&&!this.graph.isCellLocked(e||this.graph.getDefaultParent());this.graph.getModel().beginUpdate();try{g=[];if(!d&&null!=e&&this.removeEmptyParents){for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(l=0;l<a.length;l++){var m=
this.graph.model.getParent(a[l]);null==m||k.get(m)||(k.put(m,!0),g.push(m))}}a=this.graph.moveCells(a,b,c,d,e,f);b=[];for(l=0;l<g.length;l++)this.shouldRemoveParent(g[l])&&b.push(g[l]);this.graph.removeCells(b,!1)}finally{this.graph.getModel().endUpdate()}d&&this.graph.setSelectionCells(a);this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(a[0])};
-mxGraphHandler.prototype.shouldRemoveParent=function(a){var b=this.graph.view.getState(a);return null!=b&&(this.graph.model.isEdge(b.cell)||this.graph.model.isVertex(b.cell))&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)?(a=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),a==mxConstants.NONE&&b==mxConstants.NONE):!1};
+mxGraphHandler.prototype.shouldRemoveParent=function(a){a=this.graph.view.getState(a);return null!=a&&(this.graph.model.isEdge(a.cell)||this.graph.model.isVertex(a.cell))&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)};
mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.guide&&(this.guide.destroy(),this.guide=null);null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)};
mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.refreshHandler=null);this.destroyShapes();this.removeHint()};
function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
@@ -1573,10 +1575,10 @@ mxConnectionHandler.prototype.isImmediateConnectSource=function(a){return!this.g
mxConnectionHandler.prototype.isOutlineConnectEvent=function(a){var b=mxUtils.getOffset(this.graph.container),c=a.getEvent(),d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),e=document.documentElement,f=this.currentPoint.x-this.graph.container.scrollLeft+b.x-((window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)),b=this.currentPoint.y-this.graph.container.scrollTop+b.y-((window.pageYOffset||e.scrollTop)-(e.clientTop||0));return this.outlineConnect&&!mxEvent.isShiftDown(a.getEvent())&&(a.isSource(this.marker.highlight.shape)||
mxEvent.isAltDown(a.getEvent())&&null!=a.getState()||this.marker.highlight.isHighlightAt(d,c)||(f!=d||b!=c)&&null==a.getState()&&this.marker.highlight.isHighlightAt(f,b))};
mxConnectionHandler.prototype.updateCurrentState=function(a,b){this.constraintHandler.update(a,null==this.first,!1,null==this.first||a.isSource(this.marker.highlight.shape)?null:b);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
-this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error?this.currentState=this.constraintHandler.currentFocus:this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(a.getEvent())?(this.marker.reset(),this.currentState=null):(this.marker.process(a),this.currentState=this.marker.getValidState(),null==
-this.currentState||this.isCellEnabled(this.currentState.cell)||(this.currentState=null));var c=this.isOutlineConnectEvent(a);null!=this.currentState&&c&&(a.isSource(this.marker.highlight.shape)&&(b=new mxPoint(a.getGraphX(),a.getGraphY())),c=this.graph.getOutlineConstraint(b,this.currentState,a),this.constraintHandler.setFocus(a,this.currentState,!1),this.constraintHandler.currentConstraint=c,this.constraintHandler.currentPoint=b);this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&
-(c=this.graph.view.scale,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.marker.getValidState()!=a.getState()?(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,
-this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()))}};mxConnectionHandler.prototype.isCellEnabled=function(a){return!0};mxConnectionHandler.prototype.convertWaypoint=function(a){var b=this.graph.getView().getScale(),c=this.graph.getView().getTranslate();a.x=a.x/b-c.x;a.y=a.y/b-c.y};
+this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error&&(this.currentState=this.constraintHandler.currentFocus),(null!=this.error||null!=this.currentState&&!this.isCellEnabled(this.currentState.cell))&&this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(a.getEvent())?(this.marker.reset(),this.currentState=
+null):(this.marker.process(a),this.currentState=this.marker.getValidState());null==this.currentState||this.isCellEnabled(this.currentState.cell)||(this.constraintHandler.reset(),this.marker.reset(),this.currentState=null);var c=this.isOutlineConnectEvent(a);null!=this.currentState&&c&&(a.isSource(this.marker.highlight.shape)&&(b=new mxPoint(a.getGraphX(),a.getGraphY())),c=this.graph.getOutlineConstraint(b,this.currentState,a),this.constraintHandler.setFocus(a,this.currentState,!1),this.constraintHandler.currentConstraint=
+c,this.constraintHandler.currentPoint=b);this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&(c=this.graph.view.scale,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.marker.getValidState()!=a.getState()?
+(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()))}};mxConnectionHandler.prototype.isCellEnabled=function(a){return!0};mxConnectionHandler.prototype.convertWaypoint=function(a){var b=this.graph.getView().getScale(),c=this.graph.getView().getTranslate();a.x=a.x/b-c.x;a.y=a.y/b-c.y};
mxConnectionHandler.prototype.snapToPreview=function(a,b){if(!mxEvent.isAltDown(a.getEvent())&&null!=this.previous){var c=this.graph.gridSize*this.graph.view.scale/2,d=null!=this.sourceConstraint?this.first:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());Math.abs(d.x-a.getGraphX())<c&&(b.x=d.x);Math.abs(d.y-a.getGraphY())<c&&(b.y=d.y)}};
mxConnectionHandler.prototype.mouseMove=function(a,b){if(b.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{this.isEnabled()||null==this.currentState||(this.destroyIcons(),this.currentState=null);var c=this.graph.getView(),d=c.scale,e=c.translate,c=new mxPoint(b.getGraphX(),b.getGraphY());this.error=null;this.graph.isGridEnabledEvent(b.getEvent())&&(c=new mxPoint((this.graph.snap(c.x/d-e.x)+e.x)*d,(this.graph.snap(c.y/d-e.y)+e.y)*d));
this.snapToPreview(b,c);this.currentPoint=c;(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&(null!=this.shape||null==this.first||Math.abs(b.getGraphX()-this.first.x)>this.graph.tolerance||Math.abs(b.getGraphY()-this.first.y)>this.graph.tolerance)&&this.updateCurrentState(b,c);if(null!=this.first){var f=null,d=c;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(f=this.constraintHandler.currentConstraint,
@@ -1693,8 +1695,8 @@ if(d.isVertex(a)&&!e.relative||d.isEdge(a))for(c=d.getChildCount(a),e=0;e<c;e++)
mxVertexHandler.prototype.reset=function(){null!=this.sizers&&null!=this.index&&null!=this.sizers[this.index]&&"none"==this.sizers[this.index].node.style.display&&(this.sizers[this.index].node.style.display="");this.index=this.inTolerance=this.currentAlpha=null;null!=this.preview&&(this.preview.destroy(),this.preview=null);if(this.livePreviewActive&&null!=this.sizers){for(var a=0;a<this.sizers.length;a++)null!=this.sizers[a]&&(this.sizers[a].node.style.display="");null!=this.state.control&&null!=
this.state.control.node&&(this.state.control.node.style.visibility="")}if(null!=this.customHandles)for(a=0;a<this.customHandles.length;a++)this.customHandles[a].active?(this.customHandles[a].active=!1,this.customHandles[a].reset()):this.customHandles[a].setVisible(!0);null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,
this.selectionBounds.height),this.drawPreview());this.removeHint();this.redrawHandles();this.livePreviewActive=this.unscaledBounds=this.edgeHandlers=null};
-mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){e=this.graph.model.getGeometry(a);null!=e&&(d==mxEvent.LABEL_HANDLE?(c=this.graph.view.scale,b=Math.round((this.labelShape.bounds.getCenterX()-this.startX)/c),c=Math.round((this.labelShape.bounds.getCenterY()-this.startY)/c),e=e.clone(),null==e.offset?e.offset=new mxPoint(b,c):(e.offset.x+=b,e.offset.y+=c),this.graph.model.setGeometry(a,e)):null!=this.unscaledBounds&&(c=this.graph.view.scale,0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(a,
-Math.round(this.childOffsetX/c),Math.round(this.childOffsetY/c)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
+mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){b=this.graph.model.getGeometry(a);null!=b&&(d==mxEvent.LABEL_HANDLE?(d=-mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(d),c=Math.sin(d),d=this.graph.view.scale,g=mxUtils.getRotatedPoint(new mxPoint(Math.round((this.labelShape.bounds.getCenterX()-this.startX)/d),Math.round((this.labelShape.bounds.getCenterY()-this.startY)/d)),g,c),b=b.clone(),null==b.offset?b.offset=g:(b.offset.x+=g.x,b.offset.y+=g.y),this.graph.model.setGeometry(a,
+b)):null!=this.unscaledBounds&&(d=this.graph.view.scale,0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(a,Math.round(this.childOffsetX/d),Math.round(this.childOffsetY/d)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){e=null!=e?e&&this.graph.gridEnabled:this.graph.gridEnabled;if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var m=a.width,n=a.height,p=a.x-g.x*f,q=p+m;a=a.y-g.y*f;var r=a+n,t=p+m/2,u=a+n/2;4<d?(r+=c,r=e?this.graph.snap(r/f)*f:Math.round(r/f)*f):3>d&&(a+=c,a=e?this.graph.snap(a/f)*f:Math.round(a/f)*f);if(0==d||
3==d||5==d)p+=b,p=e?this.graph.snap(p/f)*f:Math.round(p/f)*f;else if(2==d||4==d||7==d)q+=b,q=e?this.graph.snap(q/f)*f:Math.round(q/f)*f;e=q-p;c=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=q-e,a=r-c)));l&&(e+=e-m,c+=c-n,p+=t-(p+e/2),a+=u-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*
f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));return d};mxVertexHandler.prototype.redraw=function(a){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.drawPreview();a||this.redrawHandles()};
@@ -1703,10 +1705,10 @@ mxVertexHandler.prototype.redrawHandles=function(){var a=this.tolerance;this.ver
this.verticalOffset/2,b.height+=this.verticalOffset;8<=this.sizers.length&&(b.width<2*this.sizers[0].bounds.width+2*a||b.height<2*this.sizers[0].bounds.height+2*a?(this.sizers[0].node.style.display="none",this.sizers[2].node.style.display="none",this.sizers[5].node.style.display="none",this.sizers[7].node.style.display="none"):(this.sizers[0].node.style.display="",this.sizers[2].node.style.display="",this.sizers[5].node.style.display="",this.sizers[7].node.style.display=""))}a=b.x+b.width;c=b.y+b.height;
if(this.singleSizer)this.moveSizerTo(this.sizers[0],a,c);else{var d=b.x+b.width/2,e=b.y+b.height/2;if(8<=this.sizers.length){var f="nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),m=new mxPoint(b.getCenterX(),b.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),k,l,m);this.moveSizerTo(this.sizers[0],n.x,n.y);this.sizers[0].setCursor(f[mxUtils.mod(0+
g,f.length)]);n.x=d;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[1],n.x,n.y);this.sizers[1].setCursor(f[mxUtils.mod(1+g,f.length)]);n.x=a;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[2],n.x,n.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);n.x=b.x;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[3],n.x,n.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);n.x=a;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[4],
-n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);this.moveSizerTo(this.sizers[8],
-d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),
-k,l,m),null!=this.rotationShape.node&&(this.moveSizerTo(this.rotationShape,n.x,n.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()?"hidden":""));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)a=this.customHandles[b].shape.node.style.display,
-this.customHandles[b].redraw(),this.customHandles[b].shape.node.style.display=a,this.customHandles[b].shape.node.style.visibility=this.graph.isEditing()?"hidden":"";this.updateParentHighlight()};mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)};
+n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);n.x=d+
+this.state.absoluteOffset.x;n.y=e+this.state.absoluteOffset.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[8],n.x,n.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),
+m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),k,l,m),null!=this.rotationShape.node&&(this.moveSizerTo(this.rotationShape,n.x,n.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()?"hidden":""));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();
+if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)a=this.customHandles[b].shape.node.style.display,this.customHandles[b].redraw(),this.customHandles[b].shape.node.style.display=a,this.customHandles[b].shape.node.style.visibility=this.graph.isEditing()?"hidden":"";this.updateParentHighlight()};mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)};
mxVertexHandler.prototype.updateParentHighlight=function(){if(null!=this.selectionBorder)if(null!=this.parentHighlight){var a=this.graph.model.getParent(this.state.cell);if(this.graph.model.isVertex(a)){var a=this.graph.view.getState(a),b=this.parentHighlight.bounds;null==a||b.x==a.x&&b.y==a.y&&b.width==a.width&&b.height==a.height||(this.parentHighlight.bounds=a,this.parentHighlight.redraw())}else this.parentHighlight.destroy(),this.parentHighlight=null}else this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))))};
mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw());this.selectionBorder.bounds=this.bounds;this.selectionBorder.redraw();null!=this.parentHighlight&&this.parentHighlight.redraw()};
@@ -1718,9 +1720,10 @@ mxEdgeHandler.prototype.init=function(){this.graph=this.state.view.graph;this.ma
mxEvent.redirectMouseEvents(this.shape.node,this.graph,this.state);this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container;if(!this.preferHtml){var a=this.state.getVisibleTerminalState(!0);null!=a&&(this.preferHtml=null!=a.text&&a.text.node.parentNode==this.graph.container);this.preferHtml||(a=this.state.getVisibleTerminalState(!1),null!=a&&(this.preferHtml=null!=a.text&&a.text.node.parentNode==this.graph.container))}this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))));if(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||
0>=mxGraphHandler.prototype.maxCells)this.bends=this.createBends(),this.isVirtualBendsEnabled()&&(this.virtualBends=this.createVirtualBends());this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y);this.labelShape=this.createLabelHandleShape();this.initBend(this.labelShape);this.labelShape.setCursor(mxConstants.CURSOR_LABEL_HANDLE);this.customHandles=this.createCustomHandles();this.redraw()};mxEdgeHandler.prototype.createCustomHandles=function(){return null};
-mxEdgeHandler.prototype.isVirtualBendsEnabled=function(a){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)};mxEdgeHandler.prototype.isAddPointEvent=function(a){return mxEvent.isShiftDown(a)};mxEdgeHandler.prototype.isRemovePointEvent=function(a){return mxEvent.isShiftDown(a)};
-mxEdgeHandler.prototype.getSelectionPoints=function(a){return a.absolutePoints};mxEdgeHandler.prototype.createParentHighlightShape=function(a){a=new mxRectangleShape(a,null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};mxEdgeHandler.prototype.createSelectionShape=function(a){a=new this.state.shape.constructor;a.outline=!0;a.apply(this.state);a.isDashed=this.isSelectionDashed();a.stroke=this.getSelectionColor();a.isShadow=!1;return a};
-mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH};mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED};mxEdgeHandler.prototype.isConnectableCell=function(a){return!0};mxEdgeHandler.prototype.getCellAt=function(a,b){return this.outlineConnect?null:this.graph.getCellAt(a,b)};
+mxEdgeHandler.prototype.isVirtualBendsEnabled=function(a){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)};mxEdgeHandler.prototype.isCellEnabled=function(a){return!0};mxEdgeHandler.prototype.isAddPointEvent=function(a){return mxEvent.isShiftDown(a)};
+mxEdgeHandler.prototype.isRemovePointEvent=function(a){return mxEvent.isShiftDown(a)};mxEdgeHandler.prototype.getSelectionPoints=function(a){return a.absolutePoints};mxEdgeHandler.prototype.createParentHighlightShape=function(a){a=new mxRectangleShape(a,null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};
+mxEdgeHandler.prototype.createSelectionShape=function(a){a=new this.state.shape.constructor;a.outline=!0;a.apply(this.state);a.isDashed=this.isSelectionDashed();a.stroke=this.getSelectionColor();a.isShadow=!1;return a};mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH};mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED};
+mxEdgeHandler.prototype.isConnectableCell=function(a){return!0};mxEdgeHandler.prototype.getCellAt=function(a,b){return this.outlineConnect?null:this.graph.getCellAt(a,b)};
mxEdgeHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph),b=this;a.getCell=function(a){var c=mxCellMarker.prototype.getCell.apply(this,arguments);c!=b.state.cell&&null!=c||null==b.currentPoint||(c=b.graph.getCellAt(b.currentPoint.x,b.currentPoint.y));if(null!=c&&!this.graph.isCellConnectable(c)){var e=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(e)&&this.graph.isCellConnectable(e)&&(c=e)}e=b.graph.getModel();if(this.graph.isSwimlane(c)&&null!=b.currentPoint&&
this.graph.hitsSwimlaneContent(c,b.currentPoint.x,b.currentPoint.y)||!b.isConnectableCell(c)||c==b.state.cell||null!=c&&!b.graph.connectableEdges&&e.isEdge(c)||e.isAncestor(b.state.cell,c))c=null;this.graph.isCellConnectable(c)||(c=null);return c};a.isValidState=function(a){var c=b.graph.getModel(),c=b.graph.view.getTerminalPort(a,b.graph.view.getState(c.getTerminal(b.state.cell,!b.isSource)),!b.isSource),c=null!=c?c.cell:null;b.error=b.validateConnection(b.isSource?a.cell:c,b.isSource?c:a.cell);
return null==b.error};return a};mxEdgeHandler.prototype.validateConnection=function(a,b){return this.graph.getEdgeValidationError(this.state.cell,a,b)};
@@ -1742,8 +1745,8 @@ mxEdgeHandler.prototype.isSnapToTerminalsEvent=function(a){return this.snapToTer
mxEdgeHandler.prototype.getPointForEvent=function(a){var b=this.graph.getView(),c=b.scale,d=new mxPoint(this.roundLength(a.getGraphX()/c)*c,this.roundLength(a.getGraphY()/c)*c),e=this.getSnapToTerminalTolerance(),f=!1,g=!1;if(0<e&&this.isSnapToTerminalsEvent(a)){var k=function(a){null!=a&&l.call(this,new mxPoint(b.getRoutingCenterX(a),b.getRoutingCenterY(a)))},l=function(a){if(null!=a){var b=a.x;Math.abs(d.x-b)<e&&(d.x=b,f=!0);a=a.y;Math.abs(d.y-a)<e&&(d.y=a,g=!0)}};k.call(this,this.state.getVisibleTerminalState(!0));
k.call(this,this.state.getVisibleTerminalState(!1));if(null!=this.state.absolutePoints)for(k=0;k<this.state.absolutePoints.length;k++)l.call(this,this.state.absolutePoints[k])}this.graph.isGridEnabledEvent(a.getEvent())&&(a=b.translate,f||(d.x=(this.graph.snap(d.x/c-a.x)+a.x)*c),g||(d.y=(this.graph.snap(d.y/c-a.y)+a.y)*c));return d};
mxEdgeHandler.prototype.getPreviewTerminalState=function(a){this.constraintHandler.update(a,this.isSource,!0,a.isSource(this.marker.highlight.shape)?null:this.currentPoint);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)return null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
-this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),a=this.graph.getModel(),a=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(a.getTerminal(this.state.cell,!this.isSource)),!this.isSource),a=null!=a?a.cell:null,this.error=this.validateConnection(this.isSource?this.constraintHandler.currentFocus.cell:a,this.isSource?a:this.constraintHandler.currentFocus.cell),a=null,null==this.error?a=this.constraintHandler.currentFocus:
-this.constraintHandler.reset(),a;if(this.graph.isIgnoreTerminalEvent(a.getEvent()))return this.marker.reset(),null;this.marker.process(a);a=this.marker.getValidState();null!=a&&this.graph.isCellLocked(a.cell)&&this.marker.reset();return this.marker.getValidState()};
+this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),a=this.graph.getModel(),a=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(a.getTerminal(this.state.cell,!this.isSource)),!this.isSource),a=null!=a?a.cell:null,this.error=this.validateConnection(this.isSource?this.constraintHandler.currentFocus.cell:a,this.isSource?a:this.constraintHandler.currentFocus.cell),a=null,null==this.error&&(a=this.constraintHandler.currentFocus),
+(null!=this.error||null!=a&&!this.isCellEnabled(a.cell))&&this.constraintHandler.reset(),a;if(this.graph.isIgnoreTerminalEvent(a.getEvent()))return this.marker.reset(),null;this.marker.process(a);a=this.marker.getValidState();null==a||this.isCellEnabled(a.cell)||(this.constraintHandler.reset(),this.marker.reset());return this.marker.getValidState()};
mxEdgeHandler.prototype.getPreviewPoints=function(a,b){var c=this.graph.getCellGeometry(this.state.cell),c=null!=c.points?c.points.slice():null,d=new mxPoint(a.x,a.y),e=null;if(this.isSource||this.isTarget)this.graph.resetEdgesOnConnect&&(c=null);else if(this.convertPoint(d,!1),null==c)c=[d];else{this.index<=mxEvent.VIRTUAL_HANDLE&&c.splice(mxEvent.VIRTUAL_HANDLE-this.index,0,d);if(!this.isSource&&!this.isTarget){for(var f=0;f<this.bends.length;f++)if(f!=this.index){var g=this.bends[f];null!=g&&mxUtils.contains(g.bounds,
a.x,a.y)&&(this.index<=mxEvent.VIRTUAL_HANDLE?c.splice(mxEvent.VIRTUAL_HANDLE-this.index,1):c.splice(this.index-1,1),e=c)}if(null==e&&this.straightRemoveEnabled&&(null==b||!mxEvent.isAltDown(b.getEvent()))){f=this.graph.tolerance*this.graph.tolerance;g=this.state.absolutePoints.slice();g[this.index]=a;var k=this.state.getVisibleTerminalState(!0);if(null!=k){var l=this.graph.getConnectionConstraint(this.state,k,!0);if(null==l||null==this.graph.getConnectionPoint(k,l))g[0]=new mxPoint(k.view.getRoutingCenterX(k),
k.view.getRoutingCenterY(k))}k=this.state.getVisibleTerminalState(!1);null!=k&&(l=this.graph.getConnectionConstraint(this.state,k,!1),null==l||null==this.graph.getConnectionPoint(k,l))&&(g[g.length-1]=new mxPoint(k.view.getRoutingCenterX(k),k.view.getRoutingCenterY(k)));l=this.index;0<l&&l<g.length-1&&mxUtils.ptSegDistSq(g[l-1].x,g[l-1].y,g[l+1].x,g[l+1].y,a.x,a.y)<f&&(c.splice(l-1,1),e=c)}}null==e&&this.index>mxEvent.VIRTUAL_HANDLE&&(c[this.index-1]=d)}return null!=e?e:c};
@@ -1756,7 +1759,7 @@ m.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.ST
this.graph.allowDanglingEdges?null:""));a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)};
mxEdgeHandler.prototype.mouseMove=function(a,b){if(null!=this.index&&null!=this.marker){this.currentPoint=this.getPointForEvent(b);this.error=null;!this.graph.isIgnoreTerminalEvent(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())&&null!=this.snapPoint&&(Math.abs(this.snapPoint.x-this.currentPoint.x)<Math.abs(this.snapPoint.y-this.currentPoint.y)?this.currentPoint.x=this.snapPoint.x:this.currentPoint.y=this.snapPoint.y);if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE)null!=
this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(b);else if(this.isLabel)this.label.x=this.currentPoint.x,this.label.y=this.currentPoint.y;else{this.points=this.getPreviewPoints(this.currentPoint,b);var c=this.isSource||this.isTarget?this.getPreviewTerminalState(b):null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint)this.currentPoint=this.constraintHandler.currentPoint.clone();
-else if(this.outlineConnect){var d=this.isSource||this.isTarget?this.isOutlineConnectEvent(b):!1;d?c=this.marker.highlight.state:null!=c&&c!=b.getState()&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint(),c=null)}null!=c&&this.graph.isCellLocked(c.cell)&&(c=null,this.marker.reset());var e=this.clonePreviewState(this.currentPoint,null!=c?c.cell:null);this.updatePreviewState(e,this.currentPoint,c,b,d);this.setPreviewColor(null==this.error?
+else if(this.outlineConnect){var d=this.isSource||this.isTarget?this.isOutlineConnectEvent(b):!1;d?c=this.marker.highlight.state:null!=c&&c!=b.getState()&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint(),c=null)}null==c||this.isCellEnabled(c.cell)||(c=null,this.marker.reset());var e=this.clonePreviewState(this.currentPoint,null!=c?c.cell:null);this.updatePreviewState(e,this.currentPoint,c,b,d);this.setPreviewColor(null==this.error?
this.marker.validColor:this.marker.invalidColor);this.abspoints=e.absolutePoints;this.active=!0}this.updateHint(b,this.currentPoint);this.drawPreview();mxEvent.consume(b.getEvent());b.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(b)&&b.consume(!1)};
mxEdgeHandler.prototype.mouseUp=function(a,b){if(null!=this.index&&null!=this.marker){var c=this.state.cell,d=this.index;this.index=null;if(b.getX()!=this.startX||b.getY()!=this.startY){var e=!this.graph.isIgnoreTerminalEvent(b.getEvent())&&this.graph.isCloneEvent(b.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable();if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(d<=mxEvent.CUSTOM_HANDLE&&d>mxEvent.VIRTUAL_HANDLE){if(null!=this.customHandles){var f=
this.graph.getModel();f.beginUpdate();try{this.customHandles[mxEvent.CUSTOM_HANDLE-d].execute()}finally{f.endUpdate()}}}else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget)if(d=null,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(d=this.constraintHandler.currentFocus.cell),null==d&&this.marker.hasValidState()&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&"transparent"!=this.marker.highlight.shape.stroke&&
@@ -2013,8 +2016,8 @@ Editor.fullscreenLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAA
Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.hintOffset=20;Editor.popupsAllowed=!0;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;
Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.defaultGraphOverflow="hidden";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))};
Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a};
-Editor.prototype.editAsNew=function(a,b){var f=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(f+=(0<f.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(b){"ready"==b.data&&b.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(f+
-(0<f.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(f)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,b){var f=new Graph(null,b,null,null,a);f.transparentBackground=!1;this.chromeless||(f.isBlankLink=function(a){return!this.isExternalProtocol(a)});return f};
+Editor.prototype.editAsNew=function(a,b){var f=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(f+=(0<f.length?"&":"?")+"ui="+urlParams.ui);if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var d=null,l=mxUtils.bind(this,function(b){"ready"==b.data&&b.source==d&&(mxEvent.removeListener(window,"message",l),d.postMessage(a,"*"))});mxEvent.addListener(window,"message",l);d=this.graph.openLink(this.getEditBlankUrl(f+(0<f.length?"&":"?")+
+"client=1"),null,!0)}else this.graph.openLink(this.getEditBlankUrl(f)+"#R"+encodeURIComponent(a))};Editor.prototype.createGraph=function(a,b){var f=new Graph(null,b,null,null,a);f.transparentBackground=!1;this.chromeless||(f.isBlankLink=function(a){return!this.isExternalProtocol(a)});return f};
Editor.prototype.resetGraph=function(){this.graph.gridEnabled=!this.isChromelessView()||"1"==urlParams.grid;this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=null;this.graph.pageScale=mxGraph.prototype.pageScale;
this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)};
Editor.prototype.readGraphState=function(a){this.graph.gridEnabled="0"!=a.getAttribute("grid")&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.gridSize=parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize;this.graph.graphHandler.guidesEnabled="0"!=a.getAttribute("guides");this.graph.setTooltips("0"!=a.getAttribute("tooltips"));this.graph.setConnectable("0"!=a.getAttribute("connect"));this.graph.connectionArrowsEnabled="0"!=a.getAttribute("arrows");this.graph.foldingEnabled=
@@ -2032,7 +2035,7 @@ OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(thi
function Dialog(a,b,f,d,l,m,q,u,z,C,c){var e=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(e=80);f+=e;d+=e;var k=f,x=d,n=mxUtils.getDocumentSize();null!=window.innerHeight&&(n.height=window.innerHeight);var g=n.height,A=Math.max(1,Math.round((n.width-f-64)/2)),v=Math.max(1,Math.round((g-d-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");f=null!=document.body?Math.min(f,document.body.scrollWidth-64):f;d=Math.min(d,g-64);0<a.dialogs.length&&(this.zIndex+=
2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=g+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));n=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=n.x+"px";this.bg.style.top=n.y+"px";A+=n.x;v+=n.y;l&&document.body.appendChild(this.bg);var t=a.createDiv(z?"geTransDialog":
"geDialog");l=this.getPosition(A,v,f,d);A=l.x;v=l.y;t.style.width=f+"px";t.style.height=d+"px";t.style.left=A+"px";t.style.top=v+"px";t.style.zIndex=this.zIndex;t.appendChild(b);document.body.appendChild(t);!u&&b.clientHeight>t.clientHeight-64&&(b.style.overflowY="auto");if(m&&(m=document.createElement("img"),m.setAttribute("src",Dialog.prototype.closeImage),m.setAttribute("title",mxResources.get("close")),m.className="geDialogClose",m.style.top=v+14+"px",m.style.left=A+f+38-e+"px",m.style.zIndex=
-this.zIndex,mxEvent.addListener(m,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,!c)){var E=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){E=!0}),null,mxUtils.bind(this,function(c){E&&(a.hideDialog(!0),E=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=C){var c=C();null!=c&&(k=f=c.w,x=d=c.h)}c=mxUtils.getDocumentSize();g=c.height;this.bg.style.height=g+"px";A=Math.max(1,Math.round((c.width-f-64)/2));v=Math.max(1,
+this.zIndex,mxEvent.addListener(m,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,!c)){var D=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){D=!0}),null,mxUtils.bind(this,function(c){D&&(a.hideDialog(!0),D=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=C){var c=C();null!=c&&(k=f=c.w,x=d=c.h)}c=mxUtils.getDocumentSize();g=c.height;this.bg.style.height=g+"px";A=Math.max(1,Math.round((c.width-f-64)/2));v=Math.max(1,
Math.round((g-d-a.footerHeight)/3));f=null!=document.body?Math.min(k,document.body.scrollWidth-64):k;d=Math.min(x,g-64);c=this.getPosition(A,v,f,d);A=c.x;v=c.y;t.style.left=A+"px";t.style.top=v+"px";t.style.width=f+"px";t.style.height=d+"px";!u&&b.clientHeight>t.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=v+14+"px",this.dialogImg.style.left=A+f+38-e+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=q;this.container=
t;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
@@ -2067,9 +2070,9 @@ f.height==d.format.height?(u.value=d.key,m.setAttribute("checked","checked"),m.d
u.value="custom",z.style.display="none",c.style.display="")}}b="format-"+b;var m=document.createElement("input");m.setAttribute("name",b);m.setAttribute("type","radio");m.setAttribute("value","portrait");var q=document.createElement("input");q.setAttribute("name",b);q.setAttribute("type","radio");q.setAttribute("value","landscape");var u=document.createElement("select");u.style.marginBottom="8px";u.style.width="202px";var z=document.createElement("div");z.style.marginLeft="4px";z.style.width="210px";
z.style.height="24px";m.style.marginRight="6px";z.appendChild(m);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));z.appendChild(b);q.style.marginLeft="10px";q.style.marginRight="6px";z.appendChild(q);var C=document.createElement("span");C.style.width="100px";mxUtils.write(C,mxResources.get("landscape"));z.appendChild(C);var c=document.createElement("div");c.style.marginLeft="4px";c.style.width="210px";c.style.height="24px";var e=document.createElement("input");
e.setAttribute("size","7");e.style.textAlign="right";c.appendChild(e);mxUtils.write(c," in x ");var k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";c.appendChild(k);mxUtils.write(c," in");z.style.display="none";c.style.display="none";for(var x={},n=PageSetupDialog.getFormats(),g=0;g<n.length;g++){var A=n[g];x[A.key]=A;var v=document.createElement("option");v.setAttribute("value",A.key);mxUtils.write(v,A.title);u.appendChild(v)}var t=!1;l();a.appendChild(u);mxUtils.br(a);
-a.appendChild(z);a.appendChild(c);var E=f,y=function(a,b){var g=x[u.value];null!=g.format?(e.value=g.format.width/100,k.value=g.format.height/100,c.style.display="none",z.style.display=""):(z.style.display="none",c.style.display="");g=parseFloat(e.value);if(isNaN(g)||0>=g)e.value=f.width/100;g=parseFloat(k.value);if(isNaN(g)||0>=g)k.value=f.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(e.value)),Math.floor(100*parseFloat(k.value)));"custom"!=u.value&&q.checked&&(g=new mxRectangle(0,0,
-g.height,g.width));b&&t||g.width==E.width&&g.height==E.height||(E=g,null!=d&&d(E))};mxEvent.addListener(b,"click",function(a){m.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(C,"click",function(a){q.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(e,"blur",y);mxEvent.addListener(e,"click",y);mxEvent.addListener(k,"blur",y);mxEvent.addListener(k,"click",y);mxEvent.addListener(q,"change",y);mxEvent.addListener(m,"change",y);mxEvent.addListener(u,"change",function(a){t="custom"==u.value;
-y(a,!0)});y();return{set:function(a){f=a;l(null,null,!0)},get:function(){return E},widthInput:e,heightInput:k}};
+a.appendChild(z);a.appendChild(c);var D=f,y=function(a,b){var g=x[u.value];null!=g.format?(e.value=g.format.width/100,k.value=g.format.height/100,c.style.display="none",z.style.display=""):(z.style.display="none",c.style.display="");g=parseFloat(e.value);if(isNaN(g)||0>=g)e.value=f.width/100;g=parseFloat(k.value);if(isNaN(g)||0>=g)k.value=f.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(e.value)),Math.floor(100*parseFloat(k.value)));"custom"!=u.value&&q.checked&&(g=new mxRectangle(0,0,
+g.height,g.width));b&&t||g.width==D.width&&g.height==D.height||(D=g,null!=d&&d(D))};mxEvent.addListener(b,"click",function(a){m.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(C,"click",function(a){q.checked=!0;y(a);mxEvent.consume(a)});mxEvent.addListener(e,"blur",y);mxEvent.addListener(e,"click",y);mxEvent.addListener(k,"blur",y);mxEvent.addListener(k,"click",y);mxEvent.addListener(q,"change",y);mxEvent.addListener(m,"change",y);mxEvent.addListener(u,"change",function(a){t="custom"==u.value;
+y(a,!0)});y();return{set:function(a){f=a;l(null,null,!0)},get:function(){return D},widthInput:e,heightInput:k}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,1600,900)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1920,1200)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1600,1200)},{key:"custom",title:mxResources.get("custom"),format:null}]};
@@ -2099,23 +2102,23 @@ this.keyupHandler);var u=d.panningHandler.isForcePanningEvent;d.panningHandler.i
mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var C=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return m||C.apply(this,arguments)};var c=!1,e=null,k=null,x=null,n=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var g=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=g}a=this.toolbar.fontMenu;
g=this.toolbar.sizeMenu;if(null==x)this.toolbar.createTextToolbar();else{for(var f=0;f<x.length;f++)this.toolbar.container.appendChild(x[f]);this.toolbar.fontMenu=e;this.toolbar.sizeMenu=k}c=d.cellEditor.isContentEditing();e=a;k=g;x=b}}),g=this,A=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){A.apply(this,arguments);n();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=d.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=
c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=g.toolbar)){var b=c.fontFamily;"'"==b.charAt(0)&&(b=b.substring(1));"'"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1));g.toolbar.setFontName(b);g.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var v=
-d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){v.apply(this,arguments);n()};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(Q){}var t=d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();t.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,
-c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};var E="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var e=
+d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){v.apply(this,arguments);n()};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(P){}var t=d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();t.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,
+c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};var D="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var e=
d.getCellStyle(b);a=[];var b=[],k;for(k in c.style)e[k]!=c.style[k]&&(a.push(c.style[k]),b.push(k));for(var g=d.getModel().getStyle(c.cell),f=null!=g?g.split(";"):[],g=0;g<f.length;g++){var p=f[g],n=p.indexOf("=");if(0<=n){k=p.substring(0,n);var x=p.substring(n+1);null!=e[k]&&"none"==x&&(a.push(x),b.push(k))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(Z){this.handleError(Z)}};
-this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var D=["fontFamily","fontSize","fontColor"],p="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),B=["startArrow startFill startSize sourcePerimeterSpacing endArrow endFill endSize targetPerimeterSpacing".split(" "),["strokeColor","strokeWidth"],
-["fillColor","gradientColor"],D,["opacity"],["align"],["html"]];for(a=0;a<B.length;a++)for(b=0;b<B[a].length;b++)E.push(B[a][b]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(E,y[a])&&E.push(y[a]);var K=function(a,c){var b=d.getModel();b.beginUpdate();try{if(c)for(var e=b.isEdge(p),k=e?d.currentEdgeStyle:d.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],g=0;g<e.length;g++){var f=k[e[g]];null!=f&&d.setCellStyles(e[g],f,a)}else for(f=0;f<a.length;f++){for(var p=a[f],n=b.getStyle(p),x=null!=n?
-n.split(";"):[],t=E.slice(),g=0;g<x.length;g++){var v=x[g],A=v.indexOf("=");if(0<=A){var M=v.substring(0,A),l=mxUtils.indexOf(t,M);0<=l&&t.splice(l,1);for(var I=0;I<B.length;I++){var K=B[I];if(0<=mxUtils.indexOf(K,M))for(var m=0;m<K.length;m++){var u=mxUtils.indexOf(t,K[m]);0<=u&&t.splice(u,1)}}}}for(var k=(e=b.isEdge(p))?d.currentEdgeStyle:d.currentVertexStyle,Q=b.getStyle(p),g=0;g<t.length;g++){var M=t[g],q=k[M];null==q||"shape"==M&&!e||e&&!(0>mxUtils.indexOf(y,M))||(Q=mxUtils.setStyle(Q,M,q))}b.setStyle(p,
-Q)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){K(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){K(c.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));K(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),e=!1,k=!1;if(0<b.length)for(var g=0;g<b.length&&(e=d.getModel().isVertex(b[g])||
-e,!(k=d.getModel().isEdge(b[g])||k)||!e);g++);else k=e=!0;for(var b=c.getProperty("keys"),f=c.getProperty("values"),g=0;g<b.length;g++){var n=0<=mxUtils.indexOf(D,b[g]);if("strokeColor"!=b[g]||null!=f[g]&&"none"!=f[g])if(0<=mxUtils.indexOf(y,b[g]))k||0<=mxUtils.indexOf(p,b[g])?null==f[g]?delete d.currentEdgeStyle[b[g]]:d.currentEdgeStyle[b[g]]=f[g]:e&&0<=mxUtils.indexOf(E,b[g])&&(null==f[g]?delete d.currentVertexStyle[b[g]]:d.currentVertexStyle[b[g]]=f[g]);else if(0<=mxUtils.indexOf(E,b[g])){if(e||
-n)null==f[g]?delete d.currentVertexStyle[b[g]]:d.currentVertexStyle[b[g]]=f[g];if(k||n||0<=mxUtils.indexOf(p,b[g]))null==f[g]?delete d.currentEdgeStyle[b[g]]:d.currentEdgeStyle[b[g]]=f[g]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==
-d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?
-"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=
-this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||
-"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),e=c.getProperty("parent");d.getModel().isLayer(e)&&
-!d.isCellVisible(e)&&null!=b&&0<b.length&&d.getModel().setVisible(e,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=
-mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",
-mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;
-EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
+this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var E=["fontFamily","fontSize","fontColor"],p="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),B=["startArrow startFill startSize sourcePerimeterSpacing endArrow endFill endSize targetPerimeterSpacing".split(" "),["strokeColor","strokeWidth"],
+["fillColor","gradientColor"],E,["opacity"],["align"],["html"]];for(a=0;a<B.length;a++)for(b=0;b<B[a].length;b++)D.push(B[a][b]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(D,y[a])&&D.push(y[a]);var L=function(a,c){var b=d.getModel();b.beginUpdate();try{for(var e=0;e<a.length;e++){var k=a[e],g;if(c)g=["fontSize","fontFamily","fontColor"];else{var f=b.getStyle(k),p=null!=f?f.split(";"):[];g=D.slice();for(var n=0;n<p.length;n++){var x=p[n],t=x.indexOf("=");if(0<=t){var v=x.substring(0,t),A=mxUtils.indexOf(g,
+v);0<=A&&g.splice(A,1);for(var Q=0;Q<B.length;Q++){var l=B[Q];if(0<=mxUtils.indexOf(l,v))for(var I=0;I<l.length;I++){var L=mxUtils.indexOf(g,l[I]);0<=L&&g.splice(L,1)}}}}}for(var m=b.isEdge(k),u=m?d.currentEdgeStyle:d.currentVertexStyle,P=b.getStyle(k),n=0;n<g.length;n++){var v=g[n],q=u[v];null==q||"shape"==v&&!m||m&&!(0>mxUtils.indexOf(y,v))||(P=mxUtils.setStyle(P,v,q))}b.setStyle(k,P)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){L(c.getProperty("cells"))});d.addListener("textInserted",
+function(a,c){L(c.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));L(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),e=!1,k=!1;if(0<b.length)for(var g=0;g<b.length&&(e=d.getModel().isVertex(b[g])||e,!(k=d.getModel().isEdge(b[g])||k)||!e);g++);else k=e=!0;for(var b=c.getProperty("keys"),f=c.getProperty("values"),
+g=0;g<b.length;g++){var n=0<=mxUtils.indexOf(E,b[g]);if("strokeColor"!=b[g]||null!=f[g]&&"none"!=f[g])if(0<=mxUtils.indexOf(y,b[g]))k||0<=mxUtils.indexOf(p,b[g])?null==f[g]?delete d.currentEdgeStyle[b[g]]:d.currentEdgeStyle[b[g]]=f[g]:e&&0<=mxUtils.indexOf(D,b[g])&&(null==f[g]?delete d.currentVertexStyle[b[g]]:d.currentVertexStyle[b[g]]=f[g]);else if(0<=mxUtils.indexOf(D,b[g])){if(e||n)null==f[g]?delete d.currentVertexStyle[b[g]]:d.currentVertexStyle[b[g]]=f[g];if(k||n||0<=mxUtils.indexOf(p,b[g]))null==
+f[g]?delete d.currentEdgeStyle[b[g]]:d.currentEdgeStyle[b[g]]=f[g]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||
+"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),
+null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],
+mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());
+null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),e=c.getProperty("parent");d.getModel().isLayer(e)&&!d.isCellVisible(e)&&null!=b&&0<b.length&&d.getModel().setVisible(e,!0)});this.gestureHandler=
+mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",
+this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));
+d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;
+EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide()}));mxEvent.addListener(a.container,"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,
"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var b=a.setDefaultParent,f=this;this.editor.graph.setDefaultParent=function(){b.apply(this,arguments);f.updateActionStates()};a.editLink=f.actions.get("editLink").funct;this.updateActionStates();
this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.onKeyDown=function(a){var b=this.editor.graph;9==a.which&&b.isEnabled()&&!mxEvent.isAltDown(a)&&(b.isEditing()?b.stopEditing(!1):b.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
@@ -2148,18 +2151,18 @@ this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.ed
window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,mxResources.get("refresh",null,"Refresh"));null!=l.fullscreenBtn&&window.self!==window.top&&m(mxUtils.bind(this,function(c){l.fullscreenBtn.url?a.openLink(l.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(c)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(l.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&m(mxUtils.bind(this,
function(a){"1"==urlParams.close||l.closeBtn?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||
g(30),n())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?n():g(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?n():g(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||
-g(30)}));var E=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<E&&Math.abs(this.scrollTop-a.container.scrollTop)<E&&Math.abs(this.startX-b.getGraphX())<E&&Math.abs(this.startY-b.getGraphY())<
-E&&(0<parseFloat(f.chromelessToolbar.style.opacity||0)?n():g(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=a.y-(this.y0||0)*c.height}y.apply(this,arguments)};if(!a.isViewer()){var D=a.sizeDidChange;a.sizeDidChange=
-function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),b=this.getPagePadding(),e=this.getPageSize(),d=Math.ceil(2*b.x+c.width*e.width),k=Math.ceil(2*b.y+c.height*e.height),g=a.minimumGraphSize;if(null==g||g.width!=d||g.height!=k)a.minimumGraphSize=new mxRectangle(0,0,d,k);d=b.x-c.x*e.width;b=b.y-c.y*e.height;this.autoTranslate||this.view.translate.x==d&&this.view.translate.y==b?D.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=
-c.y,c=a.view.translate.x,e=a.view.translate.y,a.view.setTranslate(d,b),a.container.scrollLeft+=Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((b-e)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var p=a.view.getBackgroundPane(),B=a.view.getDrawPane();a.cumulativeZoomFactor=1;var K=null,Q=null,I=null,S=function(c){null!=K&&window.clearTimeout(K);window.setTimeout(function(){a.isMouseDown||(K=window.setTimeout(mxUtils.bind(this,
+g(30)}));var D=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<D&&Math.abs(this.scrollTop-a.container.scrollTop)<D&&Math.abs(this.startX-b.getGraphX())<D&&Math.abs(this.startY-b.getGraphY())<
+D&&(0<parseFloat(f.chromelessToolbar.style.opacity||0)?n():g(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=a.y-(this.y0||0)*c.height}y.apply(this,arguments)};if(!a.isViewer()){var E=a.sizeDidChange;a.sizeDidChange=
+function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),b=this.getPagePadding(),e=this.getPageSize(),d=Math.ceil(2*b.x+c.width*e.width),k=Math.ceil(2*b.y+c.height*e.height),g=a.minimumGraphSize;if(null==g||g.width!=d||g.height!=k)a.minimumGraphSize=new mxRectangle(0,0,d,k);d=b.x-c.x*e.width;b=b.y-c.y*e.height;this.autoTranslate||this.view.translate.x==d&&this.view.translate.y==b?E.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=
+c.y,c=a.view.translate.x,e=a.view.translate.y,a.view.setTranslate(d,b),a.container.scrollLeft+=Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((b-e)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var p=a.view.getBackgroundPane(),B=a.view.getDrawPane();a.cumulativeZoomFactor=1;var L=null,P=null,I=null,S=function(c){null!=L&&window.clearTimeout(L);window.setTimeout(function(){a.isMouseDown||(L=window.setTimeout(mxUtils.bind(this,
function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),B.style.transformOrigin="",p.style.transformOrigin="",mxClient.IS_SF?(B.style.transform="scale(1)",p.style.transform="scale(1)",window.setTimeout(function(){B.style.transform="";p.style.transform=""},0)):(B.style.transform=
-"",p.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),e=mxUtils.getOffset(a.container),d=a.view.scale,k=0,g=0;null!=Q&&(k=a.container.offsetWidth/2-Q.x+e.x,g=a.container.offsetHeight/2-Q.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=d&&(null!=I&&(k+=c.x-I.x,g+=c.y-I.y),null!=b&&f.chromelessResize(!1,null,k*(a.cumulativeZoomFactor-1),g*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||
-0==k&&0==g||(a.container.scrollLeft-=k*(a.cumulativeZoomFactor-1),a.container.scrollTop-=g*(a.cumulativeZoomFactor-1)));a.cumulativeZoomFactor=1;Q=I=K=null}),null!=c?c:a.isFastZoomEnabled()?f.wheelZoomDelay:f.lazyZoomDelay))},0)};a.lazyZoom=function(c,b,e){(b=b||!a.scrollbars)&&(Q=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:
+"",p.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),e=mxUtils.getOffset(a.container),d=a.view.scale,k=0,g=0;null!=P&&(k=a.container.offsetWidth/2-P.x+e.x,g=a.container.offsetHeight/2-P.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=d&&(null!=I&&(k+=c.x-I.x,g+=c.y-I.y),null!=b&&f.chromelessResize(!1,null,k*(a.cumulativeZoomFactor-1),g*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||
+0==k&&0==g||(a.container.scrollLeft-=k*(a.cumulativeZoomFactor-1),a.container.scrollTop-=g*(a.cumulativeZoomFactor-1)));a.cumulativeZoomFactor=1;P=I=L=null}),null!=c?c:a.isFastZoomEnabled()?f.wheelZoomDelay:f.lazyZoomDelay))},0)};a.lazyZoom=function(c,b,e){(b=b||!a.scrollbars)&&(P=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:
(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/
-this.view.scale;if(a.isFastZoomEnabled()){I=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:Q.x+a.container.scrollLeft-a.container.offsetLeft;var d=b?a.container.scrollTop+a.container.clientHeight/2:Q.y+a.container.scrollTop-a.container.offsetTop;B.style.transformOrigin=c+"px "+d+"px";B.style.transform="scale("+this.cumulativeZoomFactor+")";p.style.transformOrigin=c+"px "+d+"px";p.style.transform="scale("+this.cumulativeZoomFactor+")";
-null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":Q.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":Q.y+a.container.scrollTop-c.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(c.style,"transform","scale("+this.cumulativeZoomFactor+
-")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=f.hoverIcons&&f.hoverIcons.reset()}S(e)};mxEvent.addGestureListeners(a.container,function(a){null!=K&&window.clearTimeout(K)},null,function(c){1!=a.cumulativeZoomFactor&&S(0)});mxEvent.addListener(a.container,"scroll",function(){K&&!a.isMouseDown&&1!=a.cumulativeZoomFactor&&S(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,b,e){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&
-!a.isZoomWheelEvent(c)){e=a.view.getTranslate();var d=40/a.view.scale;mxEvent.isShiftDown(c)?a.view.setTranslate(e.x+(b?-d:d),e.y):a.view.setTranslate(e.x,e.y+(b?d:-d))}else if(e||a.isZoomWheelEvent(c))for(e=mxEvent.getSource(c);null!=e;){if(e==a.container)return a.tooltipHandler.hideTooltip(),Q=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c)),a.lazyZoom(b),mxEvent.consume(c),!1;e=e.parentNode}}),a.container);a.panningHandler.zoomGraph=function(c){a.cumulativeZoomFactor=c.scale;a.lazyZoom(0<
+this.view.scale;if(a.isFastZoomEnabled()){I=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:P.x+a.container.scrollLeft-a.container.offsetLeft;var d=b?a.container.scrollTop+a.container.clientHeight/2:P.y+a.container.scrollTop-a.container.offsetTop;B.style.transformOrigin=c+"px "+d+"px";B.style.transform="scale("+this.cumulativeZoomFactor+")";p.style.transformOrigin=c+"px "+d+"px";p.style.transform="scale("+this.cumulativeZoomFactor+")";
+null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":P.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":P.y+a.container.scrollTop-c.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(c.style,"transform","scale("+this.cumulativeZoomFactor+
+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=f.hoverIcons&&f.hoverIcons.reset()}S(e)};mxEvent.addGestureListeners(a.container,function(a){null!=L&&window.clearTimeout(L)},null,function(c){1!=a.cumulativeZoomFactor&&S(0)});mxEvent.addListener(a.container,"scroll",function(){L&&!a.isMouseDown&&1!=a.cumulativeZoomFactor&&S(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,b,e){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&
+!a.isZoomWheelEvent(c)){e=a.view.getTranslate();var d=40/a.view.scale;mxEvent.isShiftDown(c)?a.view.setTranslate(e.x+(b?-d:d),e.y):a.view.setTranslate(e.x,e.y+(b?d:-d))}else if(e||a.isZoomWheelEvent(c))for(e=mxEvent.getSource(c);null!=e;){if(e==a.container)return a.tooltipHandler.hideTooltip(),P=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c)),a.lazyZoom(b),mxEvent.consume(c),!1;e=e.parentNode}}),a.container);a.panningHandler.zoomGraph=function(c){a.cumulativeZoomFactor=c.scale;a.lazyZoom(0<
c.scale,!0);mxEvent.consume(c)}};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
EditorUi.prototype.createTemporaryGraph=function(a){a=new Graph(document.createElement("div"),null,null,a);a.resetViewOnRootChange=!1;a.setConnectable(!1);a.gridEnabled=!1;a.autoScroll=!1;a.setTooltips(!1);a.setEnabled(!1);a.container.style.visibility="hidden";a.container.style.position="absolute";a.container.style.overflow="hidden";a.container.style.height="1px";a.container.style.width="1px";return a};
EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){null!=this.format&&(this.formatWidth=a||0<this.formatWidth?0:240,this.formatContainer.style.display=a||0<this.formatWidth?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
@@ -2254,14 +2257,14 @@ mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,c){retur
d=null!=d?d.style:this.graph.getCellStyle(c[e]);"1"==mxUtils.getValue(d,"part","0")?(d=this.graph.model.getParent(c[e]),this.graph.model.isVertex(d)&&0>mxUtils.indexOf(c,d)&&b.push(d)):b.push(c[e])}return b};this.connectionHandler.createTargetVertex=function(a,c){var b=this.graph.view.getState(c),b=null!=b?b.style:this.graph.getCellStyle(c);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(c),this.graph.model.isVertex(b)&&(c=b));return mxConnectionHandler.prototype.createTargetVertex.apply(this,
arguments)};var k=new mxRubberband(this);this.getRubberband=function(){return k};var x=(new Date).getTime(),n=0,g=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;g.apply(this,arguments);a!=this.currentState?(x=(new Date).getTime(),n=0):n=(new Date).getTime()-x};var A=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<n||(null==
this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&A.apply(this,arguments)};var v=this.isToggleEvent;this.isToggleEvent=function(a){return v.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var t=k.isForceRubberbandEvent;k.isForceRubberbandEvent=function(a){return t.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&
-mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var E=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(E=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=E)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};
+mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var D=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(D=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=D)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};
var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this,arguments);var b=c?a.sourceState.cell:a.getCell();null!=b&&(b=this.getLinkForCell(b),null!=b&&(this.isCustomLink(b)?this.customLinkClicked(b):this.openLink(b)));this.isEnabled()&&c&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=
-null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var D=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return D.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,c);return b};this.getAllCells=
-function(a,c,b,e,d,k){k=null!=k?k:[];if(0<b||0<e){var g=this.getModel(),f=a+b,p=c+e;null==d&&(d=this.getCurrentRoot(),null==d&&(d=g.getRoot()));if(null!=d)for(var n=g.getChildCount(d),x=0;x<n;x++){var B=g.getChildAt(d,x),t=this.view.getState(B);if(null!=t&&this.isCellVisible(B)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var M=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=M&&(t=mxUtils.getBoundingBox(t,M));(g.isEdge(B)||g.isVertex(B))&&t.x>=a&&t.y+t.height<=p&&t.y>=c&&t.x+t.width<=
+null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var E=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return E.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,c);return b};this.getAllCells=
+function(a,c,b,e,d,k){k=null!=k?k:[];if(0<b||0<e){var g=this.getModel(),f=a+b,p=c+e;null==d&&(d=this.getCurrentRoot(),null==d&&(d=g.getRoot()));if(null!=d)for(var n=g.getChildCount(d),x=0;x<n;x++){var B=g.getChildAt(d,x),t=this.view.getState(B);if(null!=t&&this.isCellVisible(B)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var Q=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=Q&&(t=mxUtils.getBoundingBox(t,Q));(g.isEdge(B)||g.isVertex(B))&&t.x>=a&&t.y+t.height<=p&&t.y>=c&&t.x+t.width<=
f&&k.push(B);this.getAllCells(a,c,b,e,B,k)}}}return k};var p=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:p.apply(this,arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var B=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==
c.getProperty("eventName")){var b=c.getProperty("event").getState();B=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b=c.getProperty("event"),e=c.getProperty("cell");null==e?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),k.start(b.x,b.y)):null!=B?this.addSelectionCells(B):1<this.getSelectionCount()&&this.isCellSelected(e)&&
this.removeSelectionCell(e);B=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));
-Graph.touchStyle&&this.initTouch();var K=this.updateMouseEvent;this.updateMouseEvent=function(a){a=K.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
+Graph.touchStyle&&this.initTouch();var L=this.updateMouseEvent;this.updateMouseEvent=function(a){a=L.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;
Graph.createSvgImage=function(a,b,f,d,l){f=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" '+(null!=d&&null!=l?'viewBox="0 0 '+d+" "+l+'" ':"")+'version="1.1">'+f+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0)),a,b)};
Graph.zapGremlins=function(a){for(var b=[],f=0;f<a.length;f++){var d=a.charCodeAt(f);(32<=d||9==d||10==d||13==d)&&65535!=d&&65534!=d&&b.push(a.charAt(f))}return b.join("")};Graph.stringToBytes=function(a){for(var b=Array(a.length),f=0;f<a.length;f++)b[f]=a.charCodeAt(f);return b};Graph.bytesToString=function(a){for(var b=Array(a.length),f=0;f<a.length;f++)b[f]=String.fromCharCode(a[f]);return b.join("")};Graph.compressNode=function(a){return Graph.compress(Graph.zapGremlins(mxUtils.getXml(a)))};
@@ -2302,7 +2305,7 @@ Graph.prototype.createLayersDialog=function(){var a=document.createElement("div"
l.defaultChecked=!0);f.appendChild(l);var u=this.convertValueToString(d)||mxResources.get("background")||"Background";f.setAttribute("title",u);mxUtils.write(f,u);a.appendChild(f);mxEvent.addListener(l,"click",function(){null!=l.getAttribute("checked")?l.removeAttribute("checked"):l.setAttribute("checked","checked");b.setVisible(d,l.checked)})})(b.getChildAt(b.root,d));return a};
Graph.prototype.replacePlaceholders=function(a,b){var f=[];if(null!=b){for(var d=0;match=this.placeholderPattern.exec(b);){var l=match[0];if(2<l.length&&"%label%"!=l&&"%tooltip%"!=l){var m=null;if(match.index>d&&"%"==b.charAt(match.index-1))m=l.substring(1);else{var q=l.substring(1,l.length-1);if(0>q.indexOf("{"))for(var u=a;null==m&&null!=u;)null!=u.value&&"object"==typeof u.value&&(m=u.hasAttribute(q)?null!=u.getAttribute(q)?u.getAttribute(q):"":null),u=this.model.getParent(u);null==m&&(m=this.getGlobalVariable(q))}f.push(b.substring(d,
match.index)+(null!=m?m:l));d=match.index+l.length}}f.push(b.substring(d))}return f.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],f=0;f<a.length;f++){var d=this.model.getCell(a[f].id);null!=d&&b.push(d)}this.setSelectionCells(b)}else this.clearSelection()};
-Graph.prototype.selectCellsForConnectVertex=function(a,b,f){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=f&&(mxEvent.isTouchEvent(b)?f.update(f.getState(this.view.getState(a[1]))):f.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
+Graph.prototype.selectCellsForConnectVertex=function(a,b,f){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=f&&(mxEvent.isTouchEvent(b)?f.update(f.getState(this.view.getState(a[1]))):f.reset())):this.setSelectionCells(a)};
Graph.prototype.connectVertex=function(a,b,f,d,l,m){if(a.geometry.relative&&this.model.isEdge(a.parent))return[];m=m?m:!1;var q=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(q.x+=a.geometry.width/2,q.y-=f):b==mxConstants.DIRECTION_SOUTH?(q.x+=a.geometry.width/2,q.y+=a.geometry.height+f):(q.x=b==mxConstants.DIRECTION_WEST?q.x-f:q.x+(a.geometry.width+
f),q.y+=a.geometry.height/2);f=this.view.getState(this.model.getParent(a));var u=this.view.scale,z=this.view.translate,C=z.x*u,z=z.y*u;null!=f&&this.model.isVertex(f.cell)&&(C=f.x,z=f.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(q.x+=a.parent.geometry.x,q.y+=a.parent.geometry.y);m=m||mxEvent.isControlDown(d)&&!l?null:this.getCellAt(C+q.x*u,z+q.y*u);this.model.isAncestor(m,a)&&(m=null);for(f=m;null!=f;){if(this.isCellLocked(f)){m=null;break}f=this.model.getParent(f)}null!=m&&(f=this.view.getState(a),
u=this.view.getState(m),null!=f&&null!=u&&mxUtils.intersects(f,u)&&(m=null));if(l=!mxEvent.isShiftDown(d)||l)b==mxConstants.DIRECTION_NORTH?q.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?q.y+=a.geometry.height/2:q.x=b==mxConstants.DIRECTION_WEST?q.x-a.geometry.width/2:q.x+a.geometry.width/2;null==m||this.isCellConnectable(m)||(f=this.getModel().getParent(m),this.getModel().isVertex(f)&&this.isCellConnectable(f)&&(m=f));if(m==a||this.model.isEdge(m)||!this.isCellConnectable(m))m=null;f=[];
@@ -2319,9 +2322,10 @@ null==e?null!=l&&this.isMoveCellsEvent(l,q)&&this.moveSiblings(q,c,z,C):null!=l&
Graph.prototype.moveSiblings=function(a,b,f,d){this.model.beginUpdate();try{var l=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<l.length;b++)if(l[b]!=a.cell){var m=this.view.getState(l[b]),q=this.getCellGeometry(l[b]);null!=m&&null!=q&&(q=q.clone(),q.translate(Math.round(f*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(l[b],q))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,b,f,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var l=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==l&&!b.resizeLast;){var m=this.getCellGeometry(a),q=this.view.getState(a);null!=q&&null!=m&&(m=m.clone(),b.horizontal?m.width+=f+Math.min(0,q.width/this.view.scale-m.width):m.height+=d+Math.min(0,q.height/this.view.scale-m.height),this.model.setGeometry(a,
m));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b&&null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
-Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,f){f=f||this.getDefaultParent();this.isCellLocked(f)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,b,f){f=f||this.getDefaultParent();return this.isCellLocked(f)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
-Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.foldingEnabled&&("1"==b.treeFolding||!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible))};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
-Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
+Graph.prototype.isLabelMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b&&null!=b.movableLabel?"0"!=b.movableLabel:mxGraph.prototype.isLabelMovable.apply(this,arguments)};Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,f){f=f||this.getDefaultParent();this.isCellLocked(f)||mxGraph.prototype.selectCells.apply(this,arguments)};
+Graph.prototype.getSwimlaneAt=function(a,b,f){f=f||this.getDefaultParent();return this.isCellLocked(f)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.foldingEnabled&&("1"==b.treeFolding||!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible))};
+Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};
+Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var f=a.value.getAttribute("tooltip");if(null!=f)null!=f&&this.isReplacePlaceholders(a)&&(f=this.replacePlaceholders(a,f)),b=this.sanitizeHtml(f);else{f=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&f.push("link");for(var l=0;l<a.length;l++)0>mxUtils.indexOf(f,a[l].nodeName)&&0<a[l].nodeValue.length&&d.push({name:a[l].nodeName,value:a[l].nodeValue});d.sort(function(a,b){return a.name<b.name?
-1:a.name>b.name?1:0});for(l=0;l<d.length;l++)"link"==d[l].name&&this.isCustomLink(d[l].value)||(b+=("link"!=d[l].name?"<b>"+d[l].name+":</b> ":"")+mxUtils.htmlEntities(d[l].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){return Graph.stringToBytes(a)};Graph.prototype.bytesToString=function(a){return Graph.bytesToString(a)};Graph.prototype.compressNode=function(a){return Graph.compressNode(a)};
Graph.prototype.compress=function(a,b){return Graph.compress(a,b)};Graph.prototype.decompress=function(a,b){return Graph.decompress(a,b)};Graph.prototype.zapGremlins=function(a){return Graph.zapGremlins(a)};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;
@@ -2344,8 +2348,8 @@ this.resetActiveArrow()}));return f};HoverIcons.prototype.resetActiveArrow=funct
HoverIcons.prototype.visitNodes=function(a){for(var b=0;b<this.elts.length;b++)null!=this.elts[b]&&a(this.elts[b])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(b){b.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
HoverIcons.prototype.drag=function(a,b,f){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,b,f),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=b&&b.setHandlesVisible(!1),b=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=b&&"orthogonalEdgeStyle"===
mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),b.cell.style=mxUtils.setStyle(b.cell.style,"sourcePortConstraint",a),b.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,b,f){return this.graph.view.getState(this.graph.getCellAt(b,f))};
-HoverIcons.prototype.click=function(a,b,f){var d=f.getEvent(),l=f.getGraphX(),m=f.getGraphY(),l=this.getStateAt(a,l,m);null==l||!this.graph.model.isEdge(l.cell)||mxEvent.isControlDown(d)||l.getVisibleTerminalState(!0)!=a&&l.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,d),this.graph.selectCellsForConnectVertex(a,d,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(d)?this.update(this.getState(this.graph.view.getState(a[1]))):
-this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(l.cell),this.reset());f.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
+HoverIcons.prototype.click=function(a,b,f){var d=f.getEvent(),l=f.getGraphX(),m=f.getGraphY(),l=this.getStateAt(a,l,m);null==l||!this.graph.model.isEdge(l.cell)||mxEvent.isControlDown(d)||l.getVisibleTerminalState(!0)!=a&&l.getVisibleTerminalState(!1)!=a?null!=a&&this.graph.selectCellsForConnectVertex(this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,d),d,this):(this.graph.setSelectionCell(l.cell),this.reset());f.consume()};
+HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing);
var b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),f=null;null!=b&&(a.x-=b.horizontalOffset/2,a.y-=b.verticalOffset/2,a.width+=b.horizontalOffset,a.height+=b.verticalOffset,null!=b.rotationShape&&null!=b.rotationShape.node&&"hidden"!=b.rotationShape.node.style.visibility&&"none"!=b.rotationShape.node.style.display&&null!=b.rotationShape.boundingBox&&(f=b.rotationShape.boundingBox));b=mxUtils.bind(this,function(a,b,d){if(null!=f){var c=new mxRectangle(b,d,a.clientWidth,a.clientHeight);
mxUtils.intersects(c,f)&&(a==this.arrowUp?d-=c.y+c.height-f.y:a==this.arrowRight?b+=f.x+f.width-c.x:a==this.arrowDown?d+=f.y+f.height-c.y:a==this.arrowLeft&&(b-=c.x+c.width-f.x))}a.style.left=b+"px";a.style.top=d+"px";mxUtils.setOpacity(a,this.inactiveOpacity)});b(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(a.y-this.triangleUp.height-this.tolerance));b(this.arrowRight,Math.round(a.x+a.width-this.tolerance),Math.round(this.currentState.getCenterY()-
@@ -2368,9 +2372,9 @@ var l=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a
"jumpStyle","none"),n=!0,g=null,A=null,v=[],t=null;a.begin();for(var u=0;u<this.state.routedPoints.length;u++){var y=this.state.routedPoints[u],m=new mxPoint(y.x/this.scale,y.y/this.scale);0==u?m=b[0]:u==this.state.routedPoints.length-1&&(m=b[b.length-1]);var p=!1;if(null!=g&&1==y.type){var B=this.state.routedPoints[u+1],y=B.x/this.scale-m.x,B=B.y/this.scale-m.y,y=y*y+B*B;null==t&&(t=new mxPoint(m.x-g.x,m.y-g.y),A=Math.sqrt(t.x*t.x+t.y*t.y),0<A?(t.x=t.x*d/A,t.y=t.y*d/A):t=null);y>d*d&&0<A&&(y=g.x-
m.x,B=g.y-m.y,y=y*y+B*B,y>d*d&&(p=new mxPoint(m.x-t.x,m.y-t.y),y=new mxPoint(m.x+t.x,m.y+t.y),v.push(p),this.addPoints(a,v,c,e,!1,null,n),v=0>Math.round(t.x)||0==Math.round(t.x)&&0>=Math.round(t.y)?1:-1,n=!1,"sharp"==f?(a.lineTo(p.x-t.y*v,p.y+t.x*v),a.lineTo(y.x-t.y*v,y.y+t.x*v),a.lineTo(y.x,y.y)):"arc"==f?(v*=1.3,a.curveTo(p.x-t.y*v,p.y+t.x*v,y.x-t.y*v,y.y+t.x*v,y.x,y.y)):(a.moveTo(y.x,y.y),n=!0),v=[y],p=!0))}else t=null;p||(v.push(m),g=m)}this.addPoints(a,v,c,e,!1,null,n);a.stroke()}};var m=mxGraphView.prototype.updateFloatingTerminalPoint;
mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,e){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)m.apply(this,arguments);else{b=this.getTerminalPort(a,b,e);var d=this.getNextPoint(a,c,e),f=this.graph.isOrthogonal(a),n=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),g=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=n)var A=Math.cos(-n),v=Math.sin(-n),d=mxUtils.getRotatedPoint(d,A,v,g);A=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);A+=parseFloat(a.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);d=this.getPerimeterPoint(b,d,0==n&&f,A);0!=n&&(A=Math.cos(n),v=Math.sin(n),d=mxUtils.getRotatedPoint(d,A,v,g));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,e,d),e)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,e,d){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);e=c=null;if(null!=a)for(var f=0;f<a.length;f++){var k=this.graph.getConnectionPoint(b,
-a[f]);if(null!=k){var g=(k.x-d.x)*(k.x-d.x)+(k.y-d.y)*(k.y-d.y);if(null==e||g<e)c=k,e=g}}null!=c&&(d=c)}return d};var q=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var e=q.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(e=c.state.view.graph.replacePlaceholders(c.state.cell,e));return e};var u=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=
-mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"string"===typeof b&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-1),e=mxUtils.parseXml(Graph.decompress(c));return new mxShape(new mxStencil(e.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return u.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
+0);A+=parseFloat(a.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);d=this.getPerimeterPoint(b,d,0==n&&f,A);0!=n&&(A=Math.cos(n),v=Math.sin(n),d=mxUtils.getRotatedPoint(d,A,v,g));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,e,d),e)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,e,d){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);e=c=null;if(null!=a)for(var k=0;k<a.length;k++){var f=this.graph.getConnectionPoint(b,
+a[k]);if(null!=f){var g=(f.x-d.x)*(f.x-d.x)+(f.y-d.y)*(f.y-d.y);if(null==e||g<e)c=f,e=g}}null!=c&&(d=c)}return d};var q=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=q.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var u=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=
+mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"string"===typeof b&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-1),d=mxUtils.parseXml(Graph.decompress(c));return new mxShape(new mxStencil(d.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return u.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var f=mxStencilRegistry.getBasenameForStencil(a);if(null!=f){b=mxStencilRegistry.libraries[f];if(null!=b){if(null==mxStencilRegistry.packages[f]){for(var d=0;d<b.length;d++){var l=b[d];if(".xml"==l.toLowerCase().substring(l.length-4,l.length))mxStencilRegistry.loadStencilSet(l,null);else if(".js"==l.toLowerCase().substring(l.length-3,l.length))try{if(mxStencilRegistry.allowEval){var m=
mxUtils.load(l);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(q){null!=window.console&&console.log("error in getStencil:",l,q)}}mxStencilRegistry.packages[f]=1}}else f=f.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+f+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&"string"===typeof a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var b=a[1],f=2;f<a.length-1;f++)b+="/"+a[f];return b};
@@ -2382,117 +2386,117 @@ u=d.getAttribute("h"),q=null==q?80:parseInt(q,10),u=null==u?80:parseInt(u,10);b(
"#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR="#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=
!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var f=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||f.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=
!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var d=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=d.apply(this,arguments);a.isDashed="1"==
-this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var l=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=l.apply(this,arguments),c=a.getCell;a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(a)};Graph.prototype.defaultVertexStyle={};
-Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&&(a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&
-(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");null!=this.currentEdgeStyle.orthogonalLoop?a+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?
-a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=
-null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,c){c=null!=c?c:{};for(var b=0;b<a.length;b++){var e=a[b];c[mxObjectIdentity.get(e)]=e.getId();for(var d=this.model.getChildCount(e),k=0;k<d;k++)this.createCellLookup([this.model.getChildAt(e,k)],c)}return c};Graph.prototype.createCellMapping=
-function(a,c,b){b=null!=b?b:{};for(var e in a){var d=c[e];null==b[d]&&(b[d]=a[e].getId()||"")}return b};Graph.prototype.importGraphModel=function(a,c,b,e){c=null!=c?c:0;b=null!=b?b:0;var d=new mxCodec(a.ownerDocument),k=new mxGraphModel;d.decode(a,k);a=[];var d={},f={},g=k.getChildren(this.cloneCell(k.root,this.isCloneInvalidEdges(),d));if(null!=g){var p=this.createCellLookup([k.root]),g=g.slice();this.model.beginUpdate();try{if(1!=g.length||this.isCellLocked(this.getDefaultParent()))for(k=0;k<g.length;k++)a=
-a.concat(this.model.getChildren(this.moveCells([g[k]],c,b,!1,this.model.getRoot())[0]));else a=this.moveCells(k.getChildren(g[0]),c,b,!1,this.getDefaultParent()),f[k.getChildAt(k.root,0).getId()]=this.getDefaultParent().getId();this.createCellMapping(d,p,f);this.updateCustomLinks(f,a);if(e){this.isGridEnabled()&&(c=this.snap(c),b=this.snap(b));var n=this.getBoundingBoxFromGeometry(a,!0);null!=n&&this.moveCells(a,c-n.x,b-n.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c=
-{},b=this.cloneCells(a,null,c),e=new mxDictionary,d=0;d<a.length;d++)e.put(a[d],!0);for(d=0;d<b.length;d++){var k=this.view.getState(a[d]);if(null!=k){var f=this.getCellGeometry(b[d]);null==f||!f.relative||this.model.isEdge(a[d])||e.get(this.model.getParent(a[d]))||(f.relative=!1,f.x=k.x/k.view.scale-k.view.translate.x,f.y=k.y/k.view.scale-k.view.translate.y)}}e=new mxCodec;k=new mxGraphModel;f=k.getChildAt(k.getRoot(),0);for(d=0;d<b.length;d++)k.add(f,b[d]);this.updateCustomLinks(this.createCellMapping(c,
-this.createCellLookup(a)),b);return e.encode(k)};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(a,c,b,d,e,k,f){f=null!=f?f:{};var g=m.apply(this,arguments);d&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(a)),g);return g};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,
-c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var e=JSON.parse(b),b=0;b<e.length;b++){var k=e[b];d.push(new mxConnectionConstraint(new mxPoint(k[0],k[1]),2<k.length?"0"!=k[2]:!0,null,3<k.length?k[3]:0,4<k.length?k[4]:0))}}catch(R){}return d}if(null!=a.shape&&null!=a.shape.bounds){k=a.shape.direction;e=a.shape.bounds;b=a.shape.scale;d=e.width/b;e=e.height/b;if(k==mxConstants.DIRECTION_NORTH||k==mxConstants.DIRECTION_SOUTH)k=d,d=e,e=k;b=a.shape.getConstraints(a.style,
-d,e);if(null!=b)return b;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,this.setCellStyles(mxConstants.STYLE_ELBOW,
-c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var e=this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||b++)}return 0<b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(c,
-"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=function(a){var c=
-mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),b=[];c.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(c.isEdge(e)){var k=c.getTerminal(e,!0),f=c.getTerminal(e,!1);c.setTerminal(e,f,!0);c.setTerminal(e,k,!1);var g=c.getGeometry(e);if(null!=g){g=g.clone();null!=g.points&&g.points.reverse();var p=
-g.getTerminalPoint(!0),n=g.getTerminalPoint(!1);g.setTerminalPoint(p,!1);g.setTerminalPoint(n,!0);c.setGeometry(e,g);var B=this.view.getState(e),x=this.view.getState(k),t=this.view.getState(f);if(null!=B){var A=null!=x?this.getConnectionConstraint(B,x,!0):null,v=null!=t?this.getConnectionConstraint(B,t,!1):null;this.setConnectionConstraint(e,k,!0,v);this.setConnectionConstraint(e,f,!1,A)}b.push(e)}}else if(c.isVertex(e)&&(g=this.getCellGeometry(e),null!=g)){g=g.clone();g.x+=g.width/2-g.height/2;g.y+=
-g.height/2-g.width/2;var l=g.width;g.width=g.height;g.height=l;c.setGeometry(e,g);var y=this.view.getState(e);if(null!=y){var M=y.style[mxConstants.STYLE_DIRECTION]||"east";"east"==M?M="south":"south"==M?M="west":"west"==M?M="north":"north"==M&&(M="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,M,[e])}b.push(e)}}}finally{c.endUpdate()}return b};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;
-a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var c=this.model.getDescendants(a.cell);if(0<c.length)for(var b=0;b<c.length;b++){var e=this.view.getState(c[b]);null!=e&&null!=e.shape&&null!=e.shape.stencil&&this.stencilHasPlaceholders(e.shape.stencil)?this.removeStateForCell(c[b]):this.isReplacePlaceholders(c[b])&&this.view.invalidate(c[b],
-!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),e=Array.prototype.slice.call(a.attributes);attr=e.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),e=0;e<b.length;e++)c(b[e])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var e=document.createElement("div"),
-d=0;d<a.length;d++)if(this.isHtmlLabel(a[d])){var k=this.convertValueToString(a[d]);if(null!=k&&0<k.length){e.innerHTML=k;for(var g=e.getElementsByTagName(null!=b?b:"*"),f=0;f<g.length;f++)c(g[f]);e.innerHTML!=k&&this.cellLabelChanged(a[d],e.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=Graph.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var e=a.getAttribute("placeholder"),
-d=a;null!=d;){if(d==this.model.getRoot()||null!=d.value&&"object"==typeof d.value&&d.hasAttribute(e)){this.setAttributeForCell(d,e,c);break}d=this.model.getParent(d)}var k=a.value.cloneNode(!0);k.setAttribute("label",c);c=k}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var e=[],b=0;b<a.length;b++){var d=this.model.getParent(a[b]);null==d||
-c.get(d)||(c.put(d,!0),e.push(d))}for(b=0;b<e.length;b++)if(d=this.view.getState(e[b]),null!=d&&(this.model.isEdge(d.cell)||this.model.isVertex(d.cell))&&this.isCellDeletable(d.cell)){var k=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),g=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);if(k==mxConstants.NONE&&g==mxConstants.NONE){k=!0;for(g=0;g<this.model.getChildCount(d.cell)&&k;g++)c.get(this.model.getChildAt(d.cell,g))||(k=!1);k&&a.push(d.cell)}}}mxGraph.prototype.cellsRemoved.apply(this,
-arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var c=[],b=0;b<a.length;b++)if(this.isCellDeletable(a[b])){var e=this.view.getState(a[b]);if(null!=e){var d=mxUtils.getValue(e.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),e=mxUtils.getValue(e.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);d==mxConstants.NONE&&e==mxConstants.NONE&&c.push(a[b])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,
-"link",c)};Graph.prototype.setTooltipForCell=function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.getAttributeForCell=function(a,c,b){return null!=a.value&&"object"===typeof a.value?a.value.getAttribute(c)||b:b};Graph.prototype.setAttributeForCell=function(a,c,b){var e;null!=a.value&&"object"==typeof a.value?e=a.value.cloneNode(!0):(e=mxUtils.createXmlDocument().createElement("UserObject"),e.setAttribute("label",a.value||""));null!=b?e.setAttribute(c,b):e.removeAttribute(c);this.model.setValue(a,
-e)};Graph.prototype.getDropTarget=function(a,c,b,e){this.getModel();if(mxEvent.isAltDown(c))return null;for(var d=0;d<a.length;d++)if(this.model.isEdge(this.model.getParent(a[d])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),
-mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var e=this.model.isEdge(c)?this.view.getState(c):null,d=mxEvent.getSource(a);this.firstClickState!=e||this.firstClickSource!=d||null!=e&&null!=e.text&&null!=e.text.node&&null!=e.text.boundingBox&&(mxUtils.contains(e.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(e.text.node,mxEvent.getSource(a)))||(null!=e||this.isCellLocked(this.getDefaultParent()))&&(null==e||this.isCellLocked(e.cell))||!(null!=e||mxClient.IS_VML&&d==this.view.getCanvas()||
-mxClient.IS_SVG&&d==this.view.getCanvas().ownerSVGElement)||(c=this.addText(b.x,b.y,e))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var e=this.getPageLayout(),d=this.getPageSize(),c=Math.max(c,e.x*d.width),b=Math.max(b,e.y*d.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};
-Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),e=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y,(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(e,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,b){var e=new mxCell;e.value="Text";e.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
-e.geometry=new mxGeometry(0,0,0,0);e.vertex=!0;if(null!=b){e.style+="labelBackgroundColor=#ffffff;";e.geometry.relative=!0;e.connectable=!1;var d=this.view.getRelativePoint(b,a,c);e.geometry.x=Math.round(1E4*d.x)/1E4;e.geometry.y=Math.round(d.y);e.geometry.offset=new mxPoint(0,0);var d=this.view.getPoint(b,e.geometry),k=this.view.scale;e.geometry.offset=new mxPoint(Math.round((a-d.x)/k),Math.round((c-d.y)/k))}else e.style+="autosize=1;",d=this.view.translate,e.geometry.width=40,e.geometry.height=
-20,e.geometry.x=Math.round(a/this.view.scale)-d.x,e.geometry.y=Math.round(c/this.view.scale)-d.y;this.getModel().beginUpdate();try{this.addCells([e],null!=b?b.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[e])),this.autoSizeCell(e)}finally{this.getModel().endUpdate()}return e};Graph.prototype.addClickHandler=function(a,c,b){var e=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var e=this.getAbsoluteUrl(a[b].getAttribute("href"));
-null!=e&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",e),null!=c&&mxEvent.addGestureListeners(a[b],null,null,c))}});this.model.addListener(mxEvent.CHANGE,e);e();var d=this.container.style.cursor,k=this.getTolerance(),g=this,f={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=
-g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor=
-"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=Math.abs(this.startX-c.getGraphX()),e=Math.abs(this.startY-c.getGraphY());(b>k||e>k)&&this.clear()}}else{for(b=c.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||
-!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,e){for(var d=e.getSource(),f=e.getEvent();null!=d&&"a"!=d.nodeName.toLowerCase();)d=d.parentNode;null==d&&Math.abs(this.scrollLeft-g.container.scrollLeft)<k&&Math.abs(this.scrollTop-g.container.scrollTop)<k&&(null==e.sourceState||!e.isSource(e.sourceState.control))&&((mxEvent.isLeftMouseButton(f)||mxEvent.isMiddleMouseButton(f))&&!mxEvent.isPopupTrigger(f)||mxEvent.isTouchEvent(f))&&(null!=
-this.currentLink?(d=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&d||null==c||c(f,this.currentLink),mxEvent.isConsumed(f)||(f=mxEvent.isMiddleMouseButton(f)?"_blank":d?g.linkTarget:"_top",g.openLink(this.currentLink,f),e.consume())):null!=b&&!e.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<k&&Math.abs(this.scrollTop-g.container.scrollTop)<k&&Math.abs(this.startX-e.getGraphX())<k&&Math.abs(this.startY-e.getGraphY())<k&&b(e.getEvent()));this.clear()},activate:function(a){this.currentLink=
-g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=d);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(f);mxEvent.addListener(document,"mouseleave",function(a){f.clear()})};Graph.prototype.duplicateCells=function(a,
-c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),e=this.gridSize,d=[];b.beginUpdate();try{for(var k=this.cloneCells(a,!1,null,!0),g=0;g<a.length;g++){var f=b.getParent(a[g]),p=this.moveCells([k[g]],e,e,!1)[0];d.push(p);if(c)b.add(f,k[g]);else{var n=f.getIndex(a[g]);b.add(f,k[g],n+1)}}}finally{b.endUpdate()}return d};Graph.prototype.insertImage=function(a,c,b){if(null!=a&&null!=this.cellEditor.textarea){for(var e=this.cellEditor.textarea.getElementsByTagName("img"),
-d=[],k=0;k<e.length;k++)d.push(e[k]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==d.length+1)for(k=a.length-1;0<=k;k--)if(0==k||a[k]!=d[k-1]){a[k].setAttribute("width",c);a[k].setAttribute("height",b);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],e=0;e<c.length;e++)b.push(c[e]);
-document.execCommand("createlink",!1,mxUtils.trim(a));c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(e=c.length-1;0<=e;e--)if(c[e]!=b[e-1]){for(c=c[e].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=
-this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var b=[],e=null,d=null,k=0;k<c.length;k++)if(this.getModel().isVertex(c[k])){var g=this.view.getState(c[k]);if(null!=g){var f=a?g.getCenterX():g.getCenterY(),e=null!=e?Math.max(e,f):f,d=null!=d?Math.min(d,f):f;b.push(g)}}if(2<
-b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});g=this.view.translate;f=this.view.scale;d=d/f-(a?g.x:g.y);e=e/f-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var p=(e-d)/(b.length-1),e=d,k=1;k<b.length-1;k++){var n=this.view.getState(this.model.getParent(b[k].cell)),B=this.getCellGeometry(b[k].cell),e=e+p;null!=B&&null!=n&&(B=B.clone(),a?B.x=Math.round(e-B.width/2)-n.origin.x:B.y=Math.round(e-B.height/2)-n.origin.y,this.getModel().setGeometry(b[k].cell,B))}}finally{this.getModel().endUpdate()}}}return c};
-Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,e,d,k,g,f,p,n){var B=this.useCssTransforms;B&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;b=null!=b?b:0;d=null!=d?d:!0;k=null!=k?k:
-!0;g=null!=g?g:!0;var x=k||e?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==x)throw Error(mxResources.get("drawingEmpty"));var t=this.view.scale,A=mxUtils.createXmlDocument(),v=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"svg"):A.createElement("svg");null!=a&&(null!=v.style?v.style.backgroundColor=a:v.setAttribute("style","background-color:"+a));null==A.createElementNS?(v.setAttribute("xmlns",mxConstants.NS_SVG),v.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):
-v.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/t;var l=Math.max(1,Math.ceil(x.width*a)+2*b)+(n?5:0),y=Math.max(1,Math.ceil(x.height*a)+2*b)+(n?5:0);v.setAttribute("version","1.1");v.setAttribute("width",l+"px");v.setAttribute("height",y+"px");v.setAttribute("viewBox",(d?"-0.5 -0.5":"0 0")+" "+l+" "+y);A.appendChild(v);var K=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"g"):A.createElement("g");v.appendChild(K);var u=this.createSvgCanvas(K);
-u.foOffset=d?-.5:0;u.textOffset=d?-.5:0;u.imageOffset=d?-.5:0;u.translate(Math.floor((b/c-x.x)/t),Math.floor((b/c-x.y)/t));var m=document.createElement("div"),I=u.getAlternateText;u.getAlternateText=function(a,c,b,e,d,k,g,f,p,n,B,x,t){if(null!=k&&0<this.state.fontSize)try{mxUtils.isNode(k)?k=k.innerText:(m.innerHTML=k,k=mxUtils.extractTextWithWhitespace(m.childNodes));for(var A=Math.ceil(2*e/this.state.fontSize),v=[],l=0,y=0;(0==A||l<A)&&y<k.length;){var K=k.charCodeAt(y);if(10==K||13==K){if(0<l)break}else v.push(k.charAt(y)),
-255>K&&l++;y++}v.length<k.length&&1<k.length-v.length&&(k=mxUtils.trim(v.join(""))+"...");return k}catch(Ga){return I.apply(this,arguments)}else return I.apply(this,arguments)};var q=this.backgroundImage;if(null!=q){c=t/c;var G=this.view.translate,D=new mxRectangle(G.x*c,G.y*c,q.width*c,q.height*c);mxUtils.intersects(x,D)&&u.image(G.x,G.y,q.width,q.height,q.src,!0)}u.scale(a);u.textEnabled=g;f=null!=f?f:this.createSvgImageExport();var M=f.drawCellState,z=f.getLinkForCellState;f.getLinkForCellState=
-function(a,c){var b=z.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};f.drawCellState=function(a,c){for(var b=a.view.graph,e=b.isCellSelected(a.cell),d=b.model.getParent(a.cell);!k&&!e&&null!=d;)e=b.isCellSelected(d),d=b.model.getParent(d);(k||e)&&M.apply(this,arguments)};f.drawState(this.getView().getState(this.model.root),u);this.updateSvgLinks(v,p,!0);return v}finally{B&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.updateSvgLinks=
-function(a,c,b){a=a.getElementsByTagName("a");for(var e=0;e<a.length;e++){var d=a[e].getAttribute("href");null==d&&(d=a[e].getAttribute("xlink:href"));null!=d&&(null!=c&&/^https?:\/\//.test(d)?a[e].setAttribute("target",c):b&&this.isCustomLink(d)&&a[e].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();
-c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,c,b){for(;null!=a&&!(0<=mxUtils.indexOf(c,a.nodeName));){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=
-window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],e=b.rows[0].cells,d=0,k=0;k<e.length;k++)var g=e[k].getAttribute("colspan"),d=d+(null!=g?parseInt(g):1);b=b.insertRow(c);for(k=0;k<d;k++)mxUtils.br(b.insertCell(-1));
-return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var e=0;e<b.rows.length;e++){var d=document.createElement("th");b.rows[e].appendChild(d);mxUtils.br(d)}b=a.tBodies[0];for(e=0;e<b.rows.length;e++)d=b.rows[e].insertCell(c),mxUtils.br(d);return b.rows[0].cells[0<=c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,e=0;e<b.length;e++)b[e].cells.length>
-c&&b[e].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var e;e=b.firstChild;)lastNode=a.appendChild(e);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=
-a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var e=document.createElement("a");e.setAttribute("rel",this.linkRelation);e.setAttribute("href",this.getAbsoluteUrl(a));e.setAttribute("title",b(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&e.setAttribute("target",this.linkTarget);mxUtils.write(e,b(c,40));this.isCustomLink(a)&&mxEvent.addListener(e,
-"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return e};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var b=this.getCellAt(c.graphX,c.graphY);
-null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,c.graphX,c.graphY)||(c.state=this.view.getState(b),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return c};var c=!1,b=!1,e=!1,d=this.fireMouseEvent;this.fireMouseEvent=function(a,k,g){a==mxEvent.MOUSE_DOWN&&(k=this.updateMouseEvent(k),c=this.isCellSelected(k.getCell()),b=this.isSelectionEmpty(),e=this.popupMenuHandler.isMenuShowing());
-d.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,d){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==d.getState()||!d.isSource(d.getState().control))&&(this.popupMenuHandler.popupTrigger||!e&&!mxEvent.isMouseEvent(d.getEvent())&&(b&&null==d.getCell()&&this.isSelectionEmpty()||c&&this.isCellSelected(d.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=
-this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.alignText=function(a,c){var b=null!=c&&mxEvent.isShiftDown(c);if(b||null!=window.getSelection&&null!=window.getSelection().containsNode){var e=!0;this.graph.processElements(this.textarea,function(a){b||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),
-a.style.textAlign=null):e=!1});e&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,e=a.rangeCount;b<e;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=
-window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(U){}};var q=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));q.apply(this,arguments)};var u=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?
-u.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var z=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,c){z.apply(this,arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=
-null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),e=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=e&&e.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var C=mxCellEditor.prototype.installListeners;
-mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var e=b.firstChild;null!=a&&null!=e;)c(a,e),a=a.nextSibling,e=e.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=a)e(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var d=a.nextSibling;null==c?e(a):(b(a,c),c=c.nextSibling);a=d}}function e(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;e(c);c=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&
-0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}C.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,
-function(a){var e=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>"))&&b(this.textarea,e)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){p=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<p.length&&"\n"==p.charAt(p.length-1)&&(p=p.substring(0,p.length-1));p=this.graph.sanitizeHtml(c?p.replace(/\n/g,"<br/>"):p,!0);this.textarea.className="mxCellEditor geContentEditable";var e=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),d=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),k=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,f=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&f.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&f.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(e*mxConstants.LINE_HEIGHT)+
-"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(e)+"px";this.textarea.style.textDecoration=f.join(" ");this.textarea.style.fontWeight=k?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;this.textarea.style.textAlign=d;this.textarea.style.padding="0px";this.textarea.innerHTML!=p&&(this.textarea.innerHTML=p,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));
-this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var p=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(p=mxUtils.replaceTrailingNewlines(p,"<div><br></div>"));p=this.graph.sanitizeHtml(c?p.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):p,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var e=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=
-mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(e*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(e)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=p&&(this.textarea.innerHTML=p);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&
-this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()}};var c=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var e=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*e;this.bounds.height=60*e;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,
-mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/e)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/e)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/e)+(this.textarea.offsetHeight-
-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*e);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/e)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*e);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=e:mxUtils.setPrefixedStyle(this.textarea.style,
-"transform","scale("+e+","+e+")")}else this.textarea.style.height="",this.textarea.style.overflow="",c.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};
-mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var c=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var e=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
-this.toggleViewMode();e.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(M){}};var k=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();try{if(k.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),e=mxUtils.getValue(a.style,
-mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&b==mxConstants.NONE&&e==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=c&&c!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,
-1)||(c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var x=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,b,e,d,k){mxEvent.isAltDown(k)&&(d=null);x.apply(this,arguments)};mxGraphView.prototype.formatUnitText=function(a){return a?b(a,this.unit):a};mxGraphHandler.prototype.updateHint=
-function(c){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var e=this.graph.view.translate,d=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/d-e.x);e=this.roundLength((this.bounds.y+this.currentDy)/d-e.y);d=this.graph.view.unit;this.hint.innerHTML=b(c,d)+", "+b(e,d);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";
-this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};
-mxVertexHandler.prototype.isRecursiveResize=function(a,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(c.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,c){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,
-"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(c.getEvent())||mxEvent.isMetaDown(c.getEvent())};var n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=n.apply(this,
-arguments);return a};mxVertexHandler.prototype.updateHint=function(c){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{c=this.state.view.scale;var e=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/c),e)+" x "+b(this.roundLength(this.bounds.height/c),e)}c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?
-this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==c&&(c=this.bounds);this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=c.y+c.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var g=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=
-function(a,c){g.apply(this,arguments);null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none")};var A=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(a,c){A.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,e){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));
-var d=this.graph.view.translate,k=this.graph.view.scale,g=this.roundLength(e.x/k-d.x),d=this.roundLength(e.y/k-d.y),k=this.graph.view.unit;this.hint.innerHTML=b(g,k)+", "+b(d,k);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility=
-"hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),e.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",
-17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=
-mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
-24,24):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="'+HoverIcons.prototype.arrowFill+'"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;
-mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=
-HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=
-HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=
-!0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};
-if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var c=a.getEvent();return null==
-a.getState()&&!mxEvent.isMouseEvent(c)||mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var v=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){v.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c=a.getEvent();return mxEvent.isLeftMouseButton(c)&&
-(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,c){var b=null!=this.div&&"none"!=this.div.style.display,e=null,d=null,k=null,g=null;null!=this.first&&
-null!=this.currentX&&null!=this.currentY&&(e=this.first.x,d=this.first.y,k=(this.currentX-e)/this.graph.view.scale,g=(this.currentY-d)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(k=this.graph.snap(k),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(k)<this.graph.tolerance&&(k=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var k=new mxRectangle(this.x,this.y,this.width,this.height),f=
-this.graph.getCells(k.x,k.y,k.width,k.height);this.graph.removeSelectionCells(f)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(f=this.graph.getCellsBeyond(e,d,this.graph.getDefaultParent(),!0,!0),b=0;b<f.length;b++)if(this.graph.isCellMovable(f[b])){var p=this.graph.view.getState(f[b]),n=this.graph.getCellGeometry(f[b]);null!=p&&null!=n&&(n=n.clone(),n.translate(k,g),this.graph.model.setGeometry(f[b],n))}}finally{this.graph.model.endUpdate()}}else k=new mxRectangle(this.x,this.y,
-this.width,this.height),this.graph.selectRegion(k,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),e=mxUtils.getOffset(this.graph.container);b.x-=e.x;b.y-=e.y;var e=c.getX()+b.x,b=c.getY()+b.y,d=this.first.x-e,k=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(d)>g||Math.abs(k)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e,b),
-this.isSpaceEvent(c)?(e=this.x+this.width,b=this.y+this.height,d=this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(this.width=this.graph.snap(this.width/d)*d,this.height=this.graph.snap(this.height/d)*d,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=e-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=
-this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=
-Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),c.consume()}};var t=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);t.apply(this,
-arguments)};var E=(new Date).getTime(),y=0,D=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,e){D.apply(this,arguments);b!=this.currentTerminalState?(E=(new Date).getTime(),y=0):y=(new Date).getTime()-E;this.currentTerminalState=b};var p=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<y||(null==this.currentTerminalState||
-"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&p.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,e=this.state.getVisibleTerminalState(b),d=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,e,b):null,b=null!=(null!=d?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),
-d):null)?this.fixedHandleImage:null!=d&&null!=e?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var B=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?
-HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return B.apply(this,arguments)};var K=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),e=this.graph.getCellGeometry(a[0]);if(c.isEdge(b)&&null!=e&&e.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return K.apply(this,
-arguments)};var Q=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=Q.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var I=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),e=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=e&&e.relative&&2>a.width&&2>a.height&&null!=
+this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var l=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=l.apply(this,arguments),c=a.getCell;a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",
+orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&&(a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&
+(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");null!=this.currentEdgeStyle.orthogonalLoop?a+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&
+(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+
+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,c){c=null!=c?c:{};for(var b=0;b<a.length;b++){var d=a[b];c[mxObjectIdentity.get(d)]=d.getId();for(var e=this.model.getChildCount(d),k=0;k<e;k++)this.createCellLookup([this.model.getChildAt(d,k)],c)}return c};Graph.prototype.createCellMapping=function(a,c,b){b=null!=b?b:{};for(var d in a){var e=c[d];null==b[e]&&(b[e]=a[d].getId()||"")}return b};
+Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var e=new mxCodec(a.ownerDocument),k=new mxGraphModel;e.decode(a,k);a=[];var e={},f={},g=k.getChildren(this.cloneCell(k.root,this.isCloneInvalidEdges(),e));if(null!=g){var p=this.createCellLookup([k.root]),g=g.slice();this.model.beginUpdate();try{if(1!=g.length||this.isCellLocked(this.getDefaultParent()))for(k=0;k<g.length;k++)a=a.concat(this.model.getChildren(this.moveCells([g[k]],c,b,!1,this.model.getRoot())[0]));else a=
+this.moveCells(k.getChildren(g[0]),c,b,!1,this.getDefaultParent()),f[k.getChildAt(k.root,0).getId()]=this.getDefaultParent().getId();this.createCellMapping(e,p,f);this.updateCustomLinks(f,a);if(d){this.isGridEnabled()&&(c=this.snap(c),b=this.snap(b));var n=this.getBoundingBoxFromGeometry(a,!0);null!=n&&this.moveCells(a,c-n.x,b-n.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],
+!0);for(e=0;e<b.length;e++){var k=this.view.getState(a[e]);if(null!=k){var f=this.getCellGeometry(b[e]);null==f||!f.relative||this.model.isEdge(a[e])||d.get(this.model.getParent(a[e]))||(f.relative=!1,f.x=k.x/k.view.scale-k.view.translate.x,f.y=k.y/k.view.scale-k.view.translate.y)}}d=new mxCodec;k=new mxGraphModel;f=k.getChildAt(k.getRoot(),0);for(e=0;e<b.length;e++)k.add(f,b[e]);this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return d.encode(k)};var m=Graph.prototype.moveCells;
+Graph.prototype.moveCells=function(a,c,b,d,e,k,f){f=null!=f?f:{};var g=m.apply(this,arguments);d&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(a)),g);return g};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=
+[];try{for(var e=JSON.parse(b),b=0;b<e.length;b++){var k=e[b];d.push(new mxConnectionConstraint(new mxPoint(k[0],k[1]),2<k.length?"0"!=k[2]:!0,null,3<k.length?k[3]:0,4<k.length?k[4]:0))}}catch(R){}return d}if(null!=a.shape&&null!=a.shape.bounds){k=a.shape.direction;e=a.shape.bounds;b=a.shape.scale;d=e.width/b;e=e.height/b;if(k==mxConstants.DIRECTION_NORTH||k==mxConstants.DIRECTION_SOUTH)k=d,d=e,e=k;b=a.shape.getConstraints(a.style,d,e);if(null!=b)return b;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;
+if(null!=a.shape.constraints)return a.shape.constraints}}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var e=
+this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||b++)}return 0<b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(c,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,
+arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&
+(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),b=[];c.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(c.isEdge(e)){var k=c.getTerminal(e,!0),f=c.getTerminal(e,!1);c.setTerminal(e,f,!0);c.setTerminal(e,k,!1);var g=c.getGeometry(e);if(null!=g){g=g.clone();null!=g.points&&g.points.reverse();var p=g.getTerminalPoint(!0),n=g.getTerminalPoint(!1);g.setTerminalPoint(p,!1);g.setTerminalPoint(n,!0);c.setGeometry(e,
+g);var B=this.view.getState(e),x=this.view.getState(k),t=this.view.getState(f);if(null!=B){var A=null!=x?this.getConnectionConstraint(B,x,!0):null,v=null!=t?this.getConnectionConstraint(B,t,!1):null;this.setConnectionConstraint(e,k,!0,v);this.setConnectionConstraint(e,f,!1,A)}b.push(e)}}else if(c.isVertex(e)&&(g=this.getCellGeometry(e),null!=g)){g=g.clone();g.x+=g.width/2-g.height/2;g.y+=g.height/2-g.width/2;var l=g.width;g.width=g.height;g.height=l;c.setGeometry(e,g);var y=this.view.getState(e);
+if(null!=y){var Q=y.style[mxConstants.STYLE_DIRECTION]||"east";"east"==Q?Q="south":"south"==Q?Q="west":"west"==Q?Q="north":"north"==Q&&(Q="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,Q,[e])}b.push(e)}}}finally{c.endUpdate()}return b};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,
+arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var c=this.model.getDescendants(a.cell);if(0<c.length)for(var b=0;b<c.length;b++){var e=this.view.getState(c[b]);null!=e&&null!=e.shape&&null!=e.shape.stencil&&this.stencilHasPlaceholders(e.shape.stencil)?this.removeStateForCell(c[b]):this.isReplacePlaceholders(c[b])&&this.view.invalidate(c[b],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=
+c?c:"span"),e=Array.prototype.slice.call(a.attributes);attr=e.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),e=0;e<b.length;e++)c(b[e])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var e=document.createElement("div"),d=0;d<a.length;d++)if(this.isHtmlLabel(a[d])){var k=this.convertValueToString(a[d]);
+if(null!=k&&0<k.length){e.innerHTML=k;for(var g=e.getElementsByTagName(null!=b?b:"*"),f=0;f<g.length;f++)c(g[f]);e.innerHTML!=k&&this.cellLabelChanged(a[d],e.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=Graph.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var e=a.getAttribute("placeholder"),d=a;null!=d;){if(d==this.model.getRoot()||null!=d.value&&"object"==typeof d.value&&
+d.hasAttribute(e)){this.setAttributeForCell(d,e,c);break}d=this.model.getParent(d)}var k=a.value.cloneNode(!0);k.setAttribute("label",c);c=k}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var e=[],b=0;b<a.length;b++){var d=this.model.getParent(a[b]);null==d||c.get(d)||(c.put(d,!0),e.push(d))}for(b=0;b<e.length;b++)if(d=this.view.getState(e[b]),
+null!=d&&(this.model.isEdge(d.cell)||this.model.isVertex(d.cell))&&this.isCellDeletable(d.cell)&&this.isTransparentState(d)){for(var k=!0,g=0;g<this.model.getChildCount(d.cell)&&k;g++)c.get(this.model.getChildAt(d.cell,g))||(k=!1);k&&a.push(d.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var c=[],b=0;b<a.length;b++)this.isCellDeletable(a[b])&&this.isTransparentState(this.view.getState(a[b]))&&c.push(a[b]);a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,
+arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell=function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.getAttributeForCell=function(a,c,b){return null!=a.value&&"object"===typeof a.value?a.value.getAttribute(c)||b:b};Graph.prototype.setAttributeForCell=function(a,c,b){var e;null!=a.value&&"object"==typeof a.value?e=a.value.cloneNode(!0):(e=mxUtils.createXmlDocument().createElement("UserObject"),e.setAttribute("label",
+a.value||""));null!=b?e.setAttribute(c,b):e.removeAttribute(c);this.model.setValue(a,e)};Graph.prototype.getDropTarget=function(a,c,b,e){this.getModel();if(mxEvent.isAltDown(c))return null;for(var d=0;d<a.length;d++)if(this.model.isEdge(this.model.getParent(a[d])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=
+function(a,c){if(this.isEnabled()){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var e=this.model.isEdge(c)?this.view.getState(c):null,d=mxEvent.getSource(a);this.firstClickState!=e||this.firstClickSource!=d||null!=e&&null!=e.text&&null!=e.text.node&&null!=e.text.boundingBox&&(mxUtils.contains(e.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(e.text.node,mxEvent.getSource(a)))||(null!=e||this.isCellLocked(this.getDefaultParent()))&&
+(null==e||this.isCellLocked(e.cell))||!(null!=e||mxClient.IS_VML&&d==this.view.getCanvas()||mxClient.IS_SVG&&d==this.view.getCanvas().ownerSVGElement)||(c=this.addText(b.x,b.y,e))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var e=this.getPageLayout(),d=this.getPageSize(),c=Math.max(c,
+e.x*d.width),b=Math.max(b,e.y*d.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),e=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y,(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(e,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,
+c,b){var e=new mxCell;e.value="Text";e.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";e.geometry=new mxGeometry(0,0,0,0);e.vertex=!0;if(null!=b){e.style+="labelBackgroundColor=#ffffff;";e.geometry.relative=!0;e.connectable=!1;var d=this.view.getRelativePoint(b,a,c);e.geometry.x=Math.round(1E4*d.x)/1E4;e.geometry.y=Math.round(d.y);e.geometry.offset=new mxPoint(0,0);var d=this.view.getPoint(b,e.geometry),k=this.view.scale;e.geometry.offset=new mxPoint(Math.round((a-d.x)/
+k),Math.round((c-d.y)/k))}else e.style+="autosize=1;",d=this.view.translate,e.geometry.width=40,e.geometry.height=20,e.geometry.x=Math.round(a/this.view.scale)-d.x,e.geometry.y=Math.round(c/this.view.scale)-d.y;this.getModel().beginUpdate();try{this.addCells([e],null!=b?b.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[e])),this.autoSizeCell(e)}finally{this.getModel().endUpdate()}return e};Graph.prototype.addClickHandler=function(a,c,b){var e=mxUtils.bind(this,function(){var a=
+this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var e=this.getAbsoluteUrl(a[b].getAttribute("href"));null!=e&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",e),null!=c&&mxEvent.addGestureListeners(a[b],null,null,c))}});this.model.addListener(mxEvent.CHANGE,e);e();var d=this.container.style.cursor,k=this.getTolerance(),g=this,f={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,
+startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;
+this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=Math.abs(this.startX-c.getGraphX()),e=Math.abs(this.startY-c.getGraphY());(b>k||e>k)&&this.clear()}}else{for(b=c.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&
+g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,e){for(var d=e.getSource(),f=e.getEvent();null!=d&&"a"!=d.nodeName.toLowerCase();)d=d.parentNode;null==d&&Math.abs(this.scrollLeft-g.container.scrollLeft)<k&&Math.abs(this.scrollTop-g.container.scrollTop)<k&&(null==e.sourceState||!e.isSource(e.sourceState.control))&&
+((mxEvent.isLeftMouseButton(f)||mxEvent.isMiddleMouseButton(f))&&!mxEvent.isPopupTrigger(f)||mxEvent.isTouchEvent(f))&&(null!=this.currentLink?(d=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&d||null==c||c(f,this.currentLink),mxEvent.isConsumed(f)||(f=mxEvent.isMiddleMouseButton(f)?"_blank":d?g.linkTarget:"_top",g.openLink(this.currentLink,f),e.consume())):null!=b&&!e.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<k&&Math.abs(this.scrollTop-g.container.scrollTop)<
+k&&Math.abs(this.startX-e.getGraphX())<k&&Math.abs(this.startY-e.getGraphY())<k&&b(e.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=d);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};
+g.click=function(a){};g.addMouseListener(f);mxEvent.addListener(document,"mouseleave",function(a){f.clear()})};Graph.prototype.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),e=this.gridSize,d=[];b.beginUpdate();try{for(var k=this.cloneCells(a,!1,null,!0),g=0;g<a.length;g++){var f=b.getParent(a[g]),p=this.moveCells([k[g]],e,e,!1)[0];d.push(p);if(c)b.add(f,k[g]);else{var n=f.getIndex(a[g]);b.add(f,k[g],n+1)}}}finally{b.endUpdate()}return d};
+Graph.prototype.insertImage=function(a,c,b){if(null!=a&&null!=this.cellEditor.textarea){for(var e=this.cellEditor.textarea.getElementsByTagName("img"),d=[],k=0;k<e.length;k++)d.push(e[k]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==d.length+1)for(k=a.length-1;0<=k;k--)if(0==k||a[k]!=d[k-1]){a[k].setAttribute("width",c);a[k].setAttribute("height",b);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==
+a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],e=0;e<c.length;e++)b.push(c[e]);document.execCommand("createlink",!1,mxUtils.trim(a));c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(e=c.length-1;0<=e;e--)if(c[e]!=b[e-1]){for(c=c[e].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",
+!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var b=[],e=null,d=null,k=0;k<c.length;k++)if(this.getModel().isVertex(c[k])){var g=this.view.getState(c[k]);
+if(null!=g){var f=a?g.getCenterX():g.getCenterY(),e=null!=e?Math.max(e,f):f,d=null!=d?Math.min(d,f):f;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});g=this.view.translate;f=this.view.scale;d=d/f-(a?g.x:g.y);e=e/f-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var p=(e-d)/(b.length-1),e=d,k=1;k<b.length-1;k++){var n=this.view.getState(this.model.getParent(b[k].cell)),B=this.getCellGeometry(b[k].cell),e=e+p;null!=B&&null!=n&&(B=B.clone(),a?B.x=Math.round(e-B.width/2)-n.origin.x:
+B.y=Math.round(e-B.height/2)-n.origin.y,this.getModel().setGeometry(b[k].cell,B))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,e,d,k,g,f,p,n){var B=this.useCssTransforms;B&&
+(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;b=null!=b?b:0;d=null!=d?d:!0;k=null!=k?k:!0;g=null!=g?g:!0;var x=k||e?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==x)throw Error(mxResources.get("drawingEmpty"));var t=this.view.scale,A=mxUtils.createXmlDocument(),v=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"svg"):A.createElement("svg");null!=a&&(null!=v.style?v.style.backgroundColor=a:v.setAttribute("style",
+"background-color:"+a));null==A.createElementNS?(v.setAttribute("xmlns",mxConstants.NS_SVG),v.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):v.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/t;var l=Math.max(1,Math.ceil(x.width*a)+2*b)+(n?5:0),y=Math.max(1,Math.ceil(x.height*a)+2*b)+(n?5:0);v.setAttribute("version","1.1");v.setAttribute("width",l+"px");v.setAttribute("height",y+"px");v.setAttribute("viewBox",(d?"-0.5 -0.5":"0 0")+" "+l+" "+y);A.appendChild(v);
+var L=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"g"):A.createElement("g");v.appendChild(L);var u=this.createSvgCanvas(L);u.foOffset=d?-.5:0;u.textOffset=d?-.5:0;u.imageOffset=d?-.5:0;u.translate(Math.floor((b/c-x.x)/t),Math.floor((b/c-x.y)/t));var m=document.createElement("div"),I=u.getAlternateText;u.getAlternateText=function(a,c,b,e,d,k,g,f,p,n,B,x,t){if(null!=k&&0<this.state.fontSize)try{mxUtils.isNode(k)?k=k.innerText:(m.innerHTML=k,k=mxUtils.extractTextWithWhitespace(m.childNodes));
+for(var v=Math.ceil(2*e/this.state.fontSize),A=[],l=0,y=0;(0==v||l<v)&&y<k.length;){var L=k.charCodeAt(y);if(10==L||13==L){if(0<l)break}else A.push(k.charAt(y)),255>L&&l++;y++}A.length<k.length&&1<k.length-A.length&&(k=mxUtils.trim(A.join(""))+"...");return k}catch(Ga){return I.apply(this,arguments)}else return I.apply(this,arguments)};var q=this.backgroundImage;if(null!=q){c=t/c;var G=this.view.translate,E=new mxRectangle(G.x*c,G.y*c,q.width*c,q.height*c);mxUtils.intersects(x,E)&&u.image(G.x,G.y,
+q.width,q.height,q.src,!0)}u.scale(a);u.textEnabled=g;f=null!=f?f:this.createSvgImageExport();var Q=f.drawCellState,z=f.getLinkForCellState;f.getLinkForCellState=function(a,c){var b=z.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};f.drawCellState=function(a,c){for(var b=a.view.graph,e=b.isCellSelected(a.cell),d=b.model.getParent(a.cell);!k&&!e&&null!=d;)e=b.isCellSelected(d),d=b.model.getParent(d);(k||e)&&Q.apply(this,arguments)};f.drawState(this.getView().getState(this.model.root),
+u);this.updateSvgLinks(v,p,!0);return v}finally{B&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.updateSvgLinks=function(a,c,b){a=a.getElementsByTagName("a");for(var e=0;e<a.length;e++){var d=a[e].getAttribute("href");null==d&&(d=a[e].getAttribute("xlink:href"));null!=d&&(null!=c&&/^https?:\/\//.test(d)?a[e].setAttribute("target",c):b&&this.isCustomLink(d)&&a[e].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);
+a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,c,b){for(;null!=a&&!(0<=mxUtils.indexOf(c,
+a.nodeName));){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],e=b.rows[0].cells,d=0,k=0;k<
+e.length;k++)var g=e[k].getAttribute("colspan"),d=d+(null!=g?parseInt(g):1);b=b.insertRow(c);for(k=0;k<d;k++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var e=0;e<b.rows.length;e++){var d=document.createElement("th");b.rows[e].appendChild(d);mxUtils.br(d)}b=a.tBodies[0];for(e=0;e<b.rows.length;e++)d=b.rows[e].insertCell(c),mxUtils.br(d);return b.rows[0].cells[0<=
+c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,e=0;e<b.length;e++)b[e].cells.length>c&&b[e].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var e;e=b.firstChild;)lastNode=a.appendChild(e);c.insertNode(a)}}else(c=document.selection)&&
+"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var e=document.createElement("a");e.setAttribute("rel",this.linkRelation);e.setAttribute("href",this.getAbsoluteUrl(a));e.setAttribute("title",b(this.isCustomLink(a)?this.getLinkTitle(a):
+a,80));null!=this.linkTarget&&e.setAttribute("target",this.linkTarget);mxUtils.write(e,b(c,40));this.isCustomLink(a)&&mxEvent.addListener(e,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return e};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
+function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var b=this.getCellAt(c.graphX,c.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,c.graphX,c.graphY)||(c.state=this.view.getState(b),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return c};var c=!1,b=!1,e=!1,d=this.fireMouseEvent;this.fireMouseEvent=function(a,
+k,g){a==mxEvent.MOUSE_DOWN&&(k=this.updateMouseEvent(k),c=this.isCellSelected(k.getCell()),b=this.isSelectionEmpty(),e=this.popupMenuHandler.isMenuShowing());d.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,d){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==d.getState()||!d.isSource(d.getState().control))&&(this.popupMenuHandler.popupTrigger||!e&&!mxEvent.isMouseEvent(d.getEvent())&&(b&&null==d.getCell()&&this.isSelectionEmpty()||c&&
+this.isCellSelected(d.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.alignText=function(a,c){var b=null!=c&&mxEvent.isShiftDown(c);if(b||null!=window.getSelection&&
+null!=window.getSelection().containsNode){var e=!0;this.graph.processElements(this.textarea,function(a){b||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):e=!1});e&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,e=a.rangeCount;b<e;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(U){}};var q=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));q.apply(this,arguments)};var u=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?u.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var z=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,c){z.apply(this,
+arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),e=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=e&&e.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var C=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var e=b.firstChild;null!=a&&null!=e;)c(a,e),a=a.nextSibling,e=e.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=a)e(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var d=
+a.nextSibling;null==c?e(a):(b(a,c),c=c.nextSibling);a=d}}function e(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;e(c);c=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}C.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var e=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>"))&&b(this.textarea,e)}),0)}))};mxCellEditor.prototype.toggleViewMode=
+function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){p=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<p.length&&"\n"==p.charAt(p.length-1)&&(p=p.substring(0,p.length-1));p=this.graph.sanitizeHtml(c?p.replace(/\n/g,"<br/>"):p,!0);this.textarea.className="mxCellEditor geContentEditable";var e=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),
+c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),d=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),k=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,f=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&f.push("underline");
+(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&f.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(e*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(e)+"px";this.textarea.style.textDecoration=f.join(" ");this.textarea.style.fontWeight=k?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;this.textarea.style.textAlign=
+d;this.textarea.style.padding="0px";this.textarea.innerHTML!=p&&(this.textarea.innerHTML=p,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var p=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(p=mxUtils.replaceTrailingNewlines(p,
+"<div><br></div>"));p=this.graph.sanitizeHtml(c?p.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):p,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var e=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(e*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(e)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=
+mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=p&&(this.textarea.innerHTML=p);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()}};var c=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
+null!=a){var e=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*e;this.bounds.height=60*e;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=
+Math.round((this.bounds.width-4)/e)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/e)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/e)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*e);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/e)+(this.textarea.offsetWidth-
+this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*e);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=e:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+e+","+e+")")}else this.textarea.style.height="",this.textarea.style.overflow="",c.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=
+function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var c=this.graph.sanitizeHtml(this.textarea.innerHTML,
+!0);return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var e=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();e.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(Q){}};var k=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,
+c){this.graph.getModel().beginUpdate();try{k.apply(this,arguments),""==c&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=c&&c!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,
+mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var x=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,b,e,d,k){mxEvent.isAltDown(k)&&(d=null);x.apply(this,arguments)};mxGraphView.prototype.formatUnitText=
+function(a){return a?b(a,this.unit):a};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var e=this.graph.view.translate,d=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/d-e.x);e=this.roundLength((this.bounds.y+this.currentDy)/d-e.y);d=this.graph.view.unit;this.hint.innerHTML=b(c,d)+", "+b(e,d);this.hint.style.left=this.pBounds.x+this.currentDx+
+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+
+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(c.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,c){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(c.getEvent())||mxEvent.isMetaDown(c.getEvent())};var n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+
+c,a.y=this.sizers[0].bounds.height+c):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{c=this.state.view.scale;var e=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/c),e)+" x "+b(this.roundLength(this.bounds.height/c),e)}c=
+mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==c&&(c=this.bounds);this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=c.y+c.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display=
+"")};var g=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,c){g.apply(this,arguments);null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none")};var A=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(a,c){A.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=
+function(c,e){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,k=this.graph.view.scale,g=this.roundLength(e.x/k-d.x),d=this.roundLength(e.y/k-d.y),k=this.graph.view.unit;this.hint.innerHTML=b(g,k)+", "+b(d,k);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML=
+"["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),e.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+
+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
+new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+
+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',24,24):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,
+5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="'+HoverIcons.prototype.arrowFill+'"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=
+HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);
+mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,
+(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.parentHighlightEnabled=
+!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||
+0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var c=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(c)||
+mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var v=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){v.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c=a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==
+a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,c){var b=null!=this.div&&"none"!=this.div.style.display,e=null,d=null,k=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&
+(e=this.first.x,d=this.first.y,k=(this.currentX-e)/this.graph.view.scale,g=(this.currentY-d)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(k=this.graph.snap(k),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(k)<this.graph.tolerance&&(k=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var k=new mxRectangle(this.x,this.y,this.width,this.height),f=this.graph.getCells(k.x,k.y,k.width,k.height);
+this.graph.removeSelectionCells(f)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(f=this.graph.getCellsBeyond(e,d,this.graph.getDefaultParent(),!0,!0),b=0;b<f.length;b++)if(this.graph.isCellMovable(f[b])){var p=this.graph.view.getState(f[b]),n=this.graph.getCellGeometry(f[b]);null!=p&&null!=n&&(n=n.clone(),n.translate(k,g),this.graph.model.setGeometry(f[b],n))}}finally{this.graph.model.endUpdate()}}else k=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(k,
+c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),e=mxUtils.getOffset(this.graph.container);b.x-=e.x;b.y-=e.y;var e=c.getX()+b.x,b=c.getY()+b.y,d=this.first.x-e,k=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(d)>g||Math.abs(k)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e,b),this.isSpaceEvent(c)?(e=this.x+this.width,b=this.y+
+this.height,d=this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(this.width=this.graph.snap(this.width/d)*d,this.height=this.graph.snap(this.height/d)*d,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=e-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+
+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=
+0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),c.consume()}};var t=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);t.apply(this,arguments)};var D=(new Date).getTime(),y=0,E=mxEdgeHandler.prototype.updatePreviewState;
+mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,e){E.apply(this,arguments);b!=this.currentTerminalState?(D=(new Date).getTime(),y=0):y=(new Date).getTime()-D;this.currentTerminalState=b};var p=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<y||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&
+p.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,e=this.state.getVisibleTerminalState(b),d=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,e,b):null,b=null!=(null!=d?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),d):null)?this.fixedHandleImage:
+null!=d&&null!=e?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var B=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:
+c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return B.apply(this,arguments)};var L=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),e=this.graph.getCellGeometry(a[0]);if(c.isEdge(b)&&null!=e&&e.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return L.apply(this,
+arguments)};var P=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=P.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var I=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),e=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=e&&e.relative&&2>a.width&&2>a.height&&null!=
a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):I.apply(this,arguments)};var S=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var b=this.graph.getModel(),e=b.getParent(this.state.cell),d=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(e)||null==d||!d.relative||null==this.state||
2<=this.state.width||2<=this.state.height)&&S.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,
mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&c==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var F=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){F.apply(this,arguments);null!=this.graph.graphHandler.first&&
(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var G=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){G.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&
-(this.linkHint.style.display="")};var P=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){P.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var c=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,
+(this.linkHint.style.display="")};var O=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){O.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var c=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,
function(a,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var b=this.graph.getLinkForCell(this.state.cell),e=this.graph.getLinksForState(this.state);
this.updateLinkHint(b,e);if(null!=b||null!=e&&0<e.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,b){try{if(null==c&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));
this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var e=document.createElement("img");e.setAttribute("src",Editor.editImage);e.setAttribute("title",mxResources.get("editLink"));e.setAttribute("width","11");e.setAttribute("height","11");e.style.marginLeft="10px";e.style.marginBottom="-1px";e.style.cursor="pointer";this.linkHint.appendChild(e);mxEvent.addListener(e,"click",mxUtils.bind(this,
@@ -2507,9 +2511,9 @@ this.editingHandler=null)};var Z=mxEdgeHandler.prototype.redrawHandles;mxEdgeHan
"px"}};var fa=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){fa.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ma=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ma.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),
this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function f(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function l(){mxCylinder.call(this)}function m(){mxActor.call(this)}function q(){mxCylinder.call(this)}function u(){mxActor.call(this)}function z(){mxActor.call(this)}function C(){mxActor.call(this)}function c(){mxActor.call(this)}function e(){mxActor.call(this)}function k(){mxActor.call(this)}function x(){mxActor.call(this)}function n(a,c){this.canvas=
a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,n.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,n.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,n.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,n.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,n.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,n.prototype.arcTo)}function g(){mxRectangleShape.call(this)}function A(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function t(){mxActor.call(this)}function E(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function D(){mxRectangleShape.call(this)}function p(){mxCylinder.call(this)}function B(){mxShape.call(this)}function K(){mxShape.call(this)}
-function Q(){mxEllipse.call(this)}function I(){mxShape.call(this)}function S(){mxShape.call(this)}function F(){mxRectangleShape.call(this)}function G(){mxShape.call(this)}function P(){mxShape.call(this)}function V(){mxShape.call(this)}function aa(){mxShape.call(this)}function W(){mxShape.call(this)}function H(){mxCylinder.call(this)}function Z(){mxRectangleShape.call(this)}function fa(){mxDoubleEllipse.call(this)}function ma(){mxDoubleEllipse.call(this)}function M(){mxArrowConnector.call(this);this.spacing=
-0}function ga(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function R(){mxActor.call(this)}function ba(){mxActor.call(this)}function N(){mxActor.call(this)}function J(){mxActor.call(this)}function ja(){mxActor.call(this)}function O(){mxActor.call(this)}function X(){mxActor.call(this)}function ha(){mxActor.call(this)}function la(){mxEllipse.call(this)}function L(){mxEllipse.call(this)}
+this.canvas.curveTo=mxUtils.bind(this,n.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,n.prototype.arcTo)}function g(){mxRectangleShape.call(this)}function A(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function t(){mxActor.call(this)}function D(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function E(){mxRectangleShape.call(this)}function p(){mxCylinder.call(this)}function B(){mxShape.call(this)}function L(){mxShape.call(this)}
+function P(){mxEllipse.call(this)}function I(){mxShape.call(this)}function S(){mxShape.call(this)}function F(){mxRectangleShape.call(this)}function G(){mxShape.call(this)}function O(){mxShape.call(this)}function V(){mxShape.call(this)}function aa(){mxShape.call(this)}function W(){mxShape.call(this)}function H(){mxCylinder.call(this)}function Z(){mxRectangleShape.call(this)}function fa(){mxDoubleEllipse.call(this)}function ma(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=
+0}function ga(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function R(){mxActor.call(this)}function ba(){mxActor.call(this)}function M(){mxActor.call(this)}function J(){mxActor.call(this)}function ja(){mxActor.call(this)}function N(){mxActor.call(this)}function X(){mxActor.call(this)}function ha(){mxActor.call(this)}function la(){mxEllipse.call(this)}function K(){mxEllipse.call(this)}
function oa(){mxEllipse.call(this)}function ea(){mxRhombus.call(this)}function ia(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function za(){mxEllipse.call(this)}function pa(){mxActor.call(this)}function ka(){mxActor.call(this)}function ta(){mxActor.call(this)}function qa(){mxConnector.call(this)}function ua(a,c,b,e,d,k,g,f,p,n){g+=p;var ca=e.clone();e.x-=d*(2*g+p);e.y-=k*(2*g+p);d*=g+p;k*=g+p;return function(){a.ellipse(ca.x-d-g,ca.y-k-g,2*g,2*g);n?
a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.darkOpacity=0;a.prototype.darkOpacity2=0;a.prototype.paintVertexShape=function(a,c,b,e,d){var k=Math.max(0,Math.min(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),ca=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));a.translate(c,b);a.begin();
a.moveTo(0,0);a.lineTo(e-k,0);a.lineTo(e,k);a.lineTo(e,d);a.lineTo(k,d);a.lineTo(0,d-k);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(e-k,0),a.lineTo(e,k),a.lineTo(k,k),a.close(),a.fill()),0!=ca&&(a.setFillAlpha(Math.abs(ca)),a.setFillColor(0>ca?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(k,k),a.lineTo(k,d),a.lineTo(0,d-k),a.close(),a.fill()),a.begin(),
@@ -2540,15 +2544,15 @@ function(a,c,b,e,d){var k=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(th
mxRectangleShape);A.prototype.paintBackground=function(a,c,b,e,d){a.setFillColor(mxConstants.NONE);a.rect(c,b,e,d);a.fill()};A.prototype.paintForeground=function(a,c,b,e,d){};mxCellRenderer.registerShape("transparent",A);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.prototype.isRoundable=
function(){return!0};v.prototype.redrawPath=function(a,c,b,e,d){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var k=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
this.addPoints(a,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,d-b),new mxPoint(Math.min(e,k+f),d-b),new mxPoint(g,d),new mxPoint(Math.max(0,k),d-b),new mxPoint(0,d-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(t,mxActor);t.prototype.size=.2;t.prototype.fixedSize=20;t.prototype.isRoundable=function(){return!0};t.prototype.redrawPath=function(a,c,b,e,d){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
-"size",this.fixedSize)))):e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(e-c,0),new mxPoint(e,d/2),new mxPoint(e-c,d),new mxPoint(0,d),new mxPoint(c,d/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",t);mxUtils.extend(E,mxHexagon);E.prototype.size=.25;E.prototype.isRoundable=function(){return!0};E.prototype.redrawPath=
-function(a,c,b,e,d){c=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(e-c,0),new mxPoint(e,.5*d),new mxPoint(e-c,d),new mxPoint(c,d),new mxPoint(0,.5*d)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",E);mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.paintForeground=function(a,
+"size",this.fixedSize)))):e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(e-c,0),new mxPoint(e,d/2),new mxPoint(e-c,d),new mxPoint(0,d),new mxPoint(c,d/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",t);mxUtils.extend(D,mxHexagon);D.prototype.size=.25;D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=
+function(a,c,b,e,d){c=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(e-c,0),new mxPoint(e,.5*d),new mxPoint(e-c,d),new mxPoint(c,d),new mxPoint(0,.5*d)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",D);mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.paintForeground=function(a,
c,b,e,d){var k=Math.min(e/5,d/5)+1;a.begin();a.moveTo(c+e/2,b+k);a.lineTo(c+e/2,b+d-k);a.moveTo(c+k,b+d/2);a.lineTo(c+e-k,b+d/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",y);var Ha=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+
-c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,e,d){Ha.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var k=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=k;b+=k;e-=2*k;d-=2*k;0<e&&0<d&&(a.setShadow(!1),Ha.apply(this,[a,c,b,e,d]))}};mxUtils.extend(D,mxRectangleShape);D.prototype.isHtmlAllowed=function(){return!1};D.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,
-this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};D.prototype.paintForeground=function(a,c,b,e,d){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var k=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=k;b+=k;e-=2*k;d-=2*k;0<e&&0<d&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var k=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+
+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,e,d){Ha.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var k=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=k;b+=k;e-=2*k;d-=2*k;0<e&&0<d&&(a.setShadow(!1),Ha.apply(this,[a,c,b,e,d]))}};mxUtils.extend(E,mxRectangleShape);E.prototype.isHtmlAllowed=function(){return!1};E.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,
+this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};E.prototype.paintForeground=function(a,c,b,e,d){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var k=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=k;b+=k;e-=2*k;d-=2*k;0<e&&0<d&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var k=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+
k]];if(null!=g){var f=this.style["symbol"+k+"Align"],p=this.style["symbol"+k+"VerticalAlign"],ca=this.style["symbol"+k+"Width"],n=this.style["symbol"+k+"Height"],B=this.style["symbol"+k+"Spacing"]||0,x=this.style["symbol"+k+"VSpacing"]||B,t=this.style["symbol"+k+"ArcSpacing"];null!=t&&(t*=this.getArcSize(e+this.strokewidth,d+this.strokewidth),B+=t,x+=t);var t=c,v=b,t=f==mxConstants.ALIGN_CENTER?t+(e-ca)/2:f==mxConstants.ALIGN_RIGHT?t+(e-ca-B):t+B,v=p==mxConstants.ALIGN_MIDDLE?v+(d-n)/2:p==mxConstants.ALIGN_BOTTOM?
-v+(d-n-x):v+x;a.save();f=new g;f.style=this.style;g.prototype.paintVertexShape.call(f,a,t,v,ca,n);a.restore()}k++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",D);mxUtils.extend(p,mxCylinder);p.prototype.redrawPath=function(a,c,b,e,d,k){k?(a.moveTo(0,0),a.lineTo(e/2,d/2),a.lineTo(e,0),a.end()):(a.moveTo(0,0),a.lineTo(e,0),a.lineTo(e,d),a.lineTo(0,d),a.close())};mxCellRenderer.registerShape("message",p);mxUtils.extend(B,mxShape);
-B.prototype.paintBackground=function(a,c,b,e,d){a.translate(c,b);a.ellipse(e/4,0,e/2,d/4);a.fillAndStroke();a.begin();a.moveTo(e/2,d/4);a.lineTo(e/2,2*d/3);a.moveTo(e/2,d/3);a.lineTo(0,d/3);a.moveTo(e/2,d/3);a.lineTo(e,d/3);a.moveTo(e/2,2*d/3);a.lineTo(0,d);a.moveTo(e/2,2*d/3);a.lineTo(e,d);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(K,mxShape);K.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};K.prototype.paintBackground=function(a,
-c,b,e,d){a.translate(c,b);a.begin();a.moveTo(0,d/4);a.lineTo(0,3*d/4);a.end();a.stroke();a.begin();a.moveTo(0,d/2);a.lineTo(e/6,d/2);a.end();a.stroke();a.ellipse(e/6,0,5*e/6,d);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",K);mxUtils.extend(Q,mxEllipse);Q.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+e/8,b+d);a.lineTo(c+7*e/8,b+d);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",Q);mxUtils.extend(I,
+v+(d-n-x):v+x;a.save();f=new g;f.style=this.style;g.prototype.paintVertexShape.call(f,a,t,v,ca,n);a.restore()}k++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",E);mxUtils.extend(p,mxCylinder);p.prototype.redrawPath=function(a,c,b,e,d,k){k?(a.moveTo(0,0),a.lineTo(e/2,d/2),a.lineTo(e,0),a.end()):(a.moveTo(0,0),a.lineTo(e,0),a.lineTo(e,d),a.lineTo(0,d),a.close())};mxCellRenderer.registerShape("message",p);mxUtils.extend(B,mxShape);
+B.prototype.paintBackground=function(a,c,b,e,d){a.translate(c,b);a.ellipse(e/4,0,e/2,d/4);a.fillAndStroke();a.begin();a.moveTo(e/2,d/4);a.lineTo(e/2,2*d/3);a.moveTo(e/2,d/3);a.lineTo(0,d/3);a.moveTo(e/2,d/3);a.lineTo(e,d/3);a.moveTo(e/2,2*d/3);a.lineTo(0,d);a.moveTo(e/2,2*d/3);a.lineTo(e,d);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(L,mxShape);L.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};L.prototype.paintBackground=function(a,
+c,b,e,d){a.translate(c,b);a.begin();a.moveTo(0,d/4);a.lineTo(0,3*d/4);a.end();a.stroke();a.begin();a.moveTo(0,d/2);a.lineTo(e/6,d/2);a.end();a.stroke();a.ellipse(e/6,0,5*e/6,d);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",L);mxUtils.extend(P,mxEllipse);P.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+e/8,b+d);a.lineTo(c+7*e/8,b+d);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",P);mxUtils.extend(I,
mxShape);I.prototype.paintVertexShape=function(a,c,b,e,d){a.translate(c,b);a.begin();a.moveTo(e,0);a.lineTo(0,d);a.moveTo(0,0);a.lineTo(e,d);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",I);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};S.prototype.paintBackground=function(a,c,b,e,d){a.translate(c,b);a.begin();a.moveTo(3*e/8,d/8*1.1);a.lineTo(5*e/8,0);a.end();a.stroke();a.ellipse(0,d/8,e,7*d/8);a.fillAndStroke()};
S.prototype.paintForeground=function(a,c,b,e,d){a.begin();a.moveTo(3*e/8,d/8*1.1);a.lineTo(5*e/8,d/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(F,mxRectangleShape);F.prototype.size=40;F.prototype.isHtmlAllowed=function(){return!1};F.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};F.prototype.paintBackground=function(a,c,b,e,
d){var k=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,e,k):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=F&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,b,e,k),a.restore()));k<d&&(a.setDashed(!0),a.begin(),a.moveTo(c+e/2,b+k),a.lineTo(c+e/2,b+d),a.end(),a.stroke())};F.prototype.paintForeground=function(a,
@@ -2564,15 +2568,15 @@ c==mxConstants.DIRECTION_EAST?(k=p*Math.max(0,Math.min(1,k)),f=[new mxPoint(g+k,
Math.min(1,k)),f=[new mxPoint(g,f),new mxPoint(g+p,f+k),new mxPoint(g+p,f+n-k),new mxPoint(g,f+n),new mxPoint(g,f)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<g||b.x>g+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(f,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,e){var d="0"!=mxUtils.getValue(c.style,"fixedSize","0"),k=d?t.prototype.fixedSize:t.prototype.size;null!=c&&(k=mxUtils.getValue(c.style,
"size",k));var g=a.x,f=a.y,p=a.width,n=a.height,ca=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(d=d?Math.max(0,Math.min(p,k)):p*Math.max(0,Math.min(1,k)),f=[new mxPoint(g,f),new mxPoint(g+p-d,f),new mxPoint(g+p,a),new mxPoint(g+p-d,f+n),new mxPoint(g,f+n),new mxPoint(g+d,a),new mxPoint(g,f)]):c==mxConstants.DIRECTION_WEST?(d=d?Math.max(0,Math.min(p,k)):p*Math.max(0,
Math.min(1,k)),f=[new mxPoint(g+d,f),new mxPoint(g+p,f),new mxPoint(g+p-d,a),new mxPoint(g+p,f+n),new mxPoint(g+d,f+n),new mxPoint(g,a),new mxPoint(g+d,f)]):c==mxConstants.DIRECTION_NORTH?(d=d?Math.max(0,Math.min(n,k)):n*Math.max(0,Math.min(1,k)),f=[new mxPoint(g,f+d),new mxPoint(ca,f),new mxPoint(g+p,f+d),new mxPoint(g+p,f+n),new mxPoint(ca,f+n-d),new mxPoint(g,f+n),new mxPoint(g,f+d)]):(d=d?Math.max(0,Math.min(n,k)):n*Math.max(0,Math.min(1,k)),f=[new mxPoint(g,f),new mxPoint(ca,f+d),new mxPoint(g+
-p,f),new mxPoint(g+p,f+n-d),new mxPoint(ca,f+n),new mxPoint(g,f+n-d),new mxPoint(g,f)]);ca=new mxPoint(ca,a);e&&(b.x<g||b.x>g+p?ca.y=b.y:ca.x=b.x);return mxUtils.getPerimeterPoint(f,ca,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,e){var d=E.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d));var k=a.x,g=a.y,f=a.width,p=a.height,n=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,
+p,f),new mxPoint(g+p,f+n-d),new mxPoint(ca,f+n),new mxPoint(g,f+n-d),new mxPoint(g,f)]);ca=new mxPoint(ca,a);e&&(b.x<g||b.x>g+p?ca.y=b.y:ca.x=b.x);return mxUtils.getPerimeterPoint(f,ca,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,e){var d=D.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d));var k=a.x,g=a.y,f=a.width,p=a.height,n=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,
mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(d=p*Math.max(0,Math.min(1,d)),g=[new mxPoint(n,g),new mxPoint(k+f,g+d),new mxPoint(k+f,g+p-d),new mxPoint(n,g+p),new mxPoint(k,g+p-d),new mxPoint(k,g+d),new mxPoint(n,g)]):(d=f*Math.max(0,Math.min(1,d)),g=[new mxPoint(k+d,g),new mxPoint(k+f-d,g),new mxPoint(k+f,a),new mxPoint(k+f-d,g+p),new mxPoint(k+d,g+p),new mxPoint(k,a),new mxPoint(k+d,g)]);n=new mxPoint(n,a);e&&(b.x<k||b.x>k+
-f?n.y=b.y:n.x=b.x);return mxUtils.getPerimeterPoint(g,n,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.paintBackground=function(a,c,b,e,d){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((e-k)/2,0,k,k);a.fillAndStroke();a.begin();a.moveTo(e/2,k);a.lineTo(e/2,d);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",P);mxUtils.extend(V,mxShape);V.prototype.size=
+f?n.y=b.y:n.x=b.x);return mxUtils.getPerimeterPoint(g,n,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(O,mxShape);O.prototype.size=10;O.prototype.paintBackground=function(a,c,b,e,d){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((e-k)/2,0,k,k);a.fillAndStroke();a.begin();a.moveTo(e/2,k);a.lineTo(e/2,d);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",O);mxUtils.extend(V,mxShape);V.prototype.size=
10;V.prototype.inset=2;V.prototype.paintBackground=function(a,c,b,e,d){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(e/2,k+g);a.lineTo(e/2,d);a.end();a.stroke();a.begin();a.moveTo((e-k)/2-g,k/2);a.quadTo((e-k)/2-g,k+g,e/2,k+g);a.quadTo((e+k)/2+g,k+g,(e+k)/2+g,k/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",V);mxUtils.extend(aa,mxShape);aa.prototype.paintBackground=
function(a,c,b,e,d){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(e,0,e,d/2);a.quadTo(e,d,0,d);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",aa);mxUtils.extend(W,mxShape);W.prototype.inset=2;W.prototype.paintBackground=function(a,c,b,e,d){var k=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,k,e-2*k,d-2*k);a.fillAndStroke();a.begin();a.moveTo(e/2,0);a.quadTo(e,0,e,d/2);a.quadTo(e,d,e/2,d);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",
W);mxUtils.extend(H,mxCylinder);H.prototype.jettyWidth=32;H.prototype.jettyHeight=12;H.prototype.redrawPath=function(a,c,b,e,d,k){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,f=.3*d-c/2,p=.7*d-c/2;k?(a.moveTo(b,f),a.lineTo(g,f),a.lineTo(g,f+c),a.lineTo(b,f+c),a.moveTo(b,p),a.lineTo(g,p),a.lineTo(g,p+c),a.lineTo(b,p+c)):(a.moveTo(b,0),a.lineTo(e,0),a.lineTo(e,d),a.lineTo(b,d),
a.lineTo(b,p+c),a.lineTo(0,p+c),a.lineTo(0,p),a.lineTo(b,p),a.lineTo(b,f+c),a.lineTo(0,f+c),a.lineTo(0,f),a.lineTo(b,f),a.close());a.end()};mxCellRenderer.registerShape("component",H);mxUtils.extend(Z,mxRectangleShape);Z.prototype.paintForeground=function(a,c,b,e,d){var k=e/2,g=d/2,f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(c+k,b),new mxPoint(c+e,b+g),new mxPoint(c+k,b+d),new mxPoint(c,b+g)],this.isRounded,f,!0);a.stroke();
mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",Z);mxUtils.extend(fa,mxDoubleEllipse);fa.prototype.outerStroke=!0;fa.prototype.paintVertexShape=function(a,c,b,e,d){var k=Math.min(4,Math.min(e/5,d/5));0<e&&0<d&&(a.ellipse(c+k,b+k,e-2*k,d-2*k),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,e,d),a.stroke())};mxCellRenderer.registerShape("endState",fa);mxUtils.extend(ma,fa);ma.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",
-ma);mxUtils.extend(M,mxArrowConnector);M.prototype.defaultWidth=4;M.prototype.isOpenEnded=function(){return!0};M.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};M.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",M);mxUtils.extend(ga,mxArrowConnector);ga.prototype.defaultWidth=10;ga.prototype.defaultArrowWidth=20;ga.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+
+ma);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Q);mxUtils.extend(ga,mxArrowConnector);ga.prototype.defaultWidth=10;ga.prototype.defaultArrowWidth=20;ga.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+
mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ga.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ga.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ga);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,
c,b,e,d){c=Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,d),new mxPoint(0,c),new mxPoint(e,0),new mxPoint(e,d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(U,mxRectangleShape);U.prototype.dx=20;U.prototype.dy=20;U.prototype.isHtmlAllowed=function(){return!1};U.prototype.paintForeground=function(a,c,b,e,d){mxRectangleShape.prototype.paintForeground.apply(this,
arguments);var k=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,k=Math.max(k,Math.min(e*g,d*g));g=Math.max(k,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));k=Math.max(k,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+k);a.lineTo(c+e,b+k);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+d);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",
@@ -2580,13 +2584,13 @@ U);mxUtils.extend(da,mxActor);da.prototype.dx=20;da.prototype.dy=20;da.prototype
b),new mxPoint(c,d),new mxPoint(0,d)],this.isRounded,k,!0);a.end()};mxCellRenderer.registerShape("corner",da);mxUtils.extend(na,mxActor);na.prototype.redrawPath=function(a,c,b,e,d){a.moveTo(0,0);a.lineTo(0,d);a.end();a.moveTo(e,0);a.lineTo(e,d);a.end();a.moveTo(0,d/2);a.lineTo(e,d/2);a.end()};mxCellRenderer.registerShape("crossbar",na);mxUtils.extend(R,mxActor);R.prototype.dx=20;R.prototype.dy=20;R.prototype.redrawPath=function(a,c,b,e,d){c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"dx",this.dx))));b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var k=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,b),new mxPoint((e+c)/2,b),new mxPoint((e+c)/2,d),new mxPoint((e-c)/2,d),new mxPoint((e-c)/2,b),new mxPoint(0,b)],this.isRounded,k,!0);a.end()};mxCellRenderer.registerShape("tee",R);mxUtils.extend(ba,
mxActor);ba.prototype.arrowWidth=.3;ba.prototype.arrowSize=.2;ba.prototype.redrawPath=function(a,c,b,e,d){var k=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(d-k)/2;var k=b+k,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(e-c,b),new mxPoint(e-c,0),new mxPoint(e,d/2),new mxPoint(e-
-c,d),new mxPoint(e-c,k),new mxPoint(0,k)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ba);mxUtils.extend(N,mxActor);N.prototype.redrawPath=function(a,c,b,e,d){var k=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth))));c=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize))));b=(d-k)/2;var k=b+k,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;this.addPoints(a,[new mxPoint(0,d/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(e-c,b),new mxPoint(e-c,0),new mxPoint(e,d/2),new mxPoint(e-c,d),new mxPoint(e-c,k),new mxPoint(c,k),new mxPoint(c,d)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",N);mxUtils.extend(J,mxActor);J.prototype.size=.1;J.prototype.redrawPath=function(a,c,b,e,d){c=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(e,0);a.quadTo(e-2*c,d/2,
-e,d);a.lineTo(c,d);a.quadTo(c-2*c,d/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",J);mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(a,c,b,e,d){a.moveTo(0,0);a.quadTo(e,0,e,d/2);a.quadTo(e,d,0,d);a.close();a.end()};mxCellRenderer.registerShape("or",ja);mxUtils.extend(O,mxActor);O.prototype.redrawPath=function(a,c,b,e,d){a.moveTo(0,0);a.quadTo(e,0,e,d/2);a.quadTo(e,d,0,d);a.quadTo(e/2,d/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",O);mxUtils.extend(X,
+c,d),new mxPoint(e-c,k),new mxPoint(0,k)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ba);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,b,e,d){var k=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth))));c=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize))));b=(d-k)/2;var k=b+k,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;this.addPoints(a,[new mxPoint(0,d/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(e-c,b),new mxPoint(e-c,0),new mxPoint(e,d/2),new mxPoint(e-c,d),new mxPoint(e-c,k),new mxPoint(c,k),new mxPoint(c,d)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",M);mxUtils.extend(J,mxActor);J.prototype.size=.1;J.prototype.redrawPath=function(a,c,b,e,d){c=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(e,0);a.quadTo(e-2*c,d/2,
+e,d);a.lineTo(c,d);a.quadTo(c-2*c,d/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",J);mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(a,c,b,e,d){a.moveTo(0,0);a.quadTo(e,0,e,d/2);a.quadTo(e,d,0,d);a.close();a.end()};mxCellRenderer.registerShape("or",ja);mxUtils.extend(N,mxActor);N.prototype.redrawPath=function(a,c,b,e,d){a.moveTo(0,0);a.quadTo(e,0,e,d/2);a.quadTo(e,d,0,d);a.quadTo(e/2,d/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",N);mxUtils.extend(X,
mxActor);X.prototype.size=20;X.prototype.isRoundable=function(){return!0};X.prototype.redrawPath=function(a,c,b,e,d){c=Math.min(e/2,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(e-c,0),new mxPoint(e,.8*c),new mxPoint(e,d),new mxPoint(0,d),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",X);mxUtils.extend(ha,
mxActor);ha.prototype.size=.375;ha.prototype.isRoundable=function(){return!0};ha.prototype.redrawPath=function(a,c,b,e,d){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,d-c),new mxPoint(e/2,d),new mxPoint(0,d-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",ha);mxUtils.extend(la,
-mxEllipse);la.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+e/2,b+d);a.lineTo(c+e,b+d);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",la);mxUtils.extend(L,mxEllipse);L.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+d/2);a.lineTo(c+e,b+d/2);a.end();a.stroke();a.begin();a.moveTo(c+e/2,b);a.lineTo(c+e/2,b+d);a.end();
-a.stroke()};mxCellRenderer.registerShape("orEllipse",L);mxUtils.extend(oa,mxEllipse);oa.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*e,b+.145*d);a.lineTo(c+.855*e,b+.855*d);a.end();a.stroke();a.begin();a.moveTo(c+.855*e,b+.145*d);a.lineTo(c+.145*e,b+.855*d);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",oa);mxUtils.extend(ea,mxRhombus);ea.prototype.paintVertexShape=function(a,c,b,
+mxEllipse);la.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+e/2,b+d);a.lineTo(c+e,b+d);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",la);mxUtils.extend(K,mxEllipse);K.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+d/2);a.lineTo(c+e,b+d/2);a.end();a.stroke();a.begin();a.moveTo(c+e/2,b);a.lineTo(c+e/2,b+d);a.end();
+a.stroke()};mxCellRenderer.registerShape("orEllipse",K);mxUtils.extend(oa,mxEllipse);oa.prototype.paintVertexShape=function(a,c,b,e,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*e,b+.145*d);a.lineTo(c+.855*e,b+.855*d);a.end();a.stroke();a.begin();a.moveTo(c+.855*e,b+.145*d);a.lineTo(c+.145*e,b+.855*d);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",oa);mxUtils.extend(ea,mxRhombus);ea.prototype.paintVertexShape=function(a,c,b,
e,d){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+d/2);a.lineTo(c+e,b+d/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",ea);mxUtils.extend(ia,mxEllipse);ia.prototype.paintVertexShape=function(a,c,b,e,d){a.begin();a.moveTo(c,b);a.lineTo(c+e,b);a.lineTo(c+e/2,b+d/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+d);a.lineTo(c+e,b+d);a.lineTo(c+e/2,b+d/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ia);mxUtils.extend(Aa,
mxEllipse);Aa.prototype.paintVertexShape=function(a,c,b,e,d){var k=b+d-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+d);a.moveTo(c,k);a.lineTo(c+10,k-5);a.moveTo(c,k);a.lineTo(c+10,k+5);a.moveTo(c,k);a.lineTo(c+e,k);a.moveTo(c+e,b);a.lineTo(c+e,b+d);a.moveTo(c+e,k);a.lineTo(c+e-10,k-5);a.moveTo(c+e,k);a.lineTo(c+e-10,k+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Aa);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,c,b,e,d){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c,b,e,d),a.fill(),a.begin(),a.moveTo(c,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+e,b):a.moveTo(c+e,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+e,b+d):a.moveTo(c+e,b+d),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+d):a.moveTo(c,b+d),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",Ba);mxUtils.extend(za,
@@ -2630,7 +2634,7 @@ mxUtils.getValue(this.state.style,"position2",v.prototype.position2)));return ne
"dy",R.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))})]},singleArrow:va(1),doubleArrow:va(.5),folder:function(a){return[Y(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",q.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"tabHeight",q.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",q.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",q.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))})]},document:function(a){return[Y(a,
["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))})]},tape:function(a){return[Y(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",z.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=
-Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[Y(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ha.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))})]},step:Ja(t.prototype.size,!0,null,!0,t.prototype.fixedSize),hexagon:Ja(E.prototype.size,!0,.5,!0),curlyBracket:Ja(k.prototype.size,!1),display:Ja(ta.prototype.size,
+Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[Y(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ha.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))})]},step:Ja(t.prototype.size,!0,null,!0,t.prototype.fixedSize),hexagon:Ja(D.prototype.size,!0,.5,!0),curlyBracket:Ja(k.prototype.size,!1),display:Ja(ta.prototype.size,
!1),cube:Na(1,a.prototype.size,!1),card:Na(.5,u.prototype.size,!0),loopLimit:Na(.5,X.prototype.size,!0),trapezoid:Oa(.5),parallelogram:Oa(1)};Graph.createHandle=Y;Graph.handleFactory=Ga;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Ga[a];null==a&&null!=this.state.shape&&
this.state.shape.isRoundable()&&(a=Ga[mxConstants.SHAPE_RECTANGLE]);if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=Ga[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ka=new mxPoint(1,0),La=new mxPoint(1,
0),va=mxUtils.toRadians(-30),Ka=mxUtils.getRotatedPoint(Ka,Math.cos(va),Math.sin(va)),va=mxUtils.toRadians(-150),La=mxUtils.getRotatedPoint(La,Math.cos(va),Math.sin(va));mxEdgeStyle.IsometricConnector=function(a,c,b,e,d){var k=a.view;e=null!=e&&0<e.length?e[0]:null;var g=a.absolutePoints,f=g[0],g=g[g.length-1];null!=e&&(e=k.transformControlPoint(a,e));null==f&&null!=c&&(f=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var p=Ka.x,n=Ka.y,
@@ -2650,7 +2654,7 @@ Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(n
q.prototype.getConstraints=function(a,c,b){a=[];var e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,e,d)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+e),d))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-e,d)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-e),d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c,.25*(b-d)+d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b-d)+d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(b-d)+d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(b-d)+d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)+d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(b-d)+d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};U.prototype.constraints=mxRectangleShape.prototype.constraints;J.prototype.constraints=mxRectangleShape.prototype.constraints;la.prototype.constraints=mxEllipse.prototype.constraints;L.prototype.constraints=mxEllipse.prototype.constraints;
+0),!1,null,0,.75*(b-d)+d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};U.prototype.constraints=mxRectangleShape.prototype.constraints;J.prototype.constraints=mxRectangleShape.prototype.constraints;la.prototype.constraints=mxEllipse.prototype.constraints;K.prototype.constraints=mxEllipse.prototype.constraints;
oa.prototype.constraints=mxEllipse.prototype.constraints;za.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.constraints=mxRectangleShape.prototype.constraints;ta.prototype.getConstraints=function(a,c,b){a=[];var e=Math.min(c,b/2),d=Math.min(c-e,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c-e),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-e,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c-e),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));return a};X.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=
mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
@@ -2660,7 +2664,7 @@ mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxC
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,
1),!1)];z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];t.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),
!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
-.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=
+.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];O.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=
[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,
.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,
.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,
@@ -2672,12 +2676,12 @@ mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxC
0),!1,null,e,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*e,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));return a};na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,
1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ba.prototype.getConstraints=function(a,c,b){a=[];var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",this.arrowSize)))),e=(b-e)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),b-e));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,b-e));return a};N.prototype.getConstraints=function(a,c,b){a=[];var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth)))),d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize)))),e=(b-e)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,e));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,b-e));return a};M.prototype.getConstraints=function(a,c,b){a=[];var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth)))),d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize)))),e=(b-e)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,e));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b-e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));return a};ka.prototype.getConstraints=function(a,c,b){a=[];var e=Math.min(b,c),d=Math.max(0,Math.min(e,e*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=(b-d)/2,k=e+d,g=(c-d)/2,d=g+d;a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,g,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b-.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));a.push(new mxConnectionConstraint(new mxPoint(.5,
1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b-.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,k));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,k));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(c+d),k));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,k));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,k));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,k));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));return a};F.prototype.constraints=
-null;ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];O.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,
+null;ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,
.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];aa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];W.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();var b=d.getDeletableCells(d.getSelectionCells());if(null!=b&&0<b.length){var f=d.selectParentAfterDelete?d.model.getParents(b):null;d.removeCells(b,a);if(null!=f){a=[];for(b=0;b<f.length;b++)d.model.contains(f[b])&&(d.model.isVertex(f[b])||d.model.isEdge(f[b]))&&a.push(f[b]);d.setSelectionCells(a)}}}var b=this.editorUi,f=b.editor,d=f.graph,l=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",
function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var d=mxUtils.parseXml(a);f.graph.setSelectionCells(f.graph.importGraphModel(d.documentElement))}catch(c){mxUtils.alert(mxResources.get("invalidOrMissingFile")+
@@ -2820,8 +2824,9 @@ enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{v
type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"north",dispName:"North"},{val:"east",dispName:"East"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Rotate Constraint",type:"bool",defVal:!1},{name:"connectable",dispName:"Connectable",type:"bool",defVal:!0},{name:"allowArrows",dispName:"Allow Arrows",type:"bool",defVal:!0},{name:"snapToPoint",dispName:"Snap to Point",type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",
defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",dispName:"Callout"},{val:"parallelogramPerimeter",
dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"jiggle",dispName:"Jiggle",type:"float",min:0,defVal:1.5,isVisible:function(a){return"1"==mxUtils.getValue(a.style,"comic","0")}},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"container",dispName:"Container",type:"bool",defVal:!1},{name:"recursiveResize",
-dispName:"Resize Children",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",
-dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",defVal:!1},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(a,c){return 0<a.vertices.length&&c.editorUi.editor.graph.isContainer(a.vertices[0])}}];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
+dispName:"Resize Children",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"movableLabel",dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(a,c){var b=0<a.vertices.length?c.editorUi.editor.graph.getCellGeometry(a.vertices[0]):null;return null!=b&&!b.relative}},
+{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",
+defVal:!1},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(a,c){return 0<a.vertices.length&&c.editorUi.editor.graph.isContainer(a.vertices[0])}}];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
Editor.fastCompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.deflateRaw(a,{to:"string"})};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(a,{to:"string"})};Editor.extractGraphModel=function(a,c){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),e=[];if(null!=b&&0<b.length)for(var d=0;d<b.length;d++)if("mxgraph"==b[d].getAttribute("class")){e.push(b[d]);break}0<e.length&&
(b=e[0].getAttribute("data-mxgraph"),null!=b?(e=JSON.parse(b),null!=e&&null!=e.xml&&(e=mxUtils.parseXml(e.xml),a=e.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(b=mxUtils.getTextContent(e[0]),b=Graph.decompress(b),0<b.length&&(e=mxUtils.parseXml(b),a=e.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(b=a.getAttribute("content"),null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),
null!=b&&0<b.length)a=mxUtils.parseXml(b).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||c||(e=null,"diagram"==a.nodeName?e=a:"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),0<b.length&&(e=b[Math.max(0,Math.min(b.length-1,urlParams.page||0))])),null!=e&&(a=Editor.parseDiagramNode(e)));null==a||"mxGraphModel"==a.nodeName||c&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a){var c=mxUtils.trim(mxUtils.getTextContent(a)),b=null;0<
@@ -2842,7 +2847,7 @@ Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this
b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),e=0;e<b.length;e++)this.graph.addExtFont(b[e].name,
b[e].url)}catch(I){console.log("ExtFonts format error: "+I.message)}}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",
JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var e=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});c.setAttribute("extFonts",e.join("|"))}return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=
-unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(Q){}return!1};Editor.prototype.extractGraphModel=function(a,c){return Editor.extractGraphModel.apply(this,arguments)};var f=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=
+unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(P){}return!1};Editor.prototype.extractGraphModel=function(a,c){return Editor.extractGraphModel.apply(this,arguments)};var f=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=
null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();f.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;
this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(a,c){a=null!=a?a:DRAW_MATH_URL+"/MathJax.js?config=TeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c||
{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],"HTML-CSS":{imageFont:null},TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==
@@ -2856,7 +2861,7 @@ function(a,c,b,e){null==e&&(e=this.createImageUrlConverter());var d=0,k=b||{};b=
c(a)};Editor.prototype.base64Encode=function(a){for(var c="",b=0,e=a.length,d,k,g;b<e;){d=a.charCodeAt(b++)&255;if(b==e){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4);c+="==";break}k=a.charCodeAt(b++);if(b==e){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<
4|(k&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(k&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};
Editor.prototype.loadUrl=function(a,c,b,e,d,k){try{var g=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);d=null!=d?d:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var e=a.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),
-d=0;d<a.length;d++)e[d]=String.fromCharCode(a[d]);e=e.join("")}k=null!=k?k:"data:image/png;base64,";e=k+this.base64Encode(e)}c(e)}}else null!=b&&b({code:App.ERROR_UNKNOWN},a)}),function(){null!=b&&b({code:App.ERROR_UNKNOWN})},g,this.timeout,function(){d&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(P){null!=b&&b(P)}};Editor.prototype.loadFonts=function(a){if(null!=this.fontCss&&null==this.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$",
+d=0;d<a.length;d++)e[d]=String.fromCharCode(a[d]);e=e.join("")}k=null!=k?k:"data:image/png;base64,";e=k+this.base64Encode(e)}c(e)}}else null!=b&&b({code:App.ERROR_UNKNOWN},a)}),function(){null!=b&&b({code:App.ERROR_UNKNOWN})},g,this.timeout,function(){d&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(O){null!=b&&b(O)}};Editor.prototype.loadFonts=function(a){if(null!=this.fontCss&&null==this.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$",
"g"),"")},b=this.fontCss.split("url("),e=0,d={},k=mxUtils.bind(this,function(){if(0==e){for(var k=[b[0]],g=1;g<b.length;g++){var f=b[g].indexOf(")");k.push('url("');k.push(d[c(b[g].substring(0,f))]);k.push('"'+b[g].substring(f))}this.resolvedFontCss=k.join("");a()}});if(0<b.length)for(var g=1;g<b.length;g++){var f=b[g].indexOf(")"),n=null,p=b[g].indexOf("format(",f);0<p&&(n=c(b[g].substring(p+7,b[g].indexOf(")",p))));mxUtils.bind(this,function(a){if(null==d[a]){d[a]=a;e++;var c="application/x-font-ttf";
if("svg"==n||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==n||"embedded-opentype"==n||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==n||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==n||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==n||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==n||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&
(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){d[a]=c;e--;k()}),mxUtils.bind(this,function(a){e--;k()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[g].substring(0,f)),n)}}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};Editor.prototype.addFontCss=
@@ -2908,10 +2913,10 @@ p.enumList;for(v=0;v<m.length;v++)if(A=m[v],A.val==b){B.innerHTML=mxUtils.htmlEn
function(){var a=mxUtils.htmlEntities(k.value);e(c,a,p)});k.focus();mxEvent.addListener(k,"blur",function(){a.removeChild(k)})}))}else"dynamicArr"==l?B.appendChild(g(c,b,p.subType,p.subDefVal,p.countProperty,y,v)):"staticArr"==l?B.appendChild(f(c,b,p.subType,p.subDefVal,p.size,y,v)):(B.innerHTML=b,mxEvent.addListener(B,"click",mxUtils.bind(x,function(){function k(){var a=g.value,a=0==a.length&&"string"!=l?0:a;p.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",l="string"):(a=parseFloat(a),
a=isNaN(a)?0:a));null!=p.min&&a<p.min?a=p.min:null!=p.max&&a>p.max&&(a=p.max);a=mxUtils.htmlEntities(("int"==l?parseInt(a):a)+"");e(c,a,p)}var g=document.createElement("input");d(B,g,!0);g.value=b;g.className="gePropEditor";"int"!=l&&"float"!=l||p.allowAuto||(g.type="number",g.step="int"==l?"1":"any",null!=p.min&&(g.min=parseFloat(p.min)),null!=p.max&&(g.max=parseFloat(p.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&k()});g.focus();mxEvent.addListener(g,"blur",
function(){k()})})));p.isDeletable&&(v=mxUtils.button("-",mxUtils.bind(x,function(a){e(c,"",p,p.index);mxEvent.consume(a)})),v.style.height="16px",v.style.width="25px",v.style["float"]="right",v.className="geColorBtn",B.appendChild(v));y.appendChild(B);return y}var x=this,t=this.editorUi.editor.graph,v=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.style.whiteSpace="nowrap";l.style.width="100%";var A=document.createElement("tr");A.className="gePropHeader";
-var y=document.createElement("th");y.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;y.appendChild(B);mxUtils.write(y,mxResources.get("property"));A.style.cursor="pointer";var m=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(x.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;b="none";for(var e=a.childNodes.length-1;0<=e;e--)try{var d=a.childNodes[e],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(L){}}else B.src=
-Sidebar.prototype.expandedImage,b="";for(e=0;e<c.length;e++)c[e].style.display=b};mxEvent.addListener(A,"click",function(){x.editorUi.propertiesCollapsed=!x.editorUi.propertiesCollapsed;m()});A.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value");A.appendChild(y);l.appendChild(A);var q=!1,D=!1,E;for(E in c)if(A=c[E],"function"!=typeof A.isVisible||A.isVisible(b,this)){var u=null!=b.style[E]?mxUtils.htmlEntities(b.style[E]+""):A.defVal;if("separator"==
-A.type)D=!D;else{if("staticArr"==A.type)A.size=parseInt(b.style[A.sizeProperty]||c[A.sizeProperty].defVal)||0;else if(null!=A.dependentProps){for(var K=A.dependentProps,z=[],C=[],y=0;y<K.length;y++){var J=b.style[K[y]];C.push(c[K[y]].subDefVal);z.push(null!=J?J.split(","):[])}A.dependentPropsDefVal=C;A.dependentPropsVals=z}l.appendChild(p(E,u,A,q,D));q=!q}}for(y=0;y<v.length;y++)for(A=v[y],c=A.parentRow,b=0;b<A.values.length;b++)E=p(A.name,A.values[b],{type:A.type,parentRow:A.parentRow,isDeletable:A.isDeletable,
-index:b,defVal:A.defVal,countProperty:A.countProperty,size:A.size},0==b%2,A.flipBkg),c.parentNode.insertBefore(E,c.nextSibling),c=E;a.appendChild(l);m();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){e.getModel().beginUpdate();try{var b=e.getSelectionCells();for(c=0;c<b.length;c++){for(var d=e.getModel().getStyle(b[c]),g=0;g<k.length;g++)d=mxUtils.removeStylename(d,k[g]);var f=e.getModel().isVertex(b[c])?e.defaultVertexStyle:
+var y=document.createElement("th");y.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;y.appendChild(B);mxUtils.write(y,mxResources.get("property"));A.style.cursor="pointer";var m=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(x.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;b="none";for(var e=a.childNodes.length-1;0<=e;e--)try{var d=a.childNodes[e],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(K){}}else B.src=
+Sidebar.prototype.expandedImage,b="";for(e=0;e<c.length;e++)c[e].style.display=b};mxEvent.addListener(A,"click",function(){x.editorUi.propertiesCollapsed=!x.editorUi.propertiesCollapsed;m()});A.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value");A.appendChild(y);l.appendChild(A);var E=!1,q=!1,D;for(D in c)if(A=c[D],"function"!=typeof A.isVisible||A.isVisible(b,this)){var u=null!=b.style[D]?mxUtils.htmlEntities(b.style[D]+""):A.defVal;if("separator"==
+A.type)q=!q;else{if("staticArr"==A.type)A.size=parseInt(b.style[A.sizeProperty]||c[A.sizeProperty].defVal)||0;else if(null!=A.dependentProps){for(var L=A.dependentProps,z=[],C=[],y=0;y<L.length;y++){var J=b.style[L[y]];C.push(c[L[y]].subDefVal);z.push(null!=J?J.split(","):[])}A.dependentPropsDefVal=C;A.dependentPropsVals=z}l.appendChild(p(D,u,A,E,q));E=!E}}for(y=0;y<v.length;y++)for(A=v[y],c=A.parentRow,b=0;b<A.values.length;b++)D=p(A.name,A.values[b],{type:A.type,parentRow:A.parentRow,isDeletable:A.isDeletable,
+index:b,defVal:A.defVal,countProperty:A.countProperty,size:A.size},0==b%2,A.flipBkg),c.parentNode.insertBefore(D,c.nextSibling),c=D;a.appendChild(l);m();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){e.getModel().beginUpdate();try{var b=e.getSelectionCells();for(c=0;c<b.length;c++){for(var d=e.getModel().getStyle(b[c]),g=0;g<k.length;g++)d=mxUtils.removeStylename(d,k[g]);var f=e.getModel().isVertex(b[c])?e.defaultVertexStyle:
e.defaultEdgeStyle;null!=a?(d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(f,mxConstants.STYLE_GRADIENTCOLOR,null)),d=""==a.fill?mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(f,mxConstants.STYLE_FILLCOLOR,null)),d=""==a.stroke?mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(f,mxConstants.STYLE_STROKECOLOR,
null)),e.getModel().isVertex(b[c])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(f,mxConstants.STYLE_FONTCOLOR,null)))):(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(f,mxConstants.STYLE_FILLCOLOR,"#ffffff")),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(f,mxConstants.STYLE_STROKECOLOR,"#000000")),d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(f,mxConstants.STYLE_GRADIENTCOLOR,null)),e.getModel().isVertex(b[c])&&
(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(f,mxConstants.STYLE_FONTCOLOR,null))));e.getModel().setStyle(b[c],d)}}finally{e.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":
@@ -2929,16 +2934,16 @@ a.button,c.relatedTarget=a.relatedTarget}catch(S){}}k.apply(this,arguments);wind
this.layoutManager.getLayout=function(a){var c=this.graph.getCellStyle(a);if(null!=c){if("rack"==c.childLayout){var b=new mxStackLayout(this.graph,!1);b.gridSize=null!=c.rackUnitSize?parseFloat(c.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;b.fill=!0;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.allowGaps=c.allowGaps||0;b.resizeParent=!1;return b}if("undefined"!==typeof mxTableLayout&&"tableLayout"==
c.childLayout)return b=new mxTableLayout(this.graph),b.rows=c.tableRows||2,b.columns=c.tableColumns||2,b.colPercentages=c.colPercentages,b.rowPercentages=c.rowPercentages,b.equalColumns="1"==mxUtils.getValue(c,"equalColumns",b.colPercentages?"0":"1"),b.equalRows="1"==mxUtils.getValue(c,"equalRows",b.rowPercentages?"0":"1"),b.resizeParent="1"==mxUtils.getValue(c,"resizeParent","1"),b.border=c.tableBorder||b.border,b.marginLeft=c.marginLeft||0,b.marginRight=c.marginRight||0,b.marginTop=c.marginTop||
0,b.marginBottom=c.marginBottom||0,b.autoAddCol="1"==mxUtils.getValue(c,"autoAddCol","0"),b.autoAddRow="1"==mxUtils.getValue(c,"autoAddRow",b.autoAddCol?"0":"1"),b.colWidths=c.colWidths||"100",b.rowHeights=c.rowHeights||"50",b}return e.apply(this,arguments)};this.updateGlobalUrlVariables()};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));
-if(null!=a)for(var c in a)this.globalVars[c]=a[c]}catch(K){null!=window.console&&console.log("Error in vars URL parameter: "+K)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var x=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=x.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[a]);return c};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=
+if(null!=a)for(var c in a)this.globalVars[c]=a[c]}catch(L){null!=window.console&&console.log("Error in vars URL parameter: "+L)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var x=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=x.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[a]);return c};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=
this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var n=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,c,b,e,d,k,g,f,x,t,v){var p=null;null!=this.themes&&"darkTheme"==this.defaultThemeName&&(p=this.stylesheet,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=n.apply(this,arguments);if(v&&null!=this.extFonts&&0<this.extFonts.length){var l=
-A.ownerDocument,y=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"style"):l.createElement("style");null!=l.setAttributeNS?y.setAttributeNS("type","text/css"):y.setAttribute("type","text/css");for(var B="",m="",q=0;q<this.extFonts.length;q++){var D=this.extFonts[q].name,G=this.extFonts[q].url;0==G.indexOf(Editor.GOOGLE_FONTS)?B+="@import url("+G+");\n":m+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+G+'");\n}\n'}y.appendChild(l.createTextNode(B+m));A.getElementsByTagName("defs")[0].appendChild(y)}null!=
+A.ownerDocument,y=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"style"):l.createElement("style");null!=l.setAttributeNS?y.setAttributeNS("type","text/css"):y.setAttribute("type","text/css");for(var B="",m="",E=0;E<this.extFonts.length;E++){var q=this.extFonts[E].name,G=this.extFonts[E].url;0==G.indexOf(Editor.GOOGLE_FONTS)?B+="@import url("+G+");\n":m+='@font-face {\nfont-family: "'+q+'";\nsrc: url("'+G+'");\n}\n'}y.appendChild(l.createTextNode(B+m));A.getElementsByTagName("defs")[0].appendChild(y)}null!=
p&&(this.stylesheet=p,this.refresh());return A};var g=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=g.apply(this,arguments);if(this.mathEnabled){this.container.getBoundingClientRect();var c=a.drawText;a.drawText=function(a,b){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var e=a.text.getContentNode();if(null!=e){e=e.cloneNode(!0);if(e.getElementsByTagNameNS)for(var d=
e.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<d.length;)d[0].parentNode.removeChild(d[0]);null!=e.innerHTML&&(d=a.text.value,a.text.value=e.innerHTML,c.apply(this,arguments),a.text.value=d)}}else c.apply(this,arguments)}}return a};var A=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){A.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var v=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){v.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++){var b=a.actions[c];if(null!=b.open)if(this.isCustomLink(b.open)){if(!this.customLinkClicked(b.open))return}else this.openLink(b.open)}this.model.beginUpdate();
try{for(c=0;c<a.actions.length;c++)b=a.actions[c],null!=b.toggle&&this.toggleCells(this.getCellsForAction(b.toggle,!0)),null!=b.show&&this.setCellsVisible(this.getCellsForAction(b.show,!0),!0),null!=b.hide&&this.setCellsVisible(this.getCellsForAction(b.hide,!0),!1)}finally{this.model.endUpdate()}for(c=0;c<a.actions.length;c++){var b=a.actions[c],e=[];null!=b.select&&this.isEnabled()&&(e=this.getCellsForAction(b.select),this.setSelectionCells(e));null!=b.highlight&&(e=this.getCellsForAction(b.highlight),
this.highlightCells(e,b.highlight.color,b.highlight.duration,b.highlight.opacity));null!=b.scroll&&(e=this.getCellsForAction(b.scroll));0<e.length&&this.scrollCellToVisible(e[0])}}};Graph.prototype.updateCustomLinksForCell=function(a,c){var b=this.getLinkForCell(c);null!=b&&"data:action/json,"==b.substring(0,17)&&this.setLinkForCell(c,this.updateCustomLink(a,b));if(this.isHtmlLabel(c)){var e=document.createElement("div");e.innerHTML=this.getLabel(c);for(var d=e.getElementsByTagName("a"),k=!1,g=0;g<
-d.length;g++)b=d[g].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(d[g].setAttribute("href",this.updateCustomLink(a,b)),k=!0);k&&this.labelChanged(c,e.innerHTML)}};Graph.prototype.updateCustomLink=function(a,c){if("data:action/json,"==c.substring(0,17))try{var b=JSON.parse(c.substring(17));null!=b.actions&&(this.updateCustomLinkActions(a,b.actions),c="data:action/json,"+JSON.stringify(b))}catch(Q){}return c};Graph.prototype.updateCustomLinkActions=function(a,c){for(var b=0;b<
+d.length;g++)b=d[g].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(d[g].setAttribute("href",this.updateCustomLink(a,b)),k=!0);k&&this.labelChanged(c,e.innerHTML)}};Graph.prototype.updateCustomLink=function(a,c){if("data:action/json,"==c.substring(0,17))try{var b=JSON.parse(c.substring(17));null!=b.actions&&(this.updateCustomLinkActions(a,b.actions),c="data:action/json,"+JSON.stringify(b))}catch(P){}return c};Graph.prototype.updateCustomLinkActions=function(a,c){for(var b=0;b<
c.length;b++){var e=c[b];this.updateCustomLinkAction(a,e.toggle);this.updateCustomLinkAction(a,e.show);this.updateCustomLinkAction(a,e.hide);this.updateCustomLinkAction(a,e.select);this.updateCustomLinkAction(a,e.highlight);this.updateCustomLinkAction(a,e.scroll)}};Graph.prototype.updateCustomLinkAction=function(a,c){if(null!=c&&null!=c.cells){for(var b=[],e=0;e<c.cells.length;e++)if("*"==c.cells[e])b.push(c.cells[e]);else{var d=a[c.cells[e]];null!=d?""!=d&&b.push(d):b.push(c.cells[e])}c.cells=b}};
Graph.prototype.getCellsForAction=function(a,c){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,c))};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var e=this.getDefaultParent(),c=c.concat(this.model.filterDescendants(function(a){return a!=e},e));else{var d=this.model.getCell(a[b]);null!=d&&c.push(d)}return c};Graph.prototype.getCellsForTags=function(a,c,b,e){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());
b=null!=b?b:"tags";for(var k=0,g={},f=0;f<a.length;f++)0<a[f].length&&(g[a[f].toLowerCase()]=!0,k++);for(f=0;f<c.length;f++)if(e&&this.model.getParent(c[f])==this.model.root||this.model.isVertex(c[f])||this.model.isEdge(c[f])){var n=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",x=!1;if(0<n.length){if(n=n.toLowerCase().split(" "),n.length>=a.length){for(var p=x=0;p<n.length&&x<k;p++)null!=g[n[p]]&&x++;x=x==k}}else x=0==a.length;x&&d.push(c[f])}}return d};
@@ -2959,28 +2964,28 @@ STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PAT
[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",
STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=
function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var t=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,e,d,k,g,f,n,x){if(null!=b&&null==mxMarker.markers[b]){var p=this.getPackageForType(b);null!=p&&mxStencilRegistry.getStencil(p)}return t.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){A.value=Math.max(1,Math.min(f,Math.max(parseInt(A.value),parseInt(p.value))));p.value=
-Math.max(1,Math.min(f,Math.min(parseInt(A.value),parseInt(p.value))))}function e(c){function b(c,b,k){var g=c.useCssTransforms,f=c.currentTranslate,n=c.currentScale,x=c.view.translate,t=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var p=c.getGraphBounds(),v=0,l=0,A=ha.get(),y=1/c.pageScale,D=B.checked;if(D)var y=parseInt(O.value),q=parseInt(X.value),y=Math.min(A.height*q/(p.height/c.view.scale),
-A.width*y/(p.width/c.view.scale));else y=parseInt(m.value)/(100*c.pageScale),isNaN(y)&&(e=1/c.pageScale,m.value="100 %");A=mxRectangle.fromRectangle(A);A.width=Math.ceil(A.width*e);A.height=Math.ceil(A.height*e);y*=e;!D&&c.pageVisible?(p=c.getPageLayout(),v-=p.x*A.width,l-=p.y*A.height):D=!0;if(null==b){b=PrintDialog.createPrintPreview(c,y,A,0,v,l,D);b.pageSelector=!1;b.mathEnabled=!1;v=a.getCurrentFile();null!=v&&(b.title=v.getTitle());var E=b.writeHead;b.writeHead=function(b){E.apply(this,arguments);
+Math.max(1,Math.min(f,Math.min(parseInt(A.value),parseInt(p.value))))}function e(c){function b(c,b,k){var g=c.useCssTransforms,f=c.currentTranslate,n=c.currentScale,x=c.view.translate,t=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var v=c.getGraphBounds(),p=0,l=0,A=ha.get(),y=1/c.pageScale,q=B.checked;if(q)var y=parseInt(N.value),E=parseInt(X.value),y=Math.min(A.height*E/(v.height/c.view.scale),
+A.width*y/(v.width/c.view.scale));else y=parseInt(m.value)/(100*c.pageScale),isNaN(y)&&(e=1/c.pageScale,m.value="100 %");A=mxRectangle.fromRectangle(A);A.width=Math.ceil(A.width*e);A.height=Math.ceil(A.height*e);y*=e;!q&&c.pageVisible?(v=c.getPageLayout(),p-=v.x*A.width,l-=v.y*A.height):q=!0;if(null==b){b=PrintDialog.createPrintPreview(c,y,A,0,p,l,q);b.pageSelector=!1;b.mathEnabled=!1;p=a.getCurrentFile();null!=p&&(b.title=p.getTitle());var D=b.writeHead;b.writeHead=function(b){D.apply(this,arguments);
null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"));if(null!=c.extFonts)for(var e=0;e<c.extFonts.length;e++){var d=c.extFonts[e].name,k=c.extFonts[e].url;0==k.indexOf(Editor.GOOGLE_FONTS)?b.writeln('<link rel="stylesheet" href="'+k+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\n\tfont-family: "'+d+'";\n\tsrc: url("'+k+'");\n}'),b.writeln("</style>"))}};if("undefined"!==typeof MathJax){var G=
-b.renderPage;b.renderPage=function(c,b,e,d,k,g){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var n=G.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:n.className="geDisableMathJax";return n}}v=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(v=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());b.open(null,null,k,!0);null!=v&&(d.stylesheet=v,d.refresh())}else{A=
-c.background;if(null==A||""==A||A==mxConstants.NONE)A="#ffffff";b.backgroundColor=A;b.autoOrigin=D;b.appendGraph(c,y,v,l,k,!0);if(null!=c.extFonts&&null!=b.wnd)for(k=0;k<c.extFonts.length;k++)v=c.extFonts[k].name,l=c.extFonts[k].url,0==l.indexOf(Editor.GOOGLE_FONTS)?b.wnd.document.writeln('<link rel="stylesheet" href="'+l+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\n\tfont-family: "'+v+'";\n\tsrc: url("'+l+'");\n}'),
+b.renderPage;b.renderPage=function(c,b,e,d,k,g){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var n=G.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:n.className="geDisableMathJax";return n}}p=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(p=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());b.open(null,null,k,!0);null!=p&&(d.stylesheet=p,d.refresh())}else{A=
+c.background;if(null==A||""==A||A==mxConstants.NONE)A="#ffffff";b.backgroundColor=A;b.autoOrigin=q;b.appendGraph(c,y,p,l,k,!0);if(null!=c.extFonts&&null!=b.wnd)for(k=0;k<c.extFonts.length;k++)p=c.extFonts[k].name,l=c.extFonts[k].url,0==l.indexOf(Editor.GOOGLE_FONTS)?b.wnd.document.writeln('<link rel="stylesheet" href="'+l+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\n\tfont-family: "'+p+'";\n\tsrc: url("'+l+'");\n}'),
b.wnd.document.writeln("</style>"))}g&&(c.useCssTransforms=g,c.currentTranslate=f,c.currentScale=n,c.view.translate=x,c.view.scale=t);return b}var e=parseInt(la.value)/100;isNaN(e)&&(e=1,la.value="100 %");var e=.75*e,k=p.value,g=A.value,f=!t.checked,x=null;f&&(f=k==n&&g==n);if(!f&&null!=a.pages&&a.pages.length){var v=0,f=a.pages.length-1;t.checked||(v=parseInt(k)-1,f=parseInt(g)-1);for(var l=v;l<=f;l++){var y=a.pages[l],k=y==a.currentPage?d:null;if(null==k){var k=a.createTemporaryGraph(d.getStylesheet()),
-g=!0,v=!1,q=null,D=null;null==y.viewState&&null==y.root&&a.updatePageRoot(y);null!=y.viewState&&(g=y.viewState.pageVisible,v=y.viewState.mathEnabled,q=y.viewState.background,D=y.viewState.backgroundImage,k.extFonts=y.viewState.extFonts);k.background=q;k.backgroundImage=null!=D?new mxImage(D.src,D.width,D.height):null;k.pageVisible=g;k.mathEnabled=v;var E=k.getGlobalVariable;k.getGlobalVariable=function(c){return"page"==c?y.getName():"pagenumber"==c?l+1:"pagecount"==c?null!=a.pages?a.pages.length:
-1:E.apply(this,arguments)};document.body.appendChild(k.container);a.updatePageRoot(y);k.model.setRoot(y.root)}x=b(k,x,l!=f);k!=d&&k.container.parentNode.removeChild(k.container)}}else x=b(d);null==x?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(x.mathEnabled&&(f=x.wnd.document,f.writeln('<script type="text/x-mathjax-config">'),f.writeln("MathJax.Hub.Config({"),f.writeln("showMathMenu: false,"),f.writeln('messageStyle: "none",'),f.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),
+g=!0,v=!1,E=null,q=null;null==y.viewState&&null==y.root&&a.updatePageRoot(y);null!=y.viewState&&(g=y.viewState.pageVisible,v=y.viewState.mathEnabled,E=y.viewState.background,q=y.viewState.backgroundImage,k.extFonts=y.viewState.extFonts);k.background=E;k.backgroundImage=null!=q?new mxImage(q.src,q.width,q.height):null;k.pageVisible=g;k.mathEnabled=v;var D=k.getGlobalVariable;k.getGlobalVariable=function(c){return"page"==c?y.getName():"pagenumber"==c?l+1:"pagecount"==c?null!=a.pages?a.pages.length:
+1:D.apply(this,arguments)};document.body.appendChild(k.container);a.updatePageRoot(y);k.model.setRoot(y.root)}x=b(k,x,l!=f);k!=d&&k.container.parentNode.removeChild(k.container)}}else x=b(d);null==x?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(x.mathEnabled&&(f=x.wnd.document,f.writeln('<script type="text/x-mathjax-config">'),f.writeln("MathJax.Hub.Config({"),f.writeln("showMathMenu: false,"),f.writeln('messageStyle: "none",'),f.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),
f.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),f.writeln('"HTML-CSS": {'),f.writeln("imageFont: null"),f.writeln("},"),f.writeln("TeX: {"),f.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),f.writeln("},"),f.writeln("tex2jax: {"),f.writeln('\tignoreClass: "geDisableMathJax"'),f.writeln("},"),f.writeln("asciimath2jax: {"),f.writeln('\tignoreClass: "geDisableMathJax"'),f.writeln("}"),f.writeln("});"),c&&(f.writeln("MathJax.Hub.Queue(function () {"),
f.writeln("window.print();"),f.writeln("});")),f.writeln("\x3c/script>"),f.writeln('<script type="text/javascript" src="'+DRAW_MATH_URL+'/MathJax.js">\x3c/script>')),x.closeDocument(),!x.mathEnabled&&c&&PrintDialog.printPreview(x))}var d=a.editor.graph,k=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));k.appendChild(g);var f=1,n=1,x=document.createElement("div");x.style.cssText=
"border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","all");t.setAttribute("type","radio");t.setAttribute("name","pages-printdialog");x.appendChild(t);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));x.appendChild(g);mxUtils.br(x);var v=t.cloneNode(!0);t.setAttribute("checked","checked");v.setAttribute("value","range");x.appendChild(v);
g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");x.appendChild(g);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.style.width="50px";x.appendChild(p);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));x.appendChild(g);var A=p.cloneNode(!0);x.appendChild(A);mxEvent.addListener(p,"focus",function(){v.checked=!0});mxEvent.addListener(A,
"focus",function(){v.checked=!0});mxEvent.addListener(p,"change",b);mxEvent.addListener(A,"change",b);if(null!=a.pages&&(f=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==a.pages[g]){n=g+1;p.value=n;A.value=n;break}p.setAttribute("max",f);A.setAttribute("max",f);1<f&&k.appendChild(x);var l=document.createElement("div");l.style.marginBottom="10px";var y=document.createElement("input");y.style.marginRight="8px";y.setAttribute("value","adjust");y.setAttribute("type",
"radio");y.setAttribute("name","printZoom");l.appendChild(y);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));l.appendChild(g);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";m.setAttribute("value","100 %");m.style.width="50px";l.appendChild(m);mxEvent.addListener(m,"focus",function(){y.checked=!0});k.appendChild(l);var x=x.cloneNode(!1),B=y.cloneNode(!0);B.setAttribute("value","fit");y.setAttribute("checked","checked");g=document.createElement("div");
-g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(B);x.appendChild(g);l=document.createElement("table");l.style.display="inline-block";var q=document.createElement("tbody"),D=document.createElement("tr"),E=D.cloneNode(!0),u=document.createElement("td"),z=u.cloneNode(!0),C=u.cloneNode(!0),N=u.cloneNode(!0),J=u.cloneNode(!0),ja=u.cloneNode(!0);u.style.textAlign="right";N.style.textAlign="right";mxUtils.write(u,mxResources.get("fitTo"));var O=document.createElement("input");
-O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";z.appendChild(O);g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsAcross"));C.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var X=O.cloneNode(!0);J.appendChild(X);mxEvent.addListener(O,"focus",function(){B.checked=!0});mxEvent.addListener(X,"focus",function(){B.checked=!0});g=document.createElement("span");mxUtils.write(g,
-mxResources.get("fitToSheetsDown"));ja.appendChild(g);D.appendChild(u);D.appendChild(z);D.appendChild(C);E.appendChild(N);E.appendChild(J);E.appendChild(ja);q.appendChild(D);q.appendChild(E);l.appendChild(q);x.appendChild(l);k.appendChild(x);x=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));x.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ha=PageSetupDialog.addPageFormatPanel(g,
+g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(B);x.appendChild(g);l=document.createElement("table");l.style.display="inline-block";var E=document.createElement("tbody"),q=document.createElement("tr"),D=q.cloneNode(!0),u=document.createElement("td"),z=u.cloneNode(!0),C=u.cloneNode(!0),M=u.cloneNode(!0),J=u.cloneNode(!0),ja=u.cloneNode(!0);u.style.textAlign="right";M.style.textAlign="right";mxUtils.write(u,mxResources.get("fitTo"));var N=document.createElement("input");
+N.style.cssText="margin:0 8px 0 8px;";N.setAttribute("value","1");N.setAttribute("min","1");N.setAttribute("type","number");N.style.width="40px";z.appendChild(N);g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsAcross"));C.appendChild(g);mxUtils.write(M,mxResources.get("fitToBy"));var X=N.cloneNode(!0);J.appendChild(X);mxEvent.addListener(N,"focus",function(){B.checked=!0});mxEvent.addListener(X,"focus",function(){B.checked=!0});g=document.createElement("span");mxUtils.write(g,
+mxResources.get("fitToSheetsDown"));ja.appendChild(g);q.appendChild(u);q.appendChild(z);q.appendChild(C);D.appendChild(M);D.appendChild(J);D.appendChild(ja);E.appendChild(q);E.appendChild(D);l.appendChild(E);x.appendChild(l);k.appendChild(x);x=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));x.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ha=PageSetupDialog.addPageFormatPanel(g,
"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);x.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));x.appendChild(g);var la=document.createElement("input");la.style.cssText="margin:0 8px 0 8px;";la.setAttribute("value","100 %");la.style.width="60px";x.appendChild(la);k.appendChild(x);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";x=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
x.className="geBtn";a.editor.cancelFirst&&g.appendChild(x);a.isOffline()||(l=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),l.className="geBtn",g.appendChild(l));PrintDialog.previewEnabled&&(l=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();e(!1)}),l.className="geBtn",g.appendChild(l));l=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();e(!0)});l.className=
-"geBtn gePrimaryBtn";g.appendChild(l);a.editor.cancelFirst||g.appendChild(x);k.appendChild(g);this.container=k};var E=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)):(E.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))};
-Editor.prototype.useCanvasForExport=!1;try{var y=document.createElement("canvas"),D=new Image;D.onload=function(){try{y.getContext("2d").drawImage(D,0,0);var a=y.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};D.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(p){}})();
+"geBtn gePrimaryBtn";g.appendChild(l);a.editor.cancelFirst||g.appendChild(x);k.appendChild(g);this.container=k};var D=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)):(D.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))};
+Editor.prototype.useCanvasForExport=!1;try{var y=document.createElement("canvas"),E=new Image;E.onload=function(){try{y.getContext("2d").drawImage(E,0,0);var a=y.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};E.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(p){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,f,d){d.ui=a.ui;return f};a.afterDecode=function(a,f,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="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";"dark"==uiTheme&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost="https://www.draw.io";EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";
EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;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.logError=
function(a,b,d,f,n){if("1"==urlParams.dev)EditorUi.debug("logError",a,b,d,f,n);else if(EditorUi.enableLogging)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",e=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";
@@ -3027,7 +3032,7 @@ null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfi
l=g.getChildren(g.root),d=0;d<l.length;d++){var v=l[d];g.setVisible(v,a[v.id]||!1)}}catch(t){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<
this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,f,n,g,l,v,t,m,y){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!n),e=c+"."+a;if("xml"==a){var k='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,f,n,null,null,null,b);this.saveData(e,a,k,"text/xml")}else if("html"==a)k=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(e,a,k,"text/html");else if("svg"!=
a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?e=c+".png":"jpeg"==a&&(e=c+".jpg"),this.saveRequest(e,a,mxUtils.bind(this,function(c,b){try{var e=this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var d=this.createDownloadRequest(c,a,f,b,l,n,v,t,m,y);this.editor.graph.pageVisible=e;return d}catch(aa){this.handleError(aa)}}));else{var x=null,A=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(e,"svg",a,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(x)}))});if("svg"==a){var q=this.editor.graph.background;if(l||q==mxConstants.NONE)q=null;var E=this.editor.graph.getSvg(q,null,null,null,null,f);d&&this.editor.graph.addSvgShadow(E);this.convertImages(E,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();A('<?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'+
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(x)}))});if("svg"==a){var q=this.editor.graph.background;if(l||q==mxConstants.NONE)q=null;var D=this.editor.graph.getSvg(q,null,null,null,null,f);d&&this.editor.graph.addSvgShadow(D);this.convertImages(D,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();A('<?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 e=c+".svg",x=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();A(a)}),f)}}catch(F){this.handleError(F)}};EditorUi.prototype.createDownloadRequest=function(a,b,d,f,n,g,l,v,t,m){var c=this.editor.graph,e=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==g?!1:"xmlpng"!=b);var k="",x="";if(e.width*e.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};m=m?"1":"0";"pdf"==b&&0==g&&(x="&allPages=1");
if("xmlpng"==b&&(m="1",b="png",null!=this.pages&&null!=this.currentPage))for(g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){k="&from="+g;break}g=c.background;"png"==b&&n?g=mxConstants.NONE:n||null!=g&&g!=mxConstants.NONE||(g="#ffffff");n={globalVars:c.getExportVariables()};t&&(n.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});return new mxXmlRequest(EXPORT_URL,"format="+b+k+x+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+f+"&embedXml="+m+"&xml="+encodeURIComponent(d)+
(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(n))+(null!=l?"&scale="+l:"")+(null!=v?"&border="+v:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,e=mxUtils.bind(this,function(e){var d=null!=a.data?a.data:"";null!=e&&0<e.length&&(0<d.length&&(d+="\n"),d+=e);e=new LocalFile(this,"csv"!=a.format&&0<d.length?d:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):
@@ -3063,7 +3068,7 @@ null!=q.graphHandler.first&&(q.graphHandler.suspend(),null!=q.graphHandler.hint&
mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.graphHandler.first&&(q.graphHandler.resume(),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="visible"),f.style.backgroundColor="",f.style.cursor="",q.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(f,"dragover",mxUtils.bind(this,function(a){f.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect="copy";f.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();
a.preventDefault()})),mxEvent.addListener(f,"drop",mxUtils.bind(this,function(a){f.style.cursor="";f.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,g,n,l,t,x,p,v){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,l,t),c)],c[0].vertex=!0,z(c,new mxRectangle(0,0,l,t),a,mxEvent.isAltDown(a)?
null:x.substring(0,x.lastIndexOf(".")).replace(/_/g," ")),null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null);else{var y=!1,A=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var g=Editor.extractGraphModelFromPdf(c);null!=g&&0<g.length&&(d="text/xml",c=g)}if(null!=c&&"text/xml"==d)if(g=mxUtils.parseXml(c),"mxlibrary"==g.documentElement.nodeName)try{var n=JSON.parse(mxUtils.getTextContent(g.documentElement));k(n,f);b=b.concat(n);u(a);this.spinner.stop();y=
-!0}catch(N){}else if("mxfile"==g.documentElement.nodeName)try{for(var l=g.documentElement.getElementsByTagName("diagram"),n=0;n<l.length;n++){var t=this.stringToCells(Editor.getDiagramNodeXml(l[n])),x=this.editor.graph.getBoundingBoxFromGeometry(t);z(t,new mxRectangle(0,0,x.width,x.height),a)}y=!0}catch(N){null!=window.console&&console.log("error in drop handler:",N)}y||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),
+!0}catch(M){}else if("mxfile"==g.documentElement.nodeName)try{for(var l=g.documentElement.getElementsByTagName("diagram"),n=0;n<l.length;n++){var t=this.stringToCells(Editor.getDiagramNodeXml(l[n])),x=this.editor.graph.getBoundingBoxFromGeometry(t);z(t,new mxRectangle(0,0,x.width,x.height),a)}y=!0}catch(M){null!=window.console&&console.log("error in drop handler:",M)}y||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),
e=null)});null!=v&&null!=x&&(/(\.v(dx|sdx?))($|\?)/i.test(x)||/(\.vs(x|sx?))($|\?)/i.test(x))?this.importVisio(v,function(a){A(a,"text/xml")},null,x):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,x)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?A(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):
A(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){f.style.cursor="";f.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));m=m.cloneNode(!1);m.setAttribute("src",Editor.editImage);m.setAttribute("title",mxResources.get("edit"));t.insertBefore(m,t.firstChild);mxEvent.addListener(m,"click",B);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&B(a)});d=m.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",
mxResources.get("add"));t.insertBefore(d,t.firstChild);mxEvent.addListener(d,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(d,t.firstChild))}l.appendChild(t);
@@ -3086,57 +3091,58 @@ f?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b){var c=new Er
e,!0,g);a.init()};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,d,f){var c=a.toDataURL("image/"+d);if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/"+
d))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"tEXt","mxfile",encodeURIComponent(b)));0<f&&(c=this.writeGraphModelToPng(c,"pHYs","dpi",f));return c};EditorUi.prototype.saveCanvas=function(a,b,d,f,n){var c="jpeg"==d?"jpg":d;f=this.getBaseFilename(f)+"."+c;a=this.createImageDataUri(a,b,d,n);this.saveData(f,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!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.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=
-function(a,b,d,f,n){if(window.Blob&&navigator.msSaveOrOpenBlob)a=f?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else{var c=document.createElement("a"),e=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof c.download;if(mxClient.IS_GC)var k=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),
-e=65==(k?parseInt(k[2],10):!1)?!1:e;if(e||this.isOffline()){c.href=URL.createObjectURL(f?this.base64ToBlob(a,d):new Blob([a],{type:d}));e?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(t){}}else this.createEchoRequest(a,b,d,f,n).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,f,n,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
-a+(null!=d?"&mime="+d:"")+(null!=n?"&format="+n:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(f?"&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),l=0;l<e;++l){for(var v=1024*l,t=Math.min(v+1024,d),m=Array(t-v),y=0;v<t;++y,++v)m[y]=c[v].charCodeAt(0);f[l]=new Uint8Array(m)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,f,n,g,l){g=null!=g?g:!1;l=null!=l?l:
-"vsdx"!=n&&(!mxClient.IS_IOS||!navigator.standalone);n=this.getServiceCount(g);isLocalStorage&&n++;var c=4>=n?2:6<n?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,f);else{var e=window.open("about:blank");null==e?mxUtils.popup(a,!0):(e.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),e.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,f):null!=c&&0<c.length&&
-this.pickFolder(b,mxUtils.bind(this,function(e){try{this.exportFile(a,c,d,f,b,e)}catch(p){this.handleError(p)}}))}catch(D){this.handleError(D)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,l,null,1<n,c,a,d,f);g=this.isServices(n)?n>c?390:270:160;this.showDialog(b.container,400,g,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=
-b||mxClient.IS_SVG?(d=d?a:btoa(unescape(encodeURIComponent(a))),"image/svg+xml"==b?mxClient.IS_GC&&mxClient.IS_MAC?c.document.write('<html><object style="max-width:100%;" data="data:'+b+";base64,"+d+'"/></html>'):c.document.write("<html>"+a+"</html>"):c.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+d+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var f=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.style.backgroundColor="white";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"))}f.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,d,f,n){this.isLocalFileSave()?this.saveLocalFile(d,a,f,n,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,f,n,b,c)}),d,n,f)};EditorUi.prototype.saveRequest=function(a,
-b,d,f,n,g,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var e=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var e=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=e&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?e.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+
-b;if(null!=f)try{this.exportFile(f,a,g,!0,c,d)}catch(B){this.handleError(B)}else this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=e.getStatus()&&299>=e.getStatus())try{this.exportFile(e.getText(),a,g,!0,c,d)}catch(B){this.handleError(B)}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,l,null,1<c,e,f,g,n);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,f,n,g){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,f,n,g,l,v,t,m){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=
-this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var e=b?null:this.editor.graph.background;e==mxConstants.NONE&&(e=null);null==e&&0==b&&(e="#ffffff");var k=this.editor.graph.getSvg(e,a,l,v,null,d,null,null,"blank"==m?"_blank":"self"==m?"_top":null,null,!0);f&&this.editor.graph.addSvgShadow(k);var x=this.getBaseFilename()+".svg",A=mxUtils.bind(this,function(a){this.spinner.stop();n&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,t,null,null,null,!1));var c='<?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);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(x,"svg",c,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(k);this.editor.graph.mathEnabled&&this.editor.addMathCss(k);g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(k,A,this.thumbImageCache)):A(k)}catch(Q){this.handleError(Q)}};EditorUi.prototype.addRadiobox=
-function(a,b,d,f,n,g,l){return this.addCheckbox(a,d,f,n,g,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,b,d,f,n,g,l,v){g=null!=g?g:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=l;null!=v&&c.setAttribute("name",v);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);f&&c.setAttribute("disabled","disabled");g&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,
-b),d.setAttribute("for",l),a.appendChild(d),n||mxUtils.br(a));return c};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(){l.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",l=
-null,l=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();l.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";l.style.marginLeft="4px";l.style.height="22px";l.style.width="22px";l.style.position="relative";l.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";l.className="geColorBtn";a.appendChild(l);mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};
-EditorUi.prototype.createLink=function(a,b,d,f,n,g,l,v){var c=this.getCurrentFile(),e=[];f&&(e.push("lightbox=1"),"auto"!=a&&e.push("target="+a),null!=b&&b!=mxConstants.NONE&&e.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=n&&0<n.length&&e.push("edit="+encodeURIComponent(n)),g&&e.push("layers=1"),this.editor.graph.foldingEnabled&&e.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&e.push("page-id="+this.currentPage.getId());a=!0;null!=l?d=
-"#U"+encodeURIComponent(l):(c=this.getCurrentFile(),v||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&e.push("title="+encodeURIComponent(c.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:
-"https://"+window.location.host+"/")+(0<e.length?"?"+e.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,f,n,g,l,v,t,m,y){this.getBasenames();var c={};""!=n&&n!=mxConstants.NONE&&(c.highlight=n);"auto"!==f&&(c.target=f);t||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);
-v&&d.push("layers");0<d.length&&(t&&d.push("lightbox"),c.toolbar=d.join(" "));null!=m&&0<m.length&&(c.edit=m);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></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":
-EditorUi.drawHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.drawHost+"/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,f){var c=document.createElement("div");c.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";c.appendChild(e);var k=document.createElement("div");
-k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var l=document.createElement("input");l.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";l.setAttribute("value","url");l.setAttribute("type","radio");l.setAttribute("name","type-embedhtmldialog");e=l.cloneNode(!0);e.setAttribute("value","copy");k.appendChild(e);var t=document.createElement("span");mxUtils.write(t,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(t);mxUtils.br(k);k.appendChild(l);
-t=document.createElement("span");mxUtils.write(t,mxResources.get("publicDiagramUrl"));k.appendChild(t);var x=this.getCurrentFile();null==d&&null!=x&&x.constructor==window.DriveFile&&(t=document.createElement("a"),t.style.paddingLeft="12px",t.style.color="gray",t.setAttribute("href","javascript:void(0);"),mxUtils.write(t,mxResources.get("share")),k.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(x.getId())})));e.setAttribute("checked",
-"checked");null==d&&l.setAttribute("disabled","disabled");c.appendChild(k);var y=this.addLinkSection(c),m=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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%";c.appendChild(p);var q=this.addCheckbox(c,mxResources.get("fit"),!0),k=null!=this.pages&&1<this.pages.length,u=u=this.addCheckbox(c,mxResources.get("allPages"),
-k,!k),z=this.addCheckbox(c,mxResources.get("layers"),!0),I=this.addCheckbox(c,mxResources.get("lightbox"),!0),C=this.addEditButton(c,I),F=C.getEditInput();F.style.marginBottom="16px";mxEvent.addListener(I,"change",function(){I.checked?F.removeAttribute("disabled"):F.setAttribute("disabled","disabled");F.checked&&I.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){f(l.checked?d:null,m.checked,
-p.value,y.getTarget(),y.getColor(),q.checked,u.checked,z.checked,I.checked,C.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,f,n,g){var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,a||mxResources.get("link"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(e);var k=this.getCurrentFile(),e="https://desk.draw.io/support/solutions/articles/16000051941";
-a=0;if(null!=k&&k.constructor==window.DriveFile&&!b){a=80;var e="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 x=document.createElement("div");x.style.whiteSpace="normal";mxUtils.write(x,mxResources.get("linkAccountRequired"));l.appendChild(x);x=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));
-x.style.marginTop="12px";x.className="geBtn";l.appendChild(x);c.appendChild(l);x=document.createElement("a");x.style.paddingLeft="12px";x.style.color="gray";x.style.fontSize="11px";x.setAttribute("href","javascript:void(0);");mxUtils.write(x,mxResources.get("check"));l.appendChild(x);mxEvent.addListener(x,"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 m=null,p=null;if(null!=d||null!=f)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+
-":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=f+"px",c.appendChild(p),mxUtils.br(c);var q=this.addLinkSection(c,g);d=null!=this.pages&&1<this.pages.length;var u=null;if(null==k||k.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var z=this.addCheckbox(c,mxResources.get("lightbox"),!0),I=this.addEditButton(c,z),C=I.getEditInput(),F=this.addCheckbox(c,mxResources.get("layers"),
-!0);F.style.marginLeft=C.style.marginLeft;F.style.marginBottom="16px";F.style.marginTop="8px";mxEvent.addListener(z,"change",function(){z.checked?(F.removeAttribute("disabled"),C.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&z.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){n(q.getTarget(),q.getColor(),null==u?
-!0:u.checked,z.checked,I.getLink(),F.checked,null!=m?m.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),e);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,f,n){var c=document.createElement("div");c.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:"+(n?"10":"4")+"px";c.appendChild(e);if(n){mxUtils.write(c,mxResources.get("zoom")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.style.marginRight="12px";k.value=this.lastExportZoom||"100%";c.appendChild(k);mxUtils.write(c,mxResources.get("borderWidth")+":");var l=document.createElement("input");l.setAttribute("type",
-"text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.value=this.lastExportBorder||"0";c.appendChild(l);mxUtils.br(c)}var x=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),y=f?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),e=this.editor.graph,m=f?null:this.addCheckbox(c,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=m&&(m.style.marginBottom="16px");a=
-new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(k.value)/100||1,c=parseInt(l.value)||0;d(!x.checked,null!=y?y.checked:!1,null!=m?m.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(n?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,f,l,g,m,v){m=null!=m?m:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=this.editor.graph,k="jpeg"==v?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
-c.appendChild(n);mxUtils.write(c,mxResources.get("zoom")+":");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=this.lastExportZoom||"100%";c.appendChild(p);mxUtils.write(c,mxResources.get("borderWidth")+":");var x=document.createElement("input");x.setAttribute("type","text");x.style.marginRight="16px";x.style.width="60px";x.style.marginLeft="4px";x.value=this.lastExportBorder||
-"0";c.appendChild(x);mxUtils.br(c);var q=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=v),A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,e.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");g&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),k+=26,mxEvent.addListener(A,"change",function(){A.checked?
-u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));e.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var z=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||C.setAttribute("disabled","disabled");b&&(c.appendChild(C),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),k+=
-26);var G=null;if("png"==v||"jpeg"==v)G=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),k+=26;var P=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=v),V=null!=this.pages&&1<this.pages.length,aa=this.addCheckbox(c,V?mxResources.get("allPages"):"",V,!V,null,"jpeg"!=v);aa.style.marginLeft="24px";aa.style.marginBottom="16px";V?k+=26:aa.style.display="none";mxEvent.addListener(P,"change",function(){P.checked&&V?aa.removeAttribute("disabled"):
-aa.setAttribute("disabled","disabled")});m&&V||aa.setAttribute("disabled","disabled");var W=document.createElement("select");W.style.maxWidth="260px";W.style.marginLeft="8px";W.style.marginRight="10px";W.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));W.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");mxUtils.write(a,mxResources.get("openInNewWindow"));W.appendChild(a);a=document.createElement("option");
-a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));W.appendChild(a);"svg"==v&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(W),mxUtils.br(c),mxUtils.br(c),k+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=x.value;this.lastExportZoom=p.value;l(p.value,q.checked,!A.checked,z.checked,P.checked,C.checked,x.value,u.checked,!aa.checked,W.value,null!=G?G.checked:null)}),null,d,f);this.showDialog(d.container,340,k,!0,!0,null,
-null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,f,l){var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=this.editor.graph;if(null!=b){var k=document.createElement("h3");mxUtils.write(k,b);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(k)}var n=this.addCheckbox(c,mxResources.get("fit"),
-!0),x=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible&&f,!f),m=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,q),u=p.getEditInput(),z=1<e.model.getChildCount(e.model.getRoot()),C=this.addCheckbox(c,mxResources.get("layers"),z,!z);C.style.marginLeft=u.style.marginLeft;C.style.marginBottom="12px";C.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(z&&C.removeAttribute("disabled"),u.removeAttribute("disabled")):
-(C.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&q.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(n.checked,x.checked,m.checked,q.checked,p.getLink(),C.checked)}),null,mxResources.get("embed"),l);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,f,l,g,m,v){function c(c){var b=" ",k="";f&&(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('"+
+function(a,b,d,f,n){if(window.Blob&&navigator.msSaveOrOpenBlob)a=f?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&mxClient.IS_SF&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,f);else{var c=
+document.createElement("a"),e=0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof c.download;if(mxClient.IS_GC)var k=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),e=65==(k?parseInt(k[2],10):!1)?!1:e;if(e||this.isOffline()){c.href=URL.createObjectURL(f?this.base64ToBlob(a,d):new Blob([a],{type:d}));e?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(t){}}else this.createEchoRequest(a,
+b,d,f,n).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,f,n,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=n?"&format="+n:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(f?"&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),l=0;l<e;++l){for(var v=1024*l,t=Math.min(v+1024,d),m=Array(t-v),y=0;v<t;++y,++v)m[y]=
+c[v].charCodeAt(0);f[l]=new Uint8Array(m)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,f,n,g,l){g=null!=g?g:!1;l=null!=l?l:"vsdx"!=n&&(!mxClient.IS_IOS||!navigator.standalone);n=this.getServiceCount(g);isLocalStorage&&n++;var c=4>=n?2:6<n?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,f);else{var e=window.open("about:blank");null==e?mxUtils.popup(a,!0):(e.document.write("<pre>"+
+mxUtils.htmlEntities(a,!1)+"</pre>"),e.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,f):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(e){try{this.exportFile(a,c,d,f,b,e)}catch(p){this.handleError(p)}}))}catch(E){this.handleError(E)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,l,null,1<n,c,a,d,f);g=this.isServices(n)?n>c?390:270:160;this.showDialog(b.container,400,g,!0,!0);b.init()};
+EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?(d=d?a:btoa(unescape(encodeURIComponent(a))),"image/svg+xml"==b?mxClient.IS_GC&&mxClient.IS_MAC?c.document.write('<html><object style="max-width:100%;" data="data:'+b+";base64,"+d+'"/></html>'):c.document.write("<html>"+a+"</html>"):c.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+d+'"/></html>')):c.document.write("<html><pre>"+
+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var f=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.style.backgroundColor="white";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"))}f.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,d,f,n){this.isLocalFileSave()?this.saveLocalFile(d,a,f,n,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,
+c){return this.createEchoRequest(d,a,f,n,b,c)}),d,n,f)};EditorUi.prototype.saveRequest=function(a,b,d,f,n,g,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var e=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var e=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=e&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?e.simulate(document,"_blank"):
+this.pickFolder(c,mxUtils.bind(this,function(d){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=f)try{this.exportFile(f,a,g,!0,c,d)}catch(B){this.handleError(B)}else this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=e.getStatus()&&299>=e.getStatus())try{this.exportFile(e.getText(),a,g,!0,c,d)}catch(B){this.handleError(B)}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,l,null,1<c,e,f,g,n);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,f,n,g){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=
+function(a,b,d,f,n,g,l,v,t,m){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var e=b?null:this.editor.graph.background;e==mxConstants.NONE&&(e=null);null==e&&0==b&&(e="#ffffff");var k=this.editor.graph.getSvg(e,a,l,v,null,d,null,null,"blank"==m?"_blank":"self"==m?"_top":null,null,!0);f&&this.editor.graph.addSvgShadow(k);var x=this.getBaseFilename()+".svg",A=mxUtils.bind(this,function(a){this.spinner.stop();n&&a.setAttribute("content",
+this.getFileData(!0,null,null,null,d,t,null,null,null,!1));var c='<?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);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(x,"svg",c,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(k);this.editor.graph.mathEnabled&&
+this.editor.addMathCss(k);g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(k,A,this.thumbImageCache)):A(k)}catch(P){this.handleError(P)}};EditorUi.prototype.addRadiobox=function(a,b,d,f,n,g,l){return this.addCheckbox(a,d,f,n,g,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,b,d,f,n,g,l,v){g=null!=g?g:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=
+l;null!=v&&c.setAttribute("name",v);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);f&&c.setAttribute("disabled","disabled");g&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),n||mxUtils.br(a));return c};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(){l.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",l=null,l=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();l.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";l.style.marginLeft="4px";l.style.height="22px";l.style.width=
+"22px";l.style.position="relative";l.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";l.className="geColorBtn";a.appendChild(l);mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,f,n,g,l,v){var c=this.getCurrentFile(),e=[];f&&(e.push("lightbox=1"),"auto"!=a&&e.push("target="+a),null!=b&&b!=mxConstants.NONE&&e.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),
+null!=n&&0<n.length&&e.push("edit="+encodeURIComponent(n)),g&&e.push("layers=1"),this.editor.graph.foldingEnabled&&e.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&e.push("page-id="+this.currentPage.getId());a=!0;null!=l?d="#U"+encodeURIComponent(l):(c=this.getCurrentFile(),v||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
+(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&e.push("title="+encodeURIComponent(c.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host+"/")+(0<e.length?"?"+e.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,f,n,g,l,v,t,m,y){this.getBasenames();var c={};""!=n&&n!=mxConstants.NONE&&(c.highlight=n);"auto"!==f&&(c.target=f);t||(c.lightbox=
+!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);v&&d.push("layers");0<d.length&&(t&&d.push("lightbox"),c.toolbar=d.join(" "));null!=m&&0<m.length&&(c.edit=m);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":
+"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></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":EditorUi.drawHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.drawHost+"/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,f){var c=document.createElement("div");
+c.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";c.appendChild(e);var k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var l=document.createElement("input");l.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";l.setAttribute("value","url");l.setAttribute("type","radio");l.setAttribute("name",
+"type-embedhtmldialog");e=l.cloneNode(!0);e.setAttribute("value","copy");k.appendChild(e);var t=document.createElement("span");mxUtils.write(t,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(t);mxUtils.br(k);k.appendChild(l);t=document.createElement("span");mxUtils.write(t,mxResources.get("publicDiagramUrl"));k.appendChild(t);var x=this.getCurrentFile();null==d&&null!=x&&x.constructor==window.DriveFile&&(t=document.createElement("a"),t.style.paddingLeft="12px",t.style.color="gray",t.setAttribute("href",
+"javascript:void(0);"),mxUtils.write(t,mxResources.get("share")),k.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(x.getId())})));e.setAttribute("checked","checked");null==d&&l.setAttribute("disabled","disabled");c.appendChild(k);var y=this.addLinkSection(c),m=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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%";c.appendChild(p);var q=this.addCheckbox(c,mxResources.get("fit"),!0),k=null!=this.pages&&1<this.pages.length,u=u=this.addCheckbox(c,mxResources.get("allPages"),k,!k),z=this.addCheckbox(c,mxResources.get("layers"),!0),I=this.addCheckbox(c,mxResources.get("lightbox"),!0),C=this.addEditButton(c,I),F=C.getEditInput();F.style.marginBottom="16px";mxEvent.addListener(I,"change",function(){I.checked?F.removeAttribute("disabled"):
+F.setAttribute("disabled","disabled");F.checked&&I.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){f(l.checked?d:null,m.checked,p.value,y.getTarget(),y.getColor(),q.checked,u.checked,z.checked,I.checked,C.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,f,n,g){var c=document.createElement("div");c.style.whiteSpace=
+"nowrap";var e=document.createElement("h3");mxUtils.write(e,a||mxResources.get("link"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(e);var k=this.getCurrentFile(),e="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=k&&k.constructor==window.DriveFile&&!b){a=80;var e="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 x=document.createElement("div");x.style.whiteSpace="normal";mxUtils.write(x,mxResources.get("linkAccountRequired"));l.appendChild(x);x=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));x.style.marginTop="12px";x.className="geBtn";l.appendChild(x);c.appendChild(l);x=document.createElement("a");x.style.paddingLeft="12px";x.style.color="gray";x.style.fontSize="11px";x.setAttribute("href","javascript:void(0);");mxUtils.write(x,mxResources.get("check"));
+l.appendChild(x);mxEvent.addListener(x,"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 m=null,p=null;if(null!=d||null!=f)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"),
+m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=f+"px",c.appendChild(p),mxUtils.br(c);var q=this.addLinkSection(c,g);d=null!=this.pages&&1<this.pages.length;var u=null;
+if(null==k||k.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var z=this.addCheckbox(c,mxResources.get("lightbox"),!0),I=this.addEditButton(c,z),C=I.getEditInput(),F=this.addCheckbox(c,mxResources.get("layers"),!0);F.style.marginLeft=C.style.marginLeft;F.style.marginBottom="16px";F.style.marginTop="8px";mxEvent.addListener(z,"change",function(){z.checked?(F.removeAttribute("disabled"),C.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),C.setAttribute("disabled",
+"disabled"));C.checked&&z.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){n(q.getTarget(),q.getColor(),null==u?!0:u.checked,z.checked,I.getLink(),F.checked,null!=m?m.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),e);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():
+document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,f,n){var c=document.createElement("div");c.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:"+(n?"10":"4")+"px";c.appendChild(e);if(n){mxUtils.write(c,mxResources.get("zoom")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight=
+"16px";k.style.width="60px";k.style.marginLeft="4px";k.style.marginRight="12px";k.value=this.lastExportZoom||"100%";c.appendChild(k);mxUtils.write(c,mxResources.get("borderWidth")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.value=this.lastExportBorder||"0";c.appendChild(l);mxUtils.br(c)}var x=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),y=f?null:this.addCheckbox(c,
+mxResources.get("includeCopyOfMyDiagram"),!0),e=this.editor.graph,m=f?null:this.addCheckbox(c,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=m&&(m.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(k.value)/100||1,c=parseInt(l.value)||0;d(!x.checked,null!=y?y.checked:!1,null!=m?m.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(n?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
+function(a,b,d,f,l,g,m,v){m=null!=m?m:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=this.editor.graph,k="jpeg"==v?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(n);mxUtils.write(c,mxResources.get("zoom")+":");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=this.lastExportZoom||"100%";c.appendChild(p);mxUtils.write(c,mxResources.get("borderWidth")+":");var x=document.createElement("input");x.setAttribute("type","text");x.style.marginRight="16px";x.style.width="60px";x.style.marginLeft="4px";x.value=this.lastExportBorder||"0";c.appendChild(x);mxUtils.br(c);var q=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=v),A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,e.isSelectionEmpty()),u=document.createElement("input");
+u.style.marginTop="16px";u.style.marginRight="8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");g&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),k+=26,mxEvent.addListener(A,"change",function(){A.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));e.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var z=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible),
+C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||C.setAttribute("disabled","disabled");b&&(c.appendChild(C),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),k+=26);var G=null;if("png"==v||"jpeg"==v)G=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),k+=26;var O=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),m,null,null,
+"jpeg"!=v),V=null!=this.pages&&1<this.pages.length,aa=this.addCheckbox(c,V?mxResources.get("allPages"):"",V,!V,null,"jpeg"!=v);aa.style.marginLeft="24px";aa.style.marginBottom="16px";V?k+=26:aa.style.display="none";mxEvent.addListener(O,"change",function(){O.checked&&V?aa.removeAttribute("disabled"):aa.setAttribute("disabled","disabled")});m&&V||aa.setAttribute("disabled","disabled");var W=document.createElement("select");W.style.maxWidth="260px";W.style.marginLeft="8px";W.style.marginRight="10px";
+W.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));W.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");mxUtils.write(a,mxResources.get("openInNewWindow"));W.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));W.appendChild(a);"svg"==v&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(W),mxUtils.br(c),
+mxUtils.br(c),k+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=x.value;this.lastExportZoom=p.value;l(p.value,q.checked,!A.checked,z.checked,O.checked,C.checked,x.value,u.checked,!aa.checked,W.value,null!=G?G.checked:null)}),null,d,f);this.showDialog(d.container,340,k,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=
+function(a,b,d,f,l){var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=this.editor.graph;if(null!=b){var k=document.createElement("h3");mxUtils.write(k,b);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(k)}var n=this.addCheckbox(c,mxResources.get("fit"),!0),x=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible&&f,!f),m=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,q),u=p.getEditInput(),
+z=1<e.model.getChildCount(e.model.getRoot()),C=this.addCheckbox(c,mxResources.get("layers"),z,!z);C.style.marginLeft=u.style.marginLeft;C.style.marginBottom="12px";C.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(z&&C.removeAttribute("disabled"),u.removeAttribute("disabled")):(C.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&q.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});
+b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(n.checked,x.checked,m.checked,q.checked,p.getLink(),C.checked)}),null,mxResources.get("embed"),l);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,f,l,g,m,v){function c(c){var b=" ",k="";f&&(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('"+
EditorUi.drawHost+"/?client=1&lightbox=1"+(l?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");a&&(k+="max-width:100%;");var n="";d&&(n=' width="'+Math.round(e.width)+'" height="'+Math.round(e.height)+'"');m('<img src="'+c+'"'+n+(""!=k?' style="'+k+'"':"")+b+"/>")}var e=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=f?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,
mxUtils.bind(this,function(a){v({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b);else if(b=this.getFileData(!0),e.width*e.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*e.width)+"&h="+Math.round(2*e.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(f?"1":"0")+k+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?c("data:image/png;base64,"+n.getText()):v({message:mxResources.get("unknownError")})}))}else v({message:mxResources.get("drawingTooLarge")})};
EditorUi.prototype.createEmbedSvg=function(a,b,d,f,l,g,m){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),e=c.getElementsByTagName("a");if(null!=e)for(var k=0;k<e.length;k++){var n=e[k].getAttribute("href");null!=n&&"#"==n.charAt(0)&&"_blank"==e[k].getAttribute("target")&&e[k].removeAttribute("target")}f&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var x=" ",p="";f&&(x="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('"+
@@ -3145,7 +3151,7 @@ EditorUi.drawHost+"/?client=1&lightbox=1"+(l?"&edit=_blank":"")+(g?"&layers=1":"
a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};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<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(g){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){try{var c=this.editor.graph,e=null;if(null!=
d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,!0),c),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),f=c.getGlobalVariable,k=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);
-c.model.setRoot(k.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(e));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(E){null!=b&&b(E)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,c.shadowVisible,null,c)}catch(v){null!=
+c.model.setRoot(k.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(e));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(D){null!=b&&b(D)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,c.shadowVisible,null,c)}catch(v){null!=
b&&b(v)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,f,l,g,m,v){v=null!=v?v:!0;m=b.background;m==mxConstants.NONE&&(m=null);g=b.getSvg(m,null,null,null,null,g);b.shadowVisible&&b.addSvgShadow(g);null!=a&&g.setAttribute("content",a);null!=d&&g.setAttribute("resource",d);if(null!=l)this.embedFonts(g,mxUtils.bind(this,function(a){v?this.convertImages(a,mxUtils.bind(this,function(a){l((f?"":'<?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))})):l((f?"":'<?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 return(f?"":'<?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(g)};EditorUi.prototype.embedFonts=function(a,b){this.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&
this.editor.addFontCss(a,this.editor.resolvedFontCss),this.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(x){b(a)}}))}catch(k){b(a)}}))};EditorUi.prototype.exportImage=function(a,b,d,f,l,g,m,v,t,q,y){t=null!=t?t:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();
@@ -3156,155 +3162,155 @@ a;e++;var c="application/x-font-ttf";if("svg"==t||/(\.svg)($|\?)/i.test(a))c="im
function(a){var c=this.editor.graph.extFonts;if(null!=c&&0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),g=0;g<c.length;g++){var l=c[g].name,m=c[g].url;0==m.indexOf(Editor.GOOGLE_FONTS)?null==this.cachedGoogleFonts[m]?(d++,this.loadUrl(m,mxUtils.bind(this,function(a){this.cachedGoogleFonts[m]=a;b+=a;d--;f()}),mxUtils.bind(this,function(a){d--;b+="@import url("+m+");";f()}))):b+=this.cachedGoogleFonts[m]:
b+='@font-face {font-family: "'+l+'";src: url("'+m+'");}'}f()}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,f,l,g,m,v,t,q,y,u,p,B,z){try{g=null!=g?g:!0;m=null!=m?m:!0;u=null!=u?u:this.editor.graph;p=null!=p?p:0;var c=t?null:u.background;c==mxConstants.NONE&&(c=null);null==c&&(c=f);null==c&&0==t&&(c="#ffffff");this.convertImages(u.getSvg(null,null,null,B,null,m,null,null,null,q),mxUtils.bind(this,function(d){try{var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=function(){mxClient.IS_SF?
window.setTimeout(function(){t.drawImage(e,p/v,p/v);a(k)},0):(t.drawImage(e,p/v,p/v),a(k))},k=document.createElement("canvas"),n=parseInt(d.getAttribute("width")),m=parseInt(d.getAttribute("height"));v=null!=v?v:1;null!=b&&(v=g?Math.min(1,Math.min(3*b/(4*m),b/n)):b/n);n=Math.ceil(v*n)+2*p;m=Math.ceil(v*m)+2*p;k.setAttribute("width",n);k.setAttribute("height",m);var t=k.getContext("2d");null!=c&&(t.beginPath(),t.rect(0,0,n,m),t.fillStyle=c,t.fill());t.scale(v,v);if(z){var x=u.view,y=x.scale;x.scale=
-1;var q=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));x.scale=y;var q="data:image/svg+xml;base64,"+q,A=u.gridSize*x.gridSteps*v,B=u.getGraphBounds(),D=x.translate.x*y,E=x.translate.y*y,I=D+(B.x-D)/y,C=E+(B.y-E)/y,F=new Image;F.onload=function(){try{for(var a=-Math.round(A-mxUtils.mod((D-I)*v,A)),c=-Math.round(A-mxUtils.mod((E-C)*v,A));a<n;a+=A)for(var b=c;b<m;b+=A)t.drawImage(F,a/v,b/v);f()}catch(J){null!=l&&l(J)}};F.onerror=function(a){null!=l&&l(a)};F.src=q}else f()}catch(R){null!=
-l&&l(R)}});e.onerror=function(a){null!=l&&l(a)};q&&this.editor.graph.addSvgShadow(d);this.editor.graph.mathEnabled&&this.editor.addMathCss(d);var f=mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(d,this.editor.resolvedFontCss),e.src=this.createSvgDataUri(mxUtils.getXml(d))}catch(G){null!=l&&l(G)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.editor.addFontCss(d,a),this.loadFonts(f)}catch(P){null!=l&&l(P)}}))}catch(G){null!=l&&l(G)}}),
+1;var q=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));x.scale=y;var q="data:image/svg+xml;base64,"+q,A=u.gridSize*x.gridSteps*v,B=u.getGraphBounds(),E=x.translate.x*y,D=x.translate.y*y,I=E+(B.x-E)/y,C=D+(B.y-D)/y,F=new Image;F.onload=function(){try{for(var a=-Math.round(A-mxUtils.mod((E-I)*v,A)),c=-Math.round(A-mxUtils.mod((D-C)*v,A));a<n;a+=A)for(var b=c;b<m;b+=A)t.drawImage(F,a/v,b/v);f()}catch(J){null!=l&&l(J)}};F.onerror=function(a){null!=l&&l(a)};F.src=q}else f()}catch(R){null!=
+l&&l(R)}});e.onerror=function(a){null!=l&&l(a)};q&&this.editor.graph.addSvgShadow(d);this.editor.graph.mathEnabled&&this.editor.addMathCss(d);var f=mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(d,this.editor.resolvedFontCss),e.src=this.createSvgDataUri(mxUtils.getXml(d))}catch(G){null!=l&&l(G)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.editor.addFontCss(d,a),this.loadFonts(f)}catch(O){null!=l&&l(O)}}))}catch(G){null!=l&&l(G)}}),
d,y)}catch(I){null!=l&&l(I)}};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||c.substring(0,a.baseUrl.length)==a.baseUrl||d.crossOriginImages&&d.editor.isCorsEnabledForUrl(c)?"chrome-extension://"==c.substring(0,19)||mxClient.IS_CHROMEAPP||(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+
encodeURIComponent(c)}return c};return a};EditorUi.prototype.convertImages=function(a,b,d,f){null==f&&(f=this.createImageUrlConverter());var c=0,e=d||{};d=mxUtils.bind(this,function(d,k){for(var g=a.getElementsByTagName(d),l=0;l<g.length;l++)mxUtils.bind(this,function(d){try{if(null!=d){var g=f.convert(d.getAttribute(k));if(null!=g&&"data:"!=g.substring(0,5)){var l=e[g];null==l?(c++,this.convertImageToDataUri(g,function(f){null!=f&&(e[g]=f,d.setAttribute(k,f));c--;0==c&&b(a)})):d.setAttribute(k,l)}else null!=
g&&d.setAttribute(k,g)}}catch(B){}})(g[l])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,f,l,g,m){try{var c=!m&&(f||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));l=null!=l?l:!0;var e=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}g=null!=g?g:"data:image/png;base64,";e=g+this.base64Encode(e)}b(e)}}else null!=d&&d({message:mxResources.get("error")+" "+a.getStatus()},a)}),function(a){null!=d&&d({message:mxResources.get("error")+" "+a.getStatus()})},c,this.timeout,function(){l&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:e})})});e()}catch(E){null!=
-d&&d(E)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){try{var c=!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b(this.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);c&&b(this.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);c&&b(this.svgBrokenImage.src)});else{var e=new Image,f=this;this.crossOriginImages&&
+"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}g=null!=g?g:"data:image/png;base64,";e=g+this.base64Encode(e)}b(e)}}else null!=d&&d({message:mxResources.get("error")+" "+a.getStatus()},a)}),function(a){null!=d&&d({message:mxResources.get("error")+" "+a.getStatus()})},c,this.timeout,function(){l&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:e})})});e()}catch(D){null!=
+d&&d(D)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){try{var c=!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b(this.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);c&&b(this.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);c&&b(this.svgBrokenImage.src)});else{var e=new Image,f=this;this.crossOriginImages&&
(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(d);if(c)try{var a=document.createElement("canvas"),k=a.getContext("2d");a.height=e.height;a.width=e.width;k.drawImage(e,0,0);b(a.toDataURL())}catch(t){b(f.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(d);c&&b(f.svgBrokenImage.src)};e.src=a}}catch(A){b(this.svgBrokenImage.src)}};EditorUi.prototype.importXml=function(a,b,d,f,l){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var e=this.editor.graph;if(null!=a&&0<a.length){e.model.beginUpdate();
-try{var k=mxUtils.parseXml(a),n=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var m=n.getElementsByTagName("diagram");if(1==m.length)n=Editor.parseDiagramNode(m[0]);else if(1<m.length){a={};var k=[],x=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(n=Editor.parseDiagramNode(m[0]),f=!1,x=1);for(;x<m.length;x++){var q=m[x].getAttribute("id");m[x].removeAttribute("id");var p=this.updatePageRoot(new DiagramPage(m[x]));
-a[q]=m[x].getAttribute("id");var u=this.pages.length;null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[u+1]));e.model.execute(new ChangePage(this,p,p,u,!0));k.push(p)}this.updatePageLinks(a,k)}}null!=n&&"mxGraphModel"===n.nodeName&&(c=e.importGraphModel(n,b,d,f))}finally{e.model.endUpdate()}}}catch(K){if(l)throw K;this.handleError(K)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=
-function(a,b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.getLabel(b);for(var f=c.getElementsByTagName("a"),l=!1,m=0;m<f.length;m++)e=f[m].getAttribute("href"),null!=e&&(f[m].setAttribute("href",this.updatePageLink(a,e)),l=!0);l&&d.labelChanged(b,c.innerHTML)}for(m=0;m<d.model.getChildCount(b);m++)this.updatePageLinksForCell(a,d.model.getChildAt(b,m))};EditorUi.prototype.updatePageLink=
-function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];null!=f.open&&"data:page/id,"==f.open.substring(0,13)&&(c=a[f.open.substring(f.open.indexOf(",")+1)],null!=c?f.open="data:page/id,"+c:delete f.open)}b="data:action/json,"+JSON.stringify(d)}}catch(A){}return b};EditorUi.prototype.isRemoteVisioFormat=
-function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,f){f=null!=f?f:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=this.isRemoteVisioFormat(f);try{var e="UNKNOWN-VISIO",k=f.lastIndexOf(".");0<=k&&k<f.length&&(e=f.substring(k+1).toUpperCase());EditorUi.logEvent({category:e+"-MS-IMPORT-FILE",action:"filename_"+f,label:c?
-"remote":"local"})}catch(E){}if(c)if(null!=VSD_CONVERT_URL){c=new FormData;c.append("file1",a,f);var l=new XMLHttpRequest;l.open("POST",VSD_CONVERT_URL);l.responseType="blob";this.addRemoteServiceSecurityCheck(l);l.onreadystatechange=mxUtils.bind(this,function(){if(4==l.readyState)if(200<=l.status&&299>=l.status)try{var a=l.response;if("text/xml"==a.type){var c=new FileReader;c.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(p){d({message:mxResources.get("errorLoadingFile")})}});
-c.readAsText(a)}else this.doImportVisio(a,b,d,f)}catch(D){d(D)}else d({})});l.send(c)}else d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else try{this.doImportVisio(a,b,d,f)}catch(E){d(E)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.importGraphML=
-function(a,b,d){d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,d)}catch(n){d(n)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,
-function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()||this.handleError({message:mxResources.get("unknownError")})}catch(e){this.handleError(e)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,
-b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(n){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(n){null!=window.console&&console.error(n),d(n)}}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(c,
-0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.generatePlantUmlImage=function(a,b,d,f){function c(a,c,b){c1=a>>2;c2=(a&3)<<4|c>>4;c3=(c&15)<<2|b>>6;c4=b&63;r="";r+=e(c1&63);r+=e(c2&63);r+=e(c3&63);return r+=e(c4&63)}function e(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"}var k=
-new XMLHttpRequest;k.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+c(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+c(a.charCodeAt(i),0,0):r+c(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(pako.deflateRaw(a,{to:"string"})),!0);"txt"!=b&&(k.responseType="blob");k.onload=function(a){if(200<=this.status&&300>this.status)if("txt"==b)d(this.response);else{var c=new FileReader;c.readAsDataURL(this.response);
-c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,e=b.height;if(0==a&&0==e){var k=c.result,g=k.indexOf(","),l=decodeURIComponent(escape(atob(k.substring(g+1)))),n=mxUtils.parseXml(l).getElementsByTagName("svg");0<n.length&&(a=parseFloat(n[0].getAttribute("width")),e=parseFloat(n[0].getAttribute("height")))}d(c.result,a,e)}catch(S){f(S)}};b.src=c.result};c.onerror=function(a){f(a)}}else f(a)};k.onerror=function(a){f(a)};k.send()};EditorUi.prototype.insertAsPreText=function(a,
-b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,f,l,g,m){g=null!=g?g:!0;m=null!=m?m:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),
-mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var e=Editor.extractGraphModelFromPdf(a);if(null!=e&&0<e.length)return this.importXml(e,b,d,g,!0)}if("data:image/png;base64,"==a.substring(0,22)&&(e=this.extractGraphModelFromPng(a),
-null!=e&&0<e.length))return this.importXml(e,b,d,g,!0);if("data:image/svg+xml;"==a.substring(0,19))try{e=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(e=a.substring(a.indexOf(",")+1),e=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0)):e=decodeURIComponent(a.substring(a.indexOf(",")+1));var k=this.importXml(e,b,d,g,!0);if(0<k.length)return k}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,
-null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),m,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),k=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),k,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-a+";"))}}),mxUtils.bind(this,function(){var e=null;c.getModel().beginUpdate();try{e=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(f?"html=1;":"")),c.updateCellSize(e),c.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{c.getModel().endUpdate()}c.setSelectionCell(e)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,
-function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,g))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;l=null;c.getModel().beginUpdate();try{l=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(f?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[l])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"..."),l.value=a,
-c.updateCellSize(l),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i.test(l.value)&&c.setLinkForCell(l,l.value),l.geometry.width+=c.gridSize,l.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[l]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};
-EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&('{"state":"{\\"Properties\\":'==a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==
-this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=c}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,
-function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,c)}else this.editor.graph.setSelectionCells(this.importXml(a,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=
-mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,d){var c=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==Object.keys(e.files).length)d();else{var f=0,k,g=!1;e.forEach(function(a,c){var e=c.name.toLowerCase();"diagram/diagram.xml"==e?(g=!0,c.async("string").then(function(a){0==
-a.indexOf("<mxfile ")?b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,k=c))});0<f?k.async("string").then(function(e){!c.isOffline()&&(new XMLHttpRequest).upload&&c.isRemoteFileFormat(e,a.name)?c.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?b(a.responseText):d())}),a.name):d()}):g||d()}},function(a){d(a)}):d()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():
-(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,f,l,g,m,q,t,u,y){u=null!=u?u:!0;var c=!1,e=null,k=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):b=this.importXml(a,d,f,u);null!=q&&q(b)});"image"==b.substring(0,5)?(t=!1,"image/png"==b.substring(0,9)&&(b=y?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(e=this.importXml(b,d,f,u),t=!0)),t||(b=this.editor.graph,
-y=a.indexOf(";"),0<y&&(a=a.substring(0,y)+a.substring(a.indexOf(",",y+1))),u&&b.isGridEnabled()&&(d=b.snap(d),f=b.snap(f)),e=[b.insertVertex(null,null,"",d,f,l,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,k)):null!=t&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?(c=!0,this.importVisio(t,k)):!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(a,m)?(c=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?k(a.responseText):null!=q&&q(null))}),m)):0==a.indexOf("PK")&&null!=t?(c=!0,this.importZipFile(t,k,mxUtils.bind(this,function(){e=this.insertTextAt(this.validateFileData(a),d,f,!0,null,u);q(e)}))):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||(e=this.insertTextAt(this.validateFileData(a),d,f,!0,null,
-u));c||null==q||q(e);return e};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,f,g,l;c<d;){f=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);b+="==";break}g=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);b+="=";break}l=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(l&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return b};
-EditorUi.prototype.importFiles=function(a,b,d,f,l,g,m,q,t,u,y,z){b=null!=b?b:0;d=null!=d?d:0;f=null!=f?f:this.maxImageSize;u=null!=u?u:this.maxImageBytes;var c=null!=b&&null!=d,e=!0,k=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var n=y||this.resampleThreshold,x=0;x<a.length;x++)if("image/"==a[x].type.substring(0,6)&&a[x].size>n){k=!0;break}var v=mxUtils.bind(this,function(){var k=this.editor.graph,n=k.gridSize;l=null!=l?l:mxUtils.bind(this,function(a,b,d,e,f,g,k,l,n){try{return null!=a&&"<mxlibrary"==
-a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,l,n,c,z)}catch(R){return this.handleError(R),null}});g=null!=g?g:mxUtils.bind(this,function(a){k.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,t=p,x=[],v=mxUtils.bind(this,function(a,b){x[a]=b;if(0==--t){this.spinner.stop();if(null!=q)q(x);else{var c=[];k.getModel().beginUpdate();try{for(var d=0;d<x.length;d++){var e=x[d]();
-null!=e&&(c=c.concat(e))}}finally{k.getModel().endUpdate()}}g(c)}}),A=0;A<p;A++)mxUtils.bind(this,function(c){var g=a[c];if(null!=g){var p=new FileReader;p.onload=mxUtils.bind(this,function(a){if(null==m||m(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var p=a.target.result,t=p.indexOf(","),q=decodeURIComponent(escape(atob(p.substring(t+1)))),x=mxUtils.parseXml(q),q=x.getElementsByTagName("svg");if(0<q.length){var q=q[0],A=z?null:q.getAttribute("content");null!=A&&"<"!=
-A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null==A||"<mxfile "!==A.substring(0,8)&&"<mxGraphModel "!==A.substring(0,14)?v(c,mxUtils.bind(this,function(){try{if(p.substring(0,t+1),null!=x){var a=x.getElementsByTagName("svg");if(0<a.length){var e=a[0],m=e.getAttribute("width"),q=e.getAttribute("height"),m=null!=m&&"%"!=m.charAt(m.length-1)?parseFloat(m):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):
-NaN,y=e.getAttribute("viewBox");if(null==y||0==y.length)e.setAttribute("viewBox","0 0 "+m+" "+q);else if(isNaN(m)||isNaN(q)){var v=y.split(" ");3<v.length&&(m=parseFloat(v[2]),q=parseFloat(v[3]))}p=this.createSvgDataUri(mxUtils.getXml(e));var A=Math.min(1,Math.min(f/Math.max(1,m)),f/Math.max(1,q)),u=l(p,g.type,b+c*n,d+c*n,Math.max(1,Math.round(m*A)),Math.max(1,Math.round(q*A)),g.name);if(isNaN(m)||isNaN(q)){var B=new Image;B.onload=mxUtils.bind(this,function(){m=Math.max(1,B.width);q=Math.max(1,B.height);
-u[0].geometry.width=m;u[0].geometry.height=q;e.setAttribute("viewBox","0 0 "+m+" "+q);p=this.createSvgDataUri(mxUtils.getXml(e));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));k.setCellStyles("image",p,[u[0]])});B.src=this.createSvgDataUri(mxUtils.getXml(e))}return u}}}catch(ea){}return null})):v(c,mxUtils.bind(this,function(){return l(A,"text/xml",b+c*n,d+c*n,0,0,g.name)}))}else v(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==g.type){var B=
-z?null:this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var G=new Image;G.src=a.target.result;v(c,mxUtils.bind(this,function(){return l(B,"text/xml",b+c*n,d+c*n,G.width,G.height,g.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,
-mxUtils.bind(this,function(k){this.resizeImage(k,a.target.result,mxUtils.bind(this,function(k,m,p){v(c,mxUtils.bind(this,function(){if(null!=k&&k.length<u){var t=e&&this.isResampleImage(a.target.result,y)?Math.min(1,Math.min(f/m,f/p)):1;return l(k,g.type,b+c*n,d+c*n,Math.round(m*t),Math.round(p*t),g.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),e,f,y)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=a.target.result,
-l(p,g.type,b+c*n,d+c*n,240,160,g.name,function(a){v(c,function(){return a})},g)});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?l(null,g.type,b+c*n,d+c*n,240,160,g.name,function(a){v(c,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?p.readAsDataURL(g):p.readAsText(g)}})(A)});if(k){k=[];for(x=0;x<a.length;x++)k.push(a[x]);a=k;this.confirmImageResize(function(a){e=a;v()},t)}else v()};EditorUi.prototype.confirmImageResize=function(a,b){b=
-null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
-'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(g){}};EditorUi.prototype.isResampleImage=
-function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,f,l,g){l=null!=l?l:this.maxImageSize;var c=Math.max(1,a.width),e=Math.max(1,a.height);if(f&&this.isResampleImage(b,g))try{var k=Math.max(c/l,e/l);if(1<k){var n=Math.round(c/k),m=Math.round(e/k),q=document.createElement("canvas");q.width=n;q.height=m;q.getContext("2d").drawImage(a,0,0,n,m);var p=q.toDataURL();if(p.length<b.length){var x=document.createElement("canvas");x.width=n;x.height=
-m;var u=x.toDataURL();p!==u&&(b=p,c=n,e=m)}}}catch(Q){}d(b,c,e)};EditorUi.prototype.crcTable=[];for(var d=0;256>d;d++)for(var l=d,m=0;8>m;m++)l=1==(l&1)?3988292384^l>>>1:l>>>1,EditorUi.prototype.crcTable[d]=l;EditorUi.prototype.updateCRC=function(a,b,d,f){for(var c=0;c<f;c++)a=EditorUi.prototype.crcTable[(a^b.charCodeAt(d+c))&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&
-255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,f,l){function c(a,b){var c=m;m+=b;return a.substring(c,m)}function e(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var m=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=l&&l();else if(c(a,
-4),"IHDR"!=c(a,4))null!=l&&l();else{c(a,17);l=a.substring(0,m);do{var n=e(a);if("IDAT"==c(a,4)){l=a.substring(0,m-8);"pHYs"==b&&"dpi"==d?(d=Math.round(f/.0254),d=k(d)+k(d)+String.fromCharCode(1)):d=d+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+f;f=4294967295;f=this.updateCRC(f,b,0,4);f=this.updateCRC(f,d,0,d.length);l+=k(d.length)+b+d+k(f^4294967295);l+=a.substring(m-8,a.length);break}l+=a.substring(m-8,m-4+n);c(a,n);c(a,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(l):
-Base64.encode(l,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a}catch(n){if(null!=d)d(n);else throw n;}};var q=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());
-var a=this,b=this.editor.graph,d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=f){var g=JSON.parse(f),f=new TextareaDialog(a,mxResources.get("plantUml")+":",g.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,g.format,function(e,f,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==g.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,
-!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=f,l.height=k,b.cellsResized([c],[l],!1))}b.setAttributeForCell(c,"plantUmlData",JSON.stringify({data:d,format:g.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(f.container,420,300,!0,!0);f.init()}else d.apply(this,arguments)};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),
-c=!0}catch(K){a.handleError(K)}return c};var f=this.clearDefaultStyle;this.clearDefaultStyle=function(){f.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var l=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":
-"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");return l.apply(this,arguments)};var g=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};g.call(this,a,c,d)};q.apply(this,arguments);mxClient.IS_SVG&&
-this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var m=b.getExportVariables;b.getExportVariables=function(){var b=m.apply(this,arguments);b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,
-a.currentPage)+1:1;return b};var v=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:"pagecount"==b?null!=a.pages?a.pages.length:1:v.apply(this,arguments)};var t=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))t.apply(this,arguments);
-else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var u=this.actions.get("print");u.setEnabled(!mxClient.IS_IOS||!navigator.standalone);u.visible=u.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"find"),this.keyHandler.bindAction(67,
-!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(this.altShiftActions[83]="synchronize"),this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||
-0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();
-a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");
-/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(u=this.editor.graph.view,u.setUnit(mxSettings.getUnit()),u.addListener("unitChanged",function(a,b){mxSettings.setUnit(b.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:
-new mxDualRuler(this,u.unit),this.refresh());if("1"==urlParams.styledev){u=document.getElementById("geFooter");null!=u&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),
-this.styleInput.value)})),u.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var y=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==
-this.styleInput?!0:y.apply(this,arguments)}}u=document.getElementById("geInfo");null!=u&&u.parentNode.removeChild(u);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var z=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=z&&(z.parentNode.removeChild(z),z=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==z&&(!mxClient.IS_IE||10<document.documentMode)&&(z=this.highlightElement(b.container));
-null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=z&&(z.parentNode.removeChild(z),z=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,
-null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var l=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=l;var m=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?
-(l=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(m=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(l=c[0].getAttribute("href")));var n=!0,p=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(l,f,g,!0,m,null,n))});m&&l.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;p()},mxEvent.isControlDown(a)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=
-Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),
-f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b))try{for(var c=b.clipboardData||b.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var l=
-f[index];if("file"===l.kind){if(a.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(b,c,d,e,f,g){a.insertImage(b,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var m=this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],m.x,m.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(t){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
-"&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck","false");d.style.textRendering="optimizeSpeed";d.style.fontFamily="monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow=
-"hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||
-b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||f||(d.style.left=b.container.scrollLeft+10+"px",d.style.top=b.container.scrollTop+10+"px",b.container.appendChild(d),f=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){d.focus();document.execCommand("selectAll",!1,null)},0):(d.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,
-function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!f||224!=c&&17!=c&&91!=c||(f=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,"copy",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d),a()}catch(A){this.handleError(A)}}));mxEvent.addListener(d,"cut",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),
-this.copyCells(d,!0),a()}catch(A){this.handleError(A)}}));mxEvent.addListener(d,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&((new Date).getTime(),d.innerHTML="&nbsp;",d.focus(),null!=a.clipboardData&&this.pasteCells(a,d,!0),mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,d,!1)}),0))}),!0);var l=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==d?!0:l.apply(this,arguments)}};
-EditorUi.prototype.getLinkTitle=function(a){var b=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");0<c&&(b=this.getPageById(a.substring(c+1)),b=null!=b?b.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(b=mxResources.get("action"));return b};EditorUi.prototype.handleCustomLink=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");if(a=this.getPageById(a.substring(b+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||
-"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(a){a.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),
-this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(c){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(a,b){mxSettings.setCustomFonts(this.menus.customFonts);mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",
-mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor("dark"==uiTheme);this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){console.log("gridColorChanged",
-this.editor.graph.view.gridColor);mxSettings.setGridColor(this.editor.graph.view.gridColor,"dark"==uiTheme);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||
-!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save());this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?
-(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b,d){if(!mxEvent.isConsumed(a)){var c=b;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var e=a.clipboardData.getData("text/html");if(null!=e&&0<e.length){if(c=document.createElement("div"),c.innerHTML=e,e=c.getElementsByTagName("style"),null!=e)for(;0<e.length;)e[0].parentNode.removeChild(e[0])}else e=a.clipboardData.getData("text/plain"),
-null!=e&&0<e.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,e))}e=c.getElementsByTagName("span");if(null!=e&&0<e.length&&"application/vnd.lucid.chart.objects"===e[0].getAttribute("data-lucid-type"))d=e[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){var b=this.editor.graph;b.lastPasteXml==a?b.pasteCounter++:(b.lastPasteXml=a,b.pasteCounter=0);var c=b.pasteCounter*b.gridSize;b.setSelectionCells(this.importXml(a,c,
-c));b.scrollCellToVisible(b.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{var f=mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText),k=!1;try{var l=f.lastIndexOf("%3E");0<=l&&l<f.length-3&&(f=f.substring(0,l+3))}catch(p){}try{var e=c.getElementsByTagName("span"),m=null!=e&&0<e.length?mxUtils.trim(decodeURIComponent(e[0].textContent)):decodeURIComponent(f);this.isCompatibleString(m)&&(k=!0,f=m)}catch(p){}try{var q=this.editor.graph;
-if(null!=f&&0<f.length){q.lastPasteXml==f?q.pasteCounter++:(q.lastPasteXml=f,q.pasteCounter=0);var y=q.pasteCounter*q.gridSize;if(k||this.isCompatibleString(f))q.setSelectionCells(this.importXml(f,y,y));else{var u=q.getInsertPoint();q.isMouseInsertPoint()&&(y=0,q.lastPasteXml==f&&0<q.pasteCounter&&q.pasteCounter--);q.setSelectionCells(this.insertTextAt(f,u.x+y,u.y+y,!0))}if(!q.isSelectionEmpty()){q.scrollCellToVisible(q.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(q.view.getState(q.getSelectionCell()));
-try{mxEvent.consume(a)}catch(p){}}}else d||(q.lastPasteXml=null,q.pasteCounter=0)}catch(p){this.handleError(p)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==
-b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):
-this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<
-d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(c)&&
-(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,f;if(null==a){f=document.body;var g=document.documentElement;d=(f.clientWidth||g.clientWidth)-3;f=Math.max(f.clientHeight||0,g.clientHeight)-
-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,f=a.clientHeight;g=document.createElement("div");g.style.zIndex=mxPopupMenu.prototype.zIndex+2;g.style.border="3px dotted rgb(254, 137, 12)";g.style.pointerEvents="none";g.style.position="absolute";g.style.top=b+"px";g.style.left=c+"px";g.style.width=Math.max(0,d-3)+"px";g.style.height=Math.max(0,f-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=
-function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{var d=
-c.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)?e=e.substring(0,e.length-4)+".drawio":/(\.pdf)$/i.test(e)&&(e=e.substring(0,e.length-4)+".drawio");var f=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".drawio":e+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,
-a,e))}catch(D){this.handleError(D,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(/(\.*<graphml )/.test(d))this.importGraphML(d,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))this.parseFile(a,mxUtils.bind(this,function(a){4==
-a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?f(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(d))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".drawio"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,e,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==
-c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,c.target.result,a.name))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else if(0==d.indexOf("PK"))this.importZipFile(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(d,e,b)}));else{if("image/png"==
-a.type.substring(0,9))d=this.extractGraphModelFromPng(d);else if("application/pdf"==a.type){var g=Editor.extractGraphModelFromPdf(d);null!=g&&(d=g)}this.spinner.stop();this.openLocalFile(d,e,b)}}}catch(y){this.handleError(y)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=
-function(a,b,d){var c=this.getCurrentFile(),e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d))});if(null!=a&&0<a.length)null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)?e():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=c&&
-c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=
-function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));
-d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=
-a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=a?"":"hidden",this.ruler.vRuler.container.style.visibility=a?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=a?"":"hidden");a||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=
-this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,d){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&
-this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?
-this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,
-d=!1,f=null,g=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,g);mxEvent.addListener(window,"message",mxUtils.bind(this,function(e){if(e.source==(window.opener||window.parent)){var g=e.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==
-a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(da){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?
-mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&l.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==
-g.action){var n=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),n,mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();
-l.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(da){l.postMessage(JSON.stringify({event:"draft",error:da.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();var p=1==g.enableRecent,q=1==g.enableSearch,u=1==g.enableCustomTemp,m=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;
-null!=g.callback?l.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,e,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,p?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",null,null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,
-function(a,b,c){l.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));m.init();return}if("textContent"==g.action){var x=this.getDiagramTextContent();l.postMessage(JSON.stringify({event:"textContent",data:x,message:g}),"*");return}if("status"==
-g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var v=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,v):this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||
-this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var A=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var z=this.editor.graph,G=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(A);l.postMessage(JSON.stringify(b),"*")}),C=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=
-this.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(A)));z!=this.editor.graph&&z.container.parentNode.removeChild(z.container);G(a)}),V=g.pageId||(null!=this.pages?this.pages[0].getId():null);if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage.getId()!=V){for(var aa=z.getGlobalVariable,z=this.createTemporaryGraph(z.getStylesheet()),W,H=0;H<this.pages.length;H++)if(this.pages[H].getId()==V){W=this.updatePageRoot(this.pages[H]);break}z.getGlobalVariable=function(a){return"page"==
-a?W.getName():"pagenumber"==a?1:aa.apply(this,arguments)};document.body.appendChild(z.container);z.model.setRoot(W.root)}if(null!=g.layerIds){for(var Z=z.model,fa=Z.getChildCells(Z.getRoot()),m={},H=0;H<g.layerIds.length;H++)m[g.layerIds[H]]=!0;for(H=0;H<fa.length;H++)Z.setVisible(fa[H],m[fa[H].id]||!1)}this.exportToCanvas(mxUtils.bind(this,function(a){C(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){C(null)}),null,null,g.scale,null,null,null,z)}else(new mxXmlRequest(EXPORT_URL,
-"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=V?"&pageId="+V:"")+(null!=g.layerIds?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(A))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?G("data:image/png;base64,"+a.getText()):C(null)}),mxUtils.bind(this,function(){C(null)}))}}else{null!=g.xml&&0<g.xml.length&&this.setFileData(g.xml);v=this.createLoadMessage("export");
-if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ma=this.getXmlFileData();v.xml=mxUtils.getXml(ma);v.data=this.getFileData(null,null,!0,null,null,null,ma);v.format=g.format}else if("html"==g.format)A=this.editor.getGraphXml(),v.data=this.getHtml(A,this.editor.graph),v.xml=mxUtils.getXml(A),v.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var M=this.editor.graph.background;M==mxConstants.NONE&&(M=null);v.xml=this.getFileData(!0,
-null,null,null,null,null,null,null,null,!1);v.format="svg";var ga=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(a);l.postMessage(JSON.stringify(v),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(v.xml,this.editor.graph,null,!0,ga,null,null,g.embedImages);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,
-null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);var T=this.editor.graph.getSvg(M);this.embedFonts(T,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.convertImages(a,mxUtils.bind(this,function(a){ga(mxUtils.getXml(a))})):ga(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(v),"*")}return}if("load"==g.action)d=1==g.autosave,this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&
-null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(n=document.createElement("span"),mxUtils.write(n,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(n),this.embedFilenameSpan=n),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==g.action?this.handleRemoteInvoke(g):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):l.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(da){this.handleError(da)}}var U=mxUtils.bind(this,function(e,g){c=!0;try{a(e,g)}catch(ba){this.handleError(ba)}c=
-!1;null!=urlParams.modified&&this.editor.setStatus("");var k=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});f=k();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=k();if(d!=f&&!c){var e=this.createLoadMessage("autosave");e.xml=d;d=JSON.stringify(e);(window.opener||window.parent).postMessage(d,"*")}f=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",
-b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||l.postMessage(JSON.stringify(this.createLoadMessage("load")),
-"*")});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){U(a,e)},mxUtils.bind(this,function(a){this.handleError(a)}),k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,
-function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&U(a.responseText,e)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){U(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=k(g),U(g,e))}}));var l=window.opener||window.parent,g="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";l.postMessage(g,"*")};EditorUi.prototype.addEmbedButtons=
-function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";"1"==urlParams.noSaveBtn?(mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
-a.appendChild(b)):(mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,
-"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.className="geBigButton geBigStandardButton";b.style.marginLeft="6px";b.style.marginRight="20px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);
-a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://about.draw.io/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
-EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var l in a[e].config)f[l]=a[e].config[l];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var l={},m=null,q=null,u=null,y=null,z=null,p=null,B=null,C=null,Q="",I="auto",S=
-"auto",F=null,G=null,P=40,V=40,aa=100,W=0,H=this.editor.graph;H.getGraphBounds();for(var Z=function(){null!=b?b(ka):(H.setSelectionCells(ka),H.scrollCellToVisible(H.getSelectionCell()))},fa=H.getFreeInsertPoint(),ma=fa.x,M=fa.y,fa=M,ga=null,T="auto",C=null,U=[],da=null,na=null,R=0;R<c.length&&"#"==c[R].charAt(0);){a=c[R];for(R++;R<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[R].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[R].substring(1)),R++;if("#"!=a.charAt(1)){var ba=a.indexOf(":");if(0<
-ba){var N=mxUtils.trim(a.substring(1,ba)),J=mxUtils.trim(a.substring(ba+1));"label"==N?ga=H.sanitizeHtml(J):"labelname"==N&&0<J.length&&"-"!=J?y=J:"labels"==N&&0<J.length&&"-"!=J?z=JSON.parse(J):"style"==N?m=J:"parentstyle"==N?p=J:"stylename"==N&&0<J.length&&"-"!=J?u=J:"styles"==N&&0<J.length&&"-"!=J?q=JSON.parse(J):"identity"==N&&0<J.length&&"-"!=J?B=J:"parent"==N&&0<J.length&&"-"!=J?C=J:"namespace"==N&&0<J.length&&"-"!=J?Q=J:"width"==N?I=J:"height"==N?S=J:"left"==N&&0<J.length?F=J:"top"==N&&0<J.length?
-G=J:"ignore"==N?na=J.split(","):"connect"==N?U.push(JSON.parse(J)):"link"==N?da=J:"padding"==N?W=parseFloat(J):"edgespacing"==N?P=parseFloat(J):"nodespacing"==N?V=parseFloat(J):"levelspacing"==N?aa=parseFloat(J):"layout"==N&&(T=J)}}}if(null==c[R])throw Error(mxResources.get("invalidOrMissingFile"));var ja=this.editor.csvToArray(c[R]),N=ba=null;if(null!=B||null!=C)for(var O=0;O<ja.length;O++)B==ja[O]&&(ba=O),C==ja[O]&&(N=O);null==ga&&(ga="%"+ja[0]+"%");if(null!=U)for(var X=0;X<U.length;X++)null==l[U[X].to]&&
-(l[U[X].to]={});H.model.beginUpdate();try{for(O=R+1;O<c.length;O++){var ha=this.editor.csvToArray(c[O]);if(null==ha){var la=40<c[O].length?c[O].substring(0,40)+"...":c[O];throw Error(O+" ("+la+") "+mxResources.get("containsValidationErrors"));}if(ha.length==ja.length){var L=null,oa=null!=ba?Q+ha[ba]:null;null!=oa&&(L=H.model.getCell(oa));var B=null!=L,ea=new mxCell(ga,new mxGeometry(ma,fa,0,0),m||"whiteSpace=wrap;html=1;");ea.vertex=!0;ea.id=oa;for(var ia=0;ia<ha.length;ia++)H.setAttributeForCell(ea,
-ja[ia],ha[ia]);if(null!=y&&null!=z){var Aa=z[ea.getAttribute(y)];null!=Aa&&H.labelChanged(ea,Aa)}if(null!=u&&null!=q){var Ba=q[ea.getAttribute(u)];null!=Ba&&(ea.style=Ba)}H.setAttributeForCell(ea,"placeholders","1");ea.style=H.replacePlaceholders(ea,ea.style);B&&(H.model.setGeometry(L,ea.geometry),H.model.setStyle(L,ea.style),0>mxUtils.indexOf(e,L)&&e.push(L));L=ea;if(!B)for(X=0;X<U.length;X++)l[U[X].to][L.getAttribute(U[X].to)]=L;null!=da&&"link"!=da&&(H.setLinkForCell(L,L.getAttribute(da)),H.setAttributeForCell(L,
-da,null));H.fireEvent(new mxEventObject("cellsInserted","cells",[L]));var za=this.editor.graph.getPreferredSizeForCell(L);L.vertex&&(null!=F&&null!=L.getAttribute(F)&&(L.geometry.x=ma+parseFloat(L.getAttribute(F))),null!=G&&null!=L.getAttribute(G)&&(L.geometry.y=M+parseFloat(L.getAttribute(G))),"@"==I.charAt(0)&&null!=L.getAttribute(I.substring(1))?L.geometry.width=parseFloat(L.getAttribute(I.substring(1))):L.geometry.width="auto"==I?za.width+W:parseFloat(I),"@"==S.charAt(0)&&null!=L.getAttribute(S.substring(1))?
-L.geometry.height=parseFloat(L.getAttribute(S.substring(1))):L.geometry.height="auto"==S?za.height+W:parseFloat(S),fa+=L.geometry.height+V);B?(null==f[oa]&&(f[oa]=[]),f[oa].push(L)):(C=null!=N?H.model.getCell(Q+ha[N]):null,d.push(L),null!=C?(C.style=H.replacePlaceholders(C,p),H.addCell(L,C)):e.push(H.addCell(L)))}}for(var pa=e.slice(),ka=e.slice(),X=0;X<U.length;X++)for(var ta=U[X],O=0;O<e.length;O++){var L=e[O],qa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d){H.setAttributeForCell(b,
-c.from,null);for(var d=d.split(","),e=0;e<d.length;e++){var f=l[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));ka.push(H.insertEdge(null,null,g||"",c.invert?f:a,c.invert?a:f,c.style||H.createCurrentEdgeStyle()));mxUtils.remove(c.invert?a:f,pa)}}}});qa(L,L,ta);if(null!=f[L.id])for(ia=0;ia<f[L.id].length;ia++)qa(L,f[L.id][ia],ta)}if(null!=na)for(O=0;O<d.length;O++)for(L=d[O],ia=0;ia<
-na.length;ia++)H.setAttributeForCell(L,mxUtils.trim(na[ia]),null);if(0<e.length){var ua=new mxParallelEdgeLayout(H);ua.spacing=P;var wa=function(){0<ua.spacing&&ua.execute(H.getDefaultParent());for(var a=0;a<e.length;a++){var b=H.getCellGeometry(e[a]);b.x=Math.round(H.snap(b.x));b.y=Math.round(H.snap(b.y));"auto"==I&&(b.width=Math.round(H.snap(b.width)));"auto"==S&&(b.height=Math.round(H.snap(b.height)))}};if("["==T.charAt(0)){var ra=Z;H.view.validate();this.executeLayoutList(JSON.parse(T),function(){wa();
-ra()});Z=null}else if("circle"==T){var Ca=new mxCircleLayout(H);Ca.resetEdges=!1;var Ma=Ca.isVertexIgnored;Ca.isVertexIgnored=function(a){return Ma.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ca.execute(H.getDefaultParent());wa()},!0,Z);Z=null}else if("horizontaltree"==T||"verticaltree"==T||"auto"==T&&ka.length==2*e.length-1&&1==pa.length){H.view.validate();var Da=new mxCompactTreeLayout(H,"horizontaltree"==T);Da.levelDistance=V;Da.edgeRouting=!1;Da.resetEdges=!1;
-this.executeLayout(function(){Da.execute(H.getDefaultParent(),0<pa.length?pa[0]:null)},!0,Z);Z=null}else if("horizontalflow"==T||"verticalflow"==T||"auto"==T&&1==pa.length){H.view.validate();var xa=new mxHierarchicalLayout(H,"horizontalflow"==T?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);xa.intraCellSpacing=V;xa.parallelEdgeSpacing=P;xa.interRankCellSpacing=aa;xa.disableEdgeStyle=!1;this.executeLayout(function(){xa.execute(H.getDefaultParent(),ka);H.moveCells(ka,ma,M)},!0,Z);Z=null}else if("organic"==
-T||"auto"==T&&ka.length>e.length){H.view.validate();var ya=new mxFastOrganicLayout(H);ya.forceConstant=3*V;ya.resetEdges=!1;var Ha=ya.isVertexIgnored;ya.isVertexIgnored=function(a){return Ha.apply(this,arguments)||0>mxUtils.indexOf(e,a)};ua=new mxParallelEdgeLayout(H);ua.spacing=P;this.executeLayout(function(){ya.execute(H.getDefaultParent());wa()},!0,Z);Z=null}}this.hideDialog()}finally{H.model.endUpdate()}null!=Z&&Z()}}catch(Ia){this.handleError(Ia)}};EditorUi.prototype.getSearch=function(a){var b=
-"";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
+try{var k=mxUtils.parseXml(a);a={};var n=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var m=n.getElementsByTagName("diagram");if(1==m.length)n=Editor.parseDiagramNode(m[0]),null!=this.currentPage&&(a[m[0].getAttribute("id")]=this.currentPage.getId());else if(1<m.length){var k=[],x=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[m[0].getAttribute("id")]=this.pages[0].getId(),n=Editor.parseDiagramNode(m[0]),
+f=!1,x=1);for(;x<m.length;x++){var q=m[x].getAttribute("id");m[x].removeAttribute("id");var p=this.updatePageRoot(new DiagramPage(m[x]));a[q]=m[x].getAttribute("id");var u=this.pages.length;null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[u+1]));e.model.execute(new ChangePage(this,p,p,u,!0));k.push(p)}this.updatePageLinks(a,k)}}if(null!=n&&"mxGraphModel"===n.nodeName)for(c=e.importGraphModel(n,b,d,f),x=0;x<c.length;x++)this.updatePageLinksForCell(a,c[x])}finally{e.model.endUpdate()}}}catch(L){if(l)throw L;
+this.handleError(L)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.getLabel(b);for(var f=c.getElementsByTagName("a"),l=!1,m=0;m<f.length;m++)e=f[m].getAttribute("href"),null!=e&&(f[m].setAttribute("href",
+this.updatePageLink(a,e)),l=!0);l&&d.labelChanged(b,c.innerHTML)}for(m=0;m<d.model.getChildCount(b);m++)this.updatePageLinksForCell(a,d.model.getChildAt(b,m))};EditorUi.prototype.updatePageLink=function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];null!=f.open&&"data:page/id,"==
+f.open.substring(0,13)&&(c=a[f.open.substring(f.open.indexOf(",")+1)],null!=c?f.open="data:page/id,"+c:delete f.open)}b="data:action/json,"+JSON.stringify(d)}}catch(A){}return b};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,f){f=null!=f?f:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=
+this.isRemoteVisioFormat(f);try{var e="UNKNOWN-VISIO",k=f.lastIndexOf(".");0<=k&&k<f.length&&(e=f.substring(k+1).toUpperCase());EditorUi.logEvent({category:e+"-MS-IMPORT-FILE",action:"filename_"+f,label:c?"remote":"local"})}catch(D){}if(c)if(null!=VSD_CONVERT_URL){c=new FormData;c.append("file1",a,f);var l=new XMLHttpRequest;l.open("POST",VSD_CONVERT_URL);l.responseType="blob";this.addRemoteServiceSecurityCheck(l);l.onreadystatechange=mxUtils.bind(this,function(){if(4==l.readyState)if(200<=l.status&&
+299>=l.status)try{var a=l.response;if("text/xml"==a.type){var c=new FileReader;c.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(p){d({message:mxResources.get("errorLoadingFile")})}});c.readAsText(a)}else this.doImportVisio(a,b,d,f)}catch(E){d(E)}else d({})});l.send(c)}else d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else try{this.doImportVisio(a,b,d,f)}catch(D){d(D)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});
+this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.importGraphML=function(a,b,d){d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,d)}catch(n){d(n)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||
+this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()||this.handleError({message:mxResources.get("unknownError")})}catch(e){this.handleError(e)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||
+this.loadingExtensions||this.isOffline(!0)?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(n){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(n){null!=window.console&&console.error(n),d(n)}}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});
+"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.generatePlantUmlImage=function(a,b,d,f){function c(a,c,b){c1=a>>2;c2=(a&3)<<4|c>>4;c3=(c&15)<<2|b>>6;c4=b&63;r="";r+=e(c1&63);r+=e(c2&63);r+=e(c3&63);return r+=e(c4&63)}function e(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+
+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"}var k=new XMLHttpRequest;k.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+c(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+c(a.charCodeAt(i),0,0):r+c(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(pako.deflateRaw(a,{to:"string"})),!0);"txt"!=b&&(k.responseType="blob");k.onload=function(a){if(200<=
+this.status&&300>this.status)if("txt"==b)d(this.response);else{var c=new FileReader;c.readAsDataURL(this.response);c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,e=b.height;if(0==a&&0==e){var k=c.result,g=k.indexOf(","),l=decodeURIComponent(escape(atob(k.substring(g+1)))),n=mxUtils.parseXml(l).getElementsByTagName("svg");0<n.length&&(a=parseFloat(n[0].getAttribute("width")),e=parseFloat(n[0].getAttribute("height")))}d(c.result,a,e)}catch(S){f(S)}};b.src=c.result};c.onerror=
+function(a){f(a)}}else f(a)};k.onerror=function(a){f(a)};k.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,f,l,g,m){g=null!=g?g:!0;m=null!=m?m:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var e=Editor.extractGraphModelFromPdf(a);if(null!=e&&
+0<e.length)return this.importXml(e,b,d,g,!0)}if("data:image/png;base64,"==a.substring(0,22)&&(e=this.extractGraphModelFromPng(a),null!=e&&0<e.length))return this.importXml(e,b,d,g,!0);if("data:image/svg+xml;"==a.substring(0,19))try{e=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(e=a.substring(a.indexOf(",")+1),e=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0)):e=decodeURIComponent(a.substring(a.indexOf(",")+1));var k=this.importXml(e,b,d,g,!0);if(0<k.length)return k}catch(y){}this.loadImage(a,
+mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),m,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),k=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,
+null,"",c.snap(b),c.snap(d),k,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var e=null;c.getModel().beginUpdate();try{e=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(f?"html=1;":"")),c.updateCellSize(e),c.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{c.getModel().endUpdate()}c.setSelectionCell(e)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));
+if(this.isCompatibleString(a))return this.importXml(a,b,d,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,g))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;l=null;c.getModel().beginUpdate();try{l=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(f?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[l])),"<"==a.charAt(0)&&
+a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"..."),l.value=a,c.updateCellSize(l),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i.test(l.value)&&c.setLinkForCell(l,l.value),l.geometry.width+=c.gridSize,l.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[l]}}return[]};
+EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=
+a&&('{"state":"{\\"Properties\\":'==a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=
+c}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){if(null!=b&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(b)){var c=new Blob([a],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,b)}else this.editor.graph.setSelectionCells(this.importXml(a,
+0,0,!0))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,d){var c=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==
+Object.keys(e.files).length)d();else{var f=0,k,g=!1;e.forEach(function(a,c){var e=c.name.toLowerCase();"diagram/diagram.xml"==e?(g=!0,c.async("string").then(function(a){0==a.indexOf("<mxfile ")?b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,k=c))});0<f?k.async("string").then(function(e){!c.isOffline()&&(new XMLHttpRequest).upload&&c.isRemoteFileFormat(e,a.name)?c.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=
+a.status&&299>=a.status?b(a.responseText):d())}),a.name):d()}):g||d()}},function(a){d(a)}):d()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,f,l,g,m,q,t,u,y){u=null!=u?u:!0;var c=!1,e=null,k=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):b=this.importXml(a,d,f,u);null!=q&&q(b)});"image"==
+b.substring(0,5)?(t=!1,"image/png"==b.substring(0,9)&&(b=y?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(e=this.importXml(b,d,f,u),t=!0)),t||(b=this.editor.graph,y=a.indexOf(";"),0<y&&(a=a.substring(0,y)+a.substring(a.indexOf(",",y+1))),u&&b.isGridEnabled()&&(d=b.snap(d),f=b.snap(f)),e=[b.insertVertex(null,null,"",d,f,l,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,
+this.importGraphML(a,k)):null!=t&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?(c=!0,this.importVisio(t,k)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(c=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?k(a.responseText):null!=q&&q(null))}),m)):0==a.indexOf("PK")&&null!=t?(c=!0,this.importZipFile(t,k,mxUtils.bind(this,function(){e=
+this.insertTextAt(this.validateFileData(a),d,f,!0,null,u);q(e)}))):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||(e=this.insertTextAt(this.validateFileData(a),d,f,!0,null,u));c||null==q||q(e);return e};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,f,g,l;c<d;){f=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<
+4);b+="==";break}g=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);b+="=";break}l=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
+3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(l&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return b};EditorUi.prototype.importFiles=function(a,b,d,f,l,g,m,q,t,u,y,z){b=null!=b?b:0;d=null!=d?d:0;f=null!=f?f:this.maxImageSize;u=null!=u?u:this.maxImageBytes;var c=null!=b&&null!=d,e=!0,k=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var n=y||this.resampleThreshold,x=0;x<a.length;x++)if("image/"==a[x].type.substring(0,
+6)&&a[x].size>n){k=!0;break}var v=mxUtils.bind(this,function(){var k=this.editor.graph,n=k.gridSize;l=null!=l?l:mxUtils.bind(this,function(a,b,d,e,f,g,k,l,n){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,l,n,c,z)}catch(R){return this.handleError(R),null}});g=null!=g?g:mxUtils.bind(this,function(a){k.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=
+a.length,t=p,x=[],v=mxUtils.bind(this,function(a,b){x[a]=b;if(0==--t){this.spinner.stop();if(null!=q)q(x);else{var c=[];k.getModel().beginUpdate();try{for(var d=0;d<x.length;d++){var e=x[d]();null!=e&&(c=c.concat(e))}}finally{k.getModel().endUpdate()}}g(c)}}),A=0;A<p;A++)mxUtils.bind(this,function(c){var g=a[c];if(null!=g){var p=new FileReader;p.onload=mxUtils.bind(this,function(a){if(null==m||m(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var p=a.target.result,t=p.indexOf(","),
+q=decodeURIComponent(escape(atob(p.substring(t+1)))),x=mxUtils.parseXml(q),q=x.getElementsByTagName("svg");if(0<q.length){var q=q[0],A=z?null:q.getAttribute("content");null!=A&&"<"!=A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null==A||"<mxfile "!==A.substring(0,8)&&"<mxGraphModel "!==A.substring(0,14)?v(c,mxUtils.bind(this,function(){try{if(p.substring(0,t+1),null!=x){var a=x.getElementsByTagName("svg");
+if(0<a.length){var e=a[0],m=e.getAttribute("width"),q=e.getAttribute("height"),m=null!=m&&"%"!=m.charAt(m.length-1)?parseFloat(m):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,y=e.getAttribute("viewBox");if(null==y||0==y.length)e.setAttribute("viewBox","0 0 "+m+" "+q);else if(isNaN(m)||isNaN(q)){var v=y.split(" ");3<v.length&&(m=parseFloat(v[2]),q=parseFloat(v[3]))}p=this.createSvgDataUri(mxUtils.getXml(e));var A=Math.min(1,Math.min(f/Math.max(1,m)),f/Math.max(1,q)),u=l(p,g.type,b+c*
+n,d+c*n,Math.max(1,Math.round(m*A)),Math.max(1,Math.round(q*A)),g.name);if(isNaN(m)||isNaN(q)){var B=new Image;B.onload=mxUtils.bind(this,function(){m=Math.max(1,B.width);q=Math.max(1,B.height);u[0].geometry.width=m;u[0].geometry.height=q;e.setAttribute("viewBox","0 0 "+m+" "+q);p=this.createSvgDataUri(mxUtils.getXml(e));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));k.setCellStyles("image",p,[u[0]])});B.src=this.createSvgDataUri(mxUtils.getXml(e))}return u}}}catch(ea){}return null})):
+v(c,mxUtils.bind(this,function(){return l(A,"text/xml",b+c*n,d+c*n,0,0,g.name)}))}else v(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==g.type){var B=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var G=new Image;G.src=a.target.result;v(c,mxUtils.bind(this,function(){return l(B,"text/xml",b+c*n,d+c*n,G.width,G.height,g.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),
+mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(k){this.resizeImage(k,a.target.result,mxUtils.bind(this,function(k,m,p){v(c,mxUtils.bind(this,function(){if(null!=k&&k.length<u){var t=e&&this.isResampleImage(a.target.result,y)?Math.min(1,Math.min(f/m,f/p)):1;return l(k,g.type,b+c*n,d+c*n,Math.round(m*t),Math.round(p*t),g.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),e,f,y)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=a.target.result,l(p,g.type,b+c*n,d+c*n,240,160,g.name,function(a){v(c,function(){return a})},g)});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?l(null,g.type,b+c*n,d+c*n,240,160,g.name,function(a){v(c,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?p.readAsDataURL(g):p.readAsText(g)}})(A)});if(k){k=[];
+for(x=0;x<a.length;x++)k.push(a[x]);a=k;this.confirmImageResize(function(a){e=a;v()},t)}else v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
+function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",
+OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(g){}};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,f,l,g){l=null!=l?l:this.maxImageSize;var c=Math.max(1,a.width),e=Math.max(1,a.height);if(f&&this.isResampleImage(b,g))try{var k=Math.max(c/l,e/l);if(1<k){var n=Math.round(c/k),m=Math.round(e/k),q=document.createElement("canvas");
+q.width=n;q.height=m;q.getContext("2d").drawImage(a,0,0,n,m);var p=q.toDataURL();if(p.length<b.length){var x=document.createElement("canvas");x.width=n;x.height=m;var u=x.toDataURL();p!==u&&(b=p,c=n,e=m)}}}catch(P){}d(b,c,e)};EditorUi.prototype.crcTable=[];for(var d=0;256>d;d++)for(var l=d,m=0;8>m;m++)l=1==(l&1)?3988292384^l>>>1:l>>>1,EditorUi.prototype.crcTable[d]=l;EditorUi.prototype.updateCRC=function(a,b,d,f){for(var c=0;c<f;c++)a=EditorUi.prototype.crcTable[(a^b.charCodeAt(d+c))&255]^a>>>8;return a};
+EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,f,l){function c(a,b){var c=n;n+=b;return a.substring(c,n)}function e(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+
+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=l&&l();else if(c(a,4),"IHDR"!=c(a,4))null!=l&&l();else{c(a,17);l=a.substring(0,n);do{var m=e(a);if("IDAT"==c(a,4)){l=a.substring(0,n-8);"pHYs"==b&&"dpi"==d?(d=Math.round(f/.0254),d=k(d)+k(d)+String.fromCharCode(1)):d=d+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+f;f=4294967295;f=this.updateCRC(f,b,0,4);f=this.updateCRC(f,d,0,d.length);l+=k(d.length)+
+b+d+k(f^4294967295);l+=a.substring(n-8,a.length);break}l+=a.substring(n-8,n-4+m);c(a,m);c(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(l):Base64.encode(l,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a}catch(n){if(null!=d)d(n);else throw n;}};var q=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=
+mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph,d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=f){var g=JSON.parse(f),f=new TextareaDialog(a,mxResources.get("plantUml")+":",g.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,g.format,
+function(e,f,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==g.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=f,l.height=k,b.cellsResized([c],[l],!1))}b.setAttributeForCell(c,"plantUmlData",JSON.stringify({data:d,format:g.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(f.container,420,300,!0,!0);
+f.init()}else d.apply(this,arguments)};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(L){a.handleError(L)}return c};var f=this.clearDefaultStyle;this.clearDefaultStyle=function(){f.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var l=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=
+function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");return l.apply(this,arguments)};var g=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||
+!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};g.call(this,a,c,d)};q.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var m=b.getExportVariables;b.getExportVariables=function(){var b=m.apply(this,arguments);
+b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return b};var v=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:"pagecount"==b?null!=a.pages?a.pages.length:1:v.apply(this,arguments)};var t=b.labelLinkClicked;
+b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))t.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var u=this.actions.get("print");u.setEnabled(!mxClient.IS_IOS||
+!navigator.standalone);u.visible=u.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"find"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(this.altShiftActions[83]=
+"synchronize"),this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();
+a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,
+6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",
+!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(u=this.editor.graph.view,u.setUnit(mxSettings.getUnit()),u.addListener("unitChanged",function(a,b){mxSettings.setUnit(b.getProperty("unit"));
+mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,u.unit),this.refresh());if("1"==urlParams.styledev){u=document.getElementById("geFooter");null!=u&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left=
+"2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),u.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),
+c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var y=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:y.apply(this,arguments)}}u=document.getElementById("geInfo");null!=u&&u.parentNode.removeChild(u);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var z=null;mxEvent.addListener(b.container,"dragleave",
+function(a){b.isEnabled()&&(null!=z&&(z.parentNode.removeChild(z),z=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==z&&(!mxClient.IS_IE||10<document.documentMode)&&(z=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=z&&(z.parentNode.removeChild(z),z=null);if(b.isEnabled()){var c=
+mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);
+if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var l=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=l;var n=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(n=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(l=c[0].getAttribute("href")));var m=!0,p=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(l,
+f,g,!0,n,null,m))});n&&l.length>this.resampleThreshold?this.confirmImageResize(function(a){m=a;p()},mxEvent.isControlDown(a)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",
+mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b))try{for(var c=b.clipboardData||b.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var l=f[index];if("file"===l.kind){if(a.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(b,c,d,e,f,g){a.insertImage(b,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var m=
+this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],m.x,m.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(t){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML="&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck",
+"false");d.style.textRendering="optimizeSpeed";d.style.fontFamily="monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,
+null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||f||(d.style.left=b.container.scrollLeft+10+"px",d.style.top=b.container.scrollTop+10+"px",b.container.appendChild(d),
+f=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){d.focus();document.execCommand("selectAll",!1,null)},0):(d.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!f||224!=c&&17!=c&&91!=c||(f=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,
+"copy",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d),a()}catch(A){this.handleError(A)}}));mxEvent.addListener(d,"cut",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d,!0),a()}catch(A){this.handleError(A)}}));mxEvent.addListener(d,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&((new Date).getTime(),d.innerHTML="&nbsp;",d.focus(),null!=a.clipboardData&&this.pasteCells(a,d,!0),
+mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,d,!1)}),0))}),!0);var l=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==d?!0:l.apply(this,arguments)}};EditorUi.prototype.getLinkTitle=function(a){var b=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");0<c&&(b=this.getPageById(a.substring(c+1)),b=null!=b?b.getName():mxResources.get("pageNotFound"))}else"data:"==
+a.substring(0,5)&&(b=mxResources.get("action"));return b};EditorUi.prototype.handleCustomLink=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");if(a=this.getPageById(a.substring(b+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=
+function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(a){a.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(c){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
+mxUtils.bind(this,function(a,b){mxSettings.setCustomFonts(this.menus.customFonts);mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",
+mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor("dark"==uiTheme);this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor,"dark"==uiTheme);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);
+mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save());this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;
+if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b,d){if(!mxEvent.isConsumed(a)){var c=b;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var e=a.clipboardData.getData("text/html");
+if(null!=e&&0<e.length){if(c=document.createElement("div"),c.innerHTML=e,e=c.getElementsByTagName("style"),null!=e)for(;0<e.length;)e[0].parentNode.removeChild(e[0])}else e=a.clipboardData.getData("text/plain"),null!=e&&0<e.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,e))}e=c.getElementsByTagName("span");if(null!=e&&0<e.length&&"application/vnd.lucid.chart.objects"===e[0].getAttribute("data-lucid-type"))d=e[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,
+mxUtils.bind(this,function(a){var b=this.editor.graph;b.lastPasteXml==a?b.pasteCounter++:(b.lastPasteXml=a,b.pasteCounter=0);var c=b.pasteCounter*b.gridSize;b.setSelectionCells(this.importXml(a,c,c));b.scrollCellToVisible(b.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{var f=mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText),k=!1;try{var l=f.lastIndexOf("%3E");0<=l&&l<f.length-3&&(f=f.substring(0,l+3))}catch(p){}try{var e=c.getElementsByTagName("span"),
+m=null!=e&&0<e.length?mxUtils.trim(decodeURIComponent(e[0].textContent)):decodeURIComponent(f);this.isCompatibleString(m)&&(k=!0,f=m)}catch(p){}try{var q=this.editor.graph;if(null!=f&&0<f.length){q.lastPasteXml==f?q.pasteCounter++:(q.lastPasteXml=f,q.pasteCounter=0);var y=q.pasteCounter*q.gridSize;if(k||this.isCompatibleString(f))q.setSelectionCells(this.importXml(f,y,y));else{var u=q.getInsertPoint();q.isMouseInsertPoint()&&(y=0,q.lastPasteXml==f&&0<q.pasteCounter&&q.pasteCounter--);q.setSelectionCells(this.insertTextAt(f,
+u.x+y,u.y+y,!0))}q.isSelectionEmpty()||(q.scrollCellToVisible(q.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(q.view.getState(q.getSelectionCell())));try{mxEvent.consume(a)}catch(p){}}else d||(q.lastPasteXml=null,q.pasteCounter=0)}catch(p){this.handleError(p)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);
+a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),
+"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,
+"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,
+function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,f;if(null==a){f=document.body;
+var g=document.documentElement;d=(f.clientWidth||g.clientWidth)-3;f=Math.max(f.clientHeight||0,g.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,f=a.clientHeight;g=document.createElement("div");g.style.zIndex=mxPopupMenu.prototype.zIndex+2;g.style.border="3px dotted rgb(254, 137, 12)";g.style.pointerEvents="none";g.style.position="absolute";g.style.top=b+"px";g.style.left=c+"px";g.style.width=Math.max(0,d-3)+"px";g.style.height=Math.max(0,f-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?
+this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
+0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{var d=c.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)?e=e.substring(0,e.length-4)+".drawio":/(\.pdf)$/i.test(e)&&(e=e.substring(0,e.length-4)+".drawio");var f=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".drawio":e+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&
+this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(E){this.handleError(E,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(/(\.*<graphml )/.test(d))this.importGraphML(d,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&
+(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?f(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(d))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".drawio"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,
+e,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,c.target.result,a.name))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else if(0==d.indexOf("PK"))this.importZipFile(a,mxUtils.bind(this,function(a){this.spinner.stop();
+f(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(d,e,b)}));else{if("image/png"==a.type.substring(0,9))d=this.extractGraphModelFromPng(d);else if("application/pdf"==a.type){var g=Editor.extractGraphModelFromPdf(d);null!=g&&(d=g)}this.spinner.stop();this.openLocalFile(d,e,b)}}}catch(y){this.handleError(y)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===
+a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d){var c=this.getCurrentFile(),e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d))});if(null!=a&&0<a.length)null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||
+EditorUi.isElectronApp)?e():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):
+e()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));
+null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=
+a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=a?"":"hidden",this.ruler.vRuler.container.style.visibility=a?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=a?"":"hidden");a||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&
+this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,d){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);
+null!=a&&0<a.length?(this.setFileData(a),this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<
+this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,
+page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,f=null,g=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,g);mxEvent.addListener(window,"message",mxUtils.bind(this,function(e){if(e.source==(window.opener||window.parent)){var g=
+e.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(da){g=null}try{if(null==
+g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&l.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},
+null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var n=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),n,mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),
+g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(da){l.postMessage(JSON.stringify({event:"draft",error:da.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();var p=
+1==g.enableRecent,q=1==g.enableSearch,u=1==g.enableCustomTemp,m=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?l.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,e,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,p?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",null,null,a,function(){a(null,"Network Error!")})}):
+null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){l.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));m.init();return}if("textContent"==
+g.action){var x=this.getDiagramTextContent();l.postMessage(JSON.stringify({event:"textContent",data:x,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var v=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,
+v):this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var A=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var z=this.editor.graph,G=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(A);
+l.postMessage(JSON.stringify(b),"*")}),C=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(A)));z!=this.editor.graph&&z.container.parentNode.removeChild(z.container);G(a)}),V=g.pageId||(null!=this.pages?this.pages[0].getId():null);if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage.getId()!=V){for(var aa=z.getGlobalVariable,z=this.createTemporaryGraph(z.getStylesheet()),W,H=0;H<this.pages.length;H++)if(this.pages[H].getId()==
+V){W=this.updatePageRoot(this.pages[H]);break}z.getGlobalVariable=function(a){return"page"==a?W.getName():"pagenumber"==a?1:aa.apply(this,arguments)};document.body.appendChild(z.container);z.model.setRoot(W.root)}if(null!=g.layerIds){for(var Z=z.model,fa=Z.getChildCells(Z.getRoot()),m={},H=0;H<g.layerIds.length;H++)m[g.layerIds[H]]=!0;for(H=0;H<fa.length;H++)Z.setVisible(fa[H],m[fa[H].id]||!1)}this.exportToCanvas(mxUtils.bind(this,function(a){C(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,
+function(){C(null)}),null,null,g.scale,null,null,null,z)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=V?"&pageId="+V:"")+(null!=g.layerIds?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(A))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?G("data:image/png;base64,"+a.getText()):C(null)}),mxUtils.bind(this,function(){C(null)}))}}else{null!=
+g.xml&&0<g.xml.length&&this.setFileData(g.xml);v=this.createLoadMessage("export");if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ma=this.getXmlFileData();v.xml=mxUtils.getXml(ma);v.data=this.getFileData(null,null,!0,null,null,null,ma);v.format=g.format}else if("html"==g.format)A=this.editor.getGraphXml(),v.data=this.getHtml(A,this.editor.graph),v.xml=mxUtils.getXml(A),v.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var Q=this.editor.graph.background;
+Q==mxConstants.NONE&&(Q=null);v.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);v.format="svg";var ga=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(a);l.postMessage(JSON.stringify(v),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(v.xml,this.editor.graph,null,!0,ga,null,null,g.embedImages);else if(null==
+g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);var T=this.editor.graph.getSvg(Q);this.embedFonts(T,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.convertImages(a,mxUtils.bind(this,function(a){ga(mxUtils.getXml(a))})):ga(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(v),"*")}return}if("load"==g.action)d=1==g.autosave,this.hideDialog(),null!=g.modified&&null==urlParams.modified&&
+(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(n=document.createElement("span"),mxUtils.write(n,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&
+this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(n),this.embedFilenameSpan=n),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==g.action?this.handleRemoteInvoke(g):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):l.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(da){this.handleError(da)}}var U=
+mxUtils.bind(this,function(e,g){c=!0;try{a(e,g)}catch(ba){this.handleError(ba)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var k=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});f=k();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=k();if(d!=f&&!c){var e=this.createLoadMessage("autosave");e.xml=d;d=JSON.stringify(e);(window.opener||window.parent).postMessage(d,"*")}f=d}),
+this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",
+b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||l.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){U(a,e)},mxUtils.bind(this,function(a){this.handleError(a)}),k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&U(a.responseText,e)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){U(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=k(g),U(g,e))}}));var l=window.opener||window.parent,g="json"==urlParams.proto?
+JSON.stringify({event:"init"}):urlParams.ready||"ready";l.postMessage(g,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";"1"==urlParams.noSaveBtn?(mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",
+mxResources.get("saveAndExit")),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)):(mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",
+mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.className="geBigButton geBigStandardButton";b.style.marginLeft="6px";b.style.marginRight="20px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));
+a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://about.draw.io/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,
+640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var l in a[e].config)f[l]=a[e].config[l];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var l={},m=null,
+q=null,u=null,y=null,z=null,p=null,B=null,C=null,P="",I="auto",S="auto",F=null,G=null,O=40,V=40,aa=100,W=0,H=this.editor.graph;H.getGraphBounds();for(var Z=function(){null!=b?b(ka):(H.setSelectionCells(ka),H.scrollCellToVisible(H.getSelectionCell()))},fa=H.getFreeInsertPoint(),ma=fa.x,Q=fa.y,fa=Q,ga=null,T="auto",C=null,U=[],da=null,na=null,R=0;R<c.length&&"#"==c[R].charAt(0);){a=c[R];for(R++;R<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[R].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[R].substring(1)),
+R++;if("#"!=a.charAt(1)){var ba=a.indexOf(":");if(0<ba){var M=mxUtils.trim(a.substring(1,ba)),J=mxUtils.trim(a.substring(ba+1));"label"==M?ga=H.sanitizeHtml(J):"labelname"==M&&0<J.length&&"-"!=J?y=J:"labels"==M&&0<J.length&&"-"!=J?z=JSON.parse(J):"style"==M?m=J:"parentstyle"==M?p=J:"stylename"==M&&0<J.length&&"-"!=J?u=J:"styles"==M&&0<J.length&&"-"!=J?q=JSON.parse(J):"identity"==M&&0<J.length&&"-"!=J?B=J:"parent"==M&&0<J.length&&"-"!=J?C=J:"namespace"==M&&0<J.length&&"-"!=J?P=J:"width"==M?I=J:"height"==
+M?S=J:"left"==M&&0<J.length?F=J:"top"==M&&0<J.length?G=J:"ignore"==M?na=J.split(","):"connect"==M?U.push(JSON.parse(J)):"link"==M?da=J:"padding"==M?W=parseFloat(J):"edgespacing"==M?O=parseFloat(J):"nodespacing"==M?V=parseFloat(J):"levelspacing"==M?aa=parseFloat(J):"layout"==M&&(T=J)}}}if(null==c[R])throw Error(mxResources.get("invalidOrMissingFile"));var ja=this.editor.csvToArray(c[R]),M=ba=null;if(null!=B||null!=C)for(var N=0;N<ja.length;N++)B==ja[N]&&(ba=N),C==ja[N]&&(M=N);null==ga&&(ga="%"+ja[0]+
+"%");if(null!=U)for(var X=0;X<U.length;X++)null==l[U[X].to]&&(l[U[X].to]={});H.model.beginUpdate();try{for(N=R+1;N<c.length;N++){var ha=this.editor.csvToArray(c[N]);if(null==ha){var la=40<c[N].length?c[N].substring(0,40)+"...":c[N];throw Error(N+" ("+la+") "+mxResources.get("containsValidationErrors"));}if(ha.length==ja.length){var K=null,oa=null!=ba?P+ha[ba]:null;null!=oa&&(K=H.model.getCell(oa));var B=null!=K,ea=new mxCell(ga,new mxGeometry(ma,fa,0,0),m||"whiteSpace=wrap;html=1;");ea.vertex=!0;
+ea.id=oa;for(var ia=0;ia<ha.length;ia++)H.setAttributeForCell(ea,ja[ia],ha[ia]);if(null!=y&&null!=z){var Aa=z[ea.getAttribute(y)];null!=Aa&&H.labelChanged(ea,Aa)}if(null!=u&&null!=q){var Ba=q[ea.getAttribute(u)];null!=Ba&&(ea.style=Ba)}H.setAttributeForCell(ea,"placeholders","1");ea.style=H.replacePlaceholders(ea,ea.style);B&&(H.model.setGeometry(K,ea.geometry),H.model.setStyle(K,ea.style),0>mxUtils.indexOf(e,K)&&e.push(K));K=ea;if(!B)for(X=0;X<U.length;X++)l[U[X].to][K.getAttribute(U[X].to)]=K;null!=
+da&&"link"!=da&&(H.setLinkForCell(K,K.getAttribute(da)),H.setAttributeForCell(K,da,null));H.fireEvent(new mxEventObject("cellsInserted","cells",[K]));var za=this.editor.graph.getPreferredSizeForCell(K);K.vertex&&(null!=F&&null!=K.getAttribute(F)&&(K.geometry.x=ma+parseFloat(K.getAttribute(F))),null!=G&&null!=K.getAttribute(G)&&(K.geometry.y=Q+parseFloat(K.getAttribute(G))),"@"==I.charAt(0)&&null!=K.getAttribute(I.substring(1))?K.geometry.width=parseFloat(K.getAttribute(I.substring(1))):K.geometry.width=
+"auto"==I?za.width+W:parseFloat(I),"@"==S.charAt(0)&&null!=K.getAttribute(S.substring(1))?K.geometry.height=parseFloat(K.getAttribute(S.substring(1))):K.geometry.height="auto"==S?za.height+W:parseFloat(S),fa+=K.geometry.height+V);B?(null==f[oa]&&(f[oa]=[]),f[oa].push(K)):(C=null!=M?H.model.getCell(P+ha[M]):null,d.push(K),null!=C?(C.style=H.replacePlaceholders(C,p),H.addCell(K,C)):e.push(H.addCell(K)))}}for(var pa=e.slice(),ka=e.slice(),X=0;X<U.length;X++)for(var ta=U[X],N=0;N<e.length;N++){var K=
+e[N],qa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d){H.setAttributeForCell(b,c.from,null);for(var d=d.split(","),e=0;e<d.length;e++){var f=l[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));ka.push(H.insertEdge(null,null,g||"",c.invert?f:a,c.invert?a:f,c.style||H.createCurrentEdgeStyle()));mxUtils.remove(c.invert?a:f,pa)}}}});qa(K,K,ta);if(null!=f[K.id])for(ia=
+0;ia<f[K.id].length;ia++)qa(K,f[K.id][ia],ta)}if(null!=na)for(N=0;N<d.length;N++)for(K=d[N],ia=0;ia<na.length;ia++)H.setAttributeForCell(K,mxUtils.trim(na[ia]),null);if(0<e.length){var ua=new mxParallelEdgeLayout(H);ua.spacing=O;var wa=function(){0<ua.spacing&&ua.execute(H.getDefaultParent());for(var a=0;a<e.length;a++){var b=H.getCellGeometry(e[a]);b.x=Math.round(H.snap(b.x));b.y=Math.round(H.snap(b.y));"auto"==I&&(b.width=Math.round(H.snap(b.width)));"auto"==S&&(b.height=Math.round(H.snap(b.height)))}};
+if("["==T.charAt(0)){var ra=Z;H.view.validate();this.executeLayoutList(JSON.parse(T),function(){wa();ra()});Z=null}else if("circle"==T){var Ca=new mxCircleLayout(H);Ca.resetEdges=!1;var Ma=Ca.isVertexIgnored;Ca.isVertexIgnored=function(a){return Ma.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ca.execute(H.getDefaultParent());wa()},!0,Z);Z=null}else if("horizontaltree"==T||"verticaltree"==T||"auto"==T&&ka.length==2*e.length-1&&1==pa.length){H.view.validate();var Da=
+new mxCompactTreeLayout(H,"horizontaltree"==T);Da.levelDistance=V;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(H.getDefaultParent(),0<pa.length?pa[0]:null)},!0,Z);Z=null}else if("horizontalflow"==T||"verticalflow"==T||"auto"==T&&1==pa.length){H.view.validate();var xa=new mxHierarchicalLayout(H,"horizontalflow"==T?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);xa.intraCellSpacing=V;xa.parallelEdgeSpacing=O;xa.interRankCellSpacing=aa;xa.disableEdgeStyle=!1;this.executeLayout(function(){xa.execute(H.getDefaultParent(),
+ka);H.moveCells(ka,ma,Q)},!0,Z);Z=null}else if("organic"==T||"auto"==T&&ka.length>e.length){H.view.validate();var ya=new mxFastOrganicLayout(H);ya.forceConstant=3*V;ya.resetEdges=!1;var Ha=ya.isVertexIgnored;ya.isVertexIgnored=function(a){return Ha.apply(this,arguments)||0>mxUtils.indexOf(e,a)};ua=new mxParallelEdgeLayout(H);ua.spacing=O;this.executeLayout(function(){ya.execute(H.getDefaultParent());wa()},!0,Z);Z=null}}this.hideDialog()}finally{H.model.endUpdate()}null!=Z&&Z()}}catch(Ia){this.handleError(Ia)}};
+EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d){a=new LinkDialog(this,a,b,d,!0);this.showDialog(a.container,560,130,!0,!0);a.init()};var u=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=u.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var f=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*
b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return f.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/
@@ -3325,7 +3331,7 @@ var C=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=thi
"svg",mxUtils.getXml(c.getSvg(f,l,g)),"image/svg+xml");else{var e=a.getFileData(!0,null,null,null,null,!0),k=c.getGraphBounds(),n=Math.floor(k.width*l/c.view.scale),q=Math.floor(k.height*l/c.view.scale);if(e.length<=MAX_REQUEST_SIZE&&n*q<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var p={globalVars:c.getExportVariables()};a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):
"")+"&extras="+encodeURIComponent(JSON.stringify(p))+(0<m?"&dpi="+m:"")+"&bg="+(null!=f?f:"none")+"&w="+n+"&h="+q+"&border="+g+"&xml="+encodeURIComponent(e))})}else"png"==d?a.exportImage(l,null==f||"none"==f,!0,!1,!1,g,!0,!1,null,null,m):a.exportImage(l,!1,!0,!1,!1,g,!0,!1,"jpeg");else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=this.pages)for(var d=0;d<this.pages.length;d++){var f=
a;this.currentPage!=this.pages[d]&&(f=this.createTemporaryGraph(a.getStylesheet()),f.model.setRoot(this.pages[d].root));b+=this.pages[d].getName()+" "+f.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";
-c.appendChild(d);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="/images/spin.gif"></div>';var g={};try{var l=mxSettings.getCustomLibraries();for(a=0;a<l.length;a++){var m=l[a];if("R"==m.substring(0,1)){var q=JSON.parse(decodeURIComponent(m.substring(1)));g[q[0]]={id:q[0],title:q[1],downloadUrl:q[2]}}}}catch(E){}this.remoteInvoke("getCustomLibraries",null,null,function(a){f.innerHTML=
+c.appendChild(d);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="/images/spin.gif"></div>';var g={};try{var l=mxSettings.getCustomLibraries();for(a=0;a<l.length;a++){var m=l[a];if("R"==m.substring(0,1)){var q=JSON.parse(decodeURIComponent(m.substring(1)));g[q[0]]={id:q[0],title:q[1],downloadUrl:q[2]}}}}catch(D){}this.remoteInvoke("getCustomLibraries",null,null,function(a){f.innerHTML=
"";if(0==a.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];g[d.id]&&(b[d.id]=d);var e=this.addCheckbox(f,d.title,g[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,e)}},mxUtils.bind(this,function(a){f.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,
mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));f.appendChild(b)}));c.appendChild(f);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==g[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(B){this.handleError(B,
mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in g)b[c]||this.closeLibrary(new RemoteLibrary(this,null,g[c]));0==a&&this.spinner.stop()}),null,null,"https://desk.draw.io/support/solutions/articles/16000092763");this.showDialog(c.container,340,375,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1}};EditorUi.prototype.remoteInvokeCallbacks=
@@ -3336,28 +3342,28 @@ f.push(function(a){b(null,a||"Unkown Error")}),this[c].apply(this,f);else{var g=
function(){var a=this.getCurrentFile();return null!=a?a.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(a,b){var c=this.getCurrentFile();null!=c?c.getComments(a,b):a([])};EditorUi.prototype.addComment=function(a,b,d){var c=this.getCurrentFile();null!=c?c.addComment(a,b,d):b(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var a=this.getCurrentFile();return null!=a?a.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var a=this.getCurrentFile();return null!=
a?a.canComment():!0};EditorUi.prototype.newComment=function(a,b){var c=this.getCurrentFile();return null!=c?c.newComment(a,b):new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};EditorUi.prototype.isRevisionHistorySupported=function(){var a=this.getCurrentFile();return null!=a&&a.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(a,b){var c=this.getCurrentFile();null!=c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=
function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")}})();
-var CommentsWindow=function(a,b,f,d,l,m){function q(){for(var a=t.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==t&&b++;E.style.display=0==b?"block":"none"}function u(a,b,c,d){function e(){b.removeChild(l);b.removeChild(m);k.style.display="block";f.style.display="block"}g={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),k=b.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+var CommentsWindow=function(a,b,f,d,l,m){function q(){for(var a=t.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==t&&b++;D.style.display=0==b?"block":"none"}function u(a,b,c,d){function e(){b.removeChild(l);b.removeChild(m);k.style.display="block";f.style.display="block"}g={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),k=b.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=f.offsetHeight+"px";l.value=a.content;b.insertBefore(l,f);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),q()):e();g=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=l.value;mxUtils.write(f,a.content);e();c(a);g=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(p.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);b.insertBefore(m,f);k.style.display="none";f.style.display="none";l.focus()}function z(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function C(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function c(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function e(a){a.style.border="";a.removeChild(a.busyImg)}function k(b,d,f,l,m){function y(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
-"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});I.appendChild(e);d&&(e.style.display="none")}function v(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=B;a(b);return{pdiv:d,replies:c}}function A(d,f,g,m,q){function n(){C(x);b.addReply(t,function(a){t.id=a;b.replies.push(t);e(x);g&&g()},function(b){p();c(x);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,q)}function p(){u(t,x,function(a){n()},!0)}var y=v().pdiv,t=a.newComment(d,a.getCurrentUser());t.pCommentId=b.id;null==b.replies&&(b.replies=[]);var x=k(t,b.replies,y,l+1);f?p():n()}if(m||!b.isResolved){E.style.display="none";var B=document.createElement("div");B.className="geCommentContainer";B.setAttribute("data-commentId",b.id);B.style.marginLeft=20*l+5+"px";b.isResolved&&"dark"!=uiTheme&&(B.style.backgroundColor="ghostWhite");
-var G=document.createElement("div");G.className="geCommentHeader";var D=document.createElement("img");D.className="geCommentUserImg";D.src=b.user.pictureUrl||Editor.userImage;G.appendChild(D);D=document.createElement("div");D.className="geCommentHeaderTxt";G.appendChild(D);var P=document.createElement("div");P.className="geCommentUsername";mxUtils.write(P,b.user.displayName||"");D.appendChild(P);P=document.createElement("div");P.className="geCommentDate";P.setAttribute("data-commentId",b.id);z(b,
-P);D.appendChild(P);B.appendChild(G);G=document.createElement("div");G.className="geCommentTxt";mxUtils.write(G,b.content||"");B.appendChild(G);G=document.createElement("div");G.className="geCommentActions";var I=document.createElement("ul");I.className="geCommentActionsList";G.appendChild(I);x||0!=l&&!n||y(mxResources.get("reply"),function(){A("",!0)},b.isResolved);D=a.getCurrentUser();null==D||D.id!=b.user.id||x||(y(mxResources.get("edit"),function(){function d(){u(b,B,function(){C(B);b.editComment(b.content,
-function(){e(B)},function(b){c(B);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),y(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){C(B);b.deleteComment(function(){for(var a=v(b).replies,c=0;c<a.length;c++)t.removeChild(a[c]);for(c=0;c<d.length;c++)if(d[c]==b){d.splice(c,1);break}E.style.display=0==t.getElementsByTagName("div").length?"block":"none"},function(b){c(B);a.handleError(b,null,null,
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});I.appendChild(e);d&&(e.style.display="none")}function v(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=B;a(b);return{pdiv:d,replies:c}}function A(d,f,g,m,n){function q(){C(x);b.addReply(t,function(a){t.id=a;b.replies.push(t);e(x);g&&g()},function(b){p();c(x);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,n)}function p(){u(t,x,function(a){q()},!0)}var y=v().pdiv,t=a.newComment(d,a.getCurrentUser());t.pCommentId=b.id;null==b.replies&&(b.replies=[]);var x=k(t,b.replies,y,l+1);f?p():q()}if(m||!b.isResolved){D.style.display="none";var B=document.createElement("div");B.className="geCommentContainer";B.setAttribute("data-commentId",b.id);B.style.marginLeft=20*l+5+"px";b.isResolved&&"dark"!=uiTheme&&(B.style.backgroundColor="ghostWhite");
+var G=document.createElement("div");G.className="geCommentHeader";var E=document.createElement("img");E.className="geCommentUserImg";E.src=b.user.pictureUrl||Editor.userImage;G.appendChild(E);E=document.createElement("div");E.className="geCommentHeaderTxt";G.appendChild(E);var O=document.createElement("div");O.className="geCommentUsername";mxUtils.write(O,b.user.displayName||"");E.appendChild(O);O=document.createElement("div");O.className="geCommentDate";O.setAttribute("data-commentId",b.id);z(b,
+O);E.appendChild(O);B.appendChild(G);G=document.createElement("div");G.className="geCommentTxt";mxUtils.write(G,b.content||"");B.appendChild(G);G=document.createElement("div");G.className="geCommentActions";var I=document.createElement("ul");I.className="geCommentActionsList";G.appendChild(I);x||0!=l&&!n||y(mxResources.get("reply"),function(){A("",!0)},b.isResolved);E=a.getCurrentUser();null==E||E.id!=b.user.id||x||(y(mxResources.get("edit"),function(){function d(){u(b,B,function(){C(B);b.editComment(b.content,
+function(){e(B)},function(b){c(B);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),y(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){C(B);b.deleteComment(function(){for(var a=v(b).replies,c=0;c<a.length;c++)t.removeChild(a[c]);for(c=0;c<d.length;c++)if(d[c]==b){d.splice(c,1);break}D.style.display=0==t.getElementsByTagName("div").length?"block":"none"},function(b){c(B);a.handleError(b,null,null,
null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));x||0!=l||y(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=v(b).replies,f="dark"==uiTheme?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),
l=0;l<k.length;l++)k[l]!=c.parentNode&&(k[l].style.display=d);p||(e[g].style.display="none")}q()}b.isResolved?A(mxResources.get("reOpened")+": ",!0,c,!1,!0):A(mxResources.get("markedAsResolved"),!1,c,!0)});B.appendChild(G);null!=f?t.insertBefore(B,f.nextSibling):t.appendChild(B);for(f=0;null!=b.replies&&f<b.replies.length;f++)G=b.replies[f],G.isResolved=b.isResolved,k(G,b.replies,null,l+1,m);null!=g&&(g.comment.id==b.id?(m=b.content,b.content=g.comment.content,u(b,B,g.saveCallback,g.deleteOnCancel),
b.content=m):null==g.comment.id&&g.comment.pCommentId==b.id&&(t.appendChild(g.div),u(g.comment,g.div,g.saveCallback,g.deleteOnCancel)));return B}}var x=!a.canComment(),n=a.canReplyToReplies(),g=null,A=document.createElement("div");A.className="geCommentsWin";A.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var v=EditorUi.compactUi?"26px":"30px",t=document.createElement("div");t.className="geCommentsList";t.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":
-Dialog.backdropColor;t.style.bottom=parseInt(v)+7+"px";A.appendChild(t);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";mxUtils.write(E,mxResources.get("noCommentsFound"));var y=document.createElement("div");y.className="geToolbarContainer geCommentsToolbar";y.style.height=v;y.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";y.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;mxClient.IS_QUIRKS&&(y.style.filter=
-"none");v=document.createElement("a");v.className="geButton";mxClient.IS_QUIRKS&&(v.style.filter="none");if(!x){var D=v.cloneNode();D.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';D.setAttribute("title",mxResources.get("create")+"...");mxEvent.addListener(D,"click",function(b){function d(){u(f,g,function(b){C(g);a.addComment(b,function(a){b.id=a;B.push(b);e(g)},function(b){c(g);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},
-!0)}var f=a.newComment("",a.getCurrentUser()),g=k(f,B,null,0);d();b.preventDefault();mxEvent.consume(b)});y.appendChild(D)}D=v.cloneNode();D.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';D.setAttribute("title",mxResources.get("showResolved"));var p=!1;"dark"==uiTheme&&(D.style.filter="invert(100%)");mxEvent.addListener(D,"click",function(a){this.className=(p=!p)?"geButton geCheckedBtn":"geButton";K();a.preventDefault();mxEvent.consume(a)});y.appendChild(D);a.commentsRefreshNeeded()&&
-(D=v.cloneNode(),D.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',D.setAttribute("title",mxResources.get("refresh")),"dark"==uiTheme&&(D.style.filter="invert(100%)"),mxEvent.addListener(D,"click",function(a){K();a.preventDefault();mxEvent.consume(a)}),y.appendChild(D));a.commentsSaveNeeded()&&(v=v.cloneNode(),v.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',v.setAttribute("title",mxResources.get("save")),"dark"==uiTheme&&
-(v.style.filter="invert(100%)"),mxEvent.addListener(v,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),y.appendChild(v));A.appendChild(y);var B=[],K=mxUtils.bind(this,function(){this.hasError=!1;if(null!=g)try{g.div=g.div.cloneNode(!0);var b=g.div.querySelector(".geCommentEditTxtArea"),c=g.div.querySelector(".geCommentEditBtns");g.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(F){a.handleError(F)}t.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+
-IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";n=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});t.innerHTML="";t.appendChild(E);E.style.display="block";B=a;for(a=0;a<B.length;a++)b(B[a].replies),
-k(B[a],B,null,0,p);null!=g&&null==g.comment.id&&null==g.comment.pCommentId&&(t.appendChild(g.div),u(g.comment,g.div,g.saveCallback,g.deleteOnCancel))},mxUtils.bind(this,function(a){t.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?": "+a.message:""));this.hasError=!0})):t.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});K();this.refreshComments=K;y=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(z(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}
+Dialog.backdropColor;t.style.bottom=parseInt(v)+7+"px";A.appendChild(t);var D=document.createElement("span");D.style.cssText="display:none;padding-top:10px;text-align:center;";mxUtils.write(D,mxResources.get("noCommentsFound"));var y=document.createElement("div");y.className="geToolbarContainer geCommentsToolbar";y.style.height=v;y.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";y.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;mxClient.IS_QUIRKS&&(y.style.filter=
+"none");v=document.createElement("a");v.className="geButton";mxClient.IS_QUIRKS&&(v.style.filter="none");if(!x){var E=v.cloneNode();E.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';E.setAttribute("title",mxResources.get("create")+"...");mxEvent.addListener(E,"click",function(b){function d(){u(f,g,function(b){C(g);a.addComment(b,function(a){b.id=a;B.push(b);e(g)},function(b){c(g);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},
+!0)}var f=a.newComment("",a.getCurrentUser()),g=k(f,B,null,0);d();b.preventDefault();mxEvent.consume(b)});y.appendChild(E)}E=v.cloneNode();E.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';E.setAttribute("title",mxResources.get("showResolved"));var p=!1;"dark"==uiTheme&&(E.style.filter="invert(100%)");mxEvent.addListener(E,"click",function(a){this.className=(p=!p)?"geButton geCheckedBtn":"geButton";L();a.preventDefault();mxEvent.consume(a)});y.appendChild(E);a.commentsRefreshNeeded()&&
+(E=v.cloneNode(),E.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',E.setAttribute("title",mxResources.get("refresh")),"dark"==uiTheme&&(E.style.filter="invert(100%)"),mxEvent.addListener(E,"click",function(a){L();a.preventDefault();mxEvent.consume(a)}),y.appendChild(E));a.commentsSaveNeeded()&&(v=v.cloneNode(),v.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',v.setAttribute("title",mxResources.get("save")),"dark"==uiTheme&&
+(v.style.filter="invert(100%)"),mxEvent.addListener(v,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),y.appendChild(v));A.appendChild(y);var B=[],L=mxUtils.bind(this,function(){this.hasError=!1;if(null!=g)try{g.div=g.div.cloneNode(!0);var b=g.div.querySelector(".geCommentEditTxtArea"),c=g.div.querySelector(".geCommentEditBtns");g.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(F){a.handleError(F)}t.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+
+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";n=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});t.innerHTML="";t.appendChild(D);D.style.display="block";B=a;for(a=0;a<B.length;a++)b(B[a].replies),
+k(B[a],B,null,0,p);null!=g&&null==g.comment.id&&null==g.comment.pCommentId&&(t.appendChild(g.div),u(g.comment,g.div,g.saveCallback,g.deleteOnCancel))},mxUtils.bind(this,function(a){t.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?": "+a.message:""));this.hasError=!0})):t.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});L();this.refreshComments=L;y=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(z(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}
if(this.window.isVisible()){for(var b=t.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var e=b[d];c[e.getAttribute("data-commentId")]=e}for(d=0;d<B.length;d++)a(B[d])}});setInterval(y,6E4);this.refreshCommentsTime=y;this.window=new mxWindow(mxResources.get("comments"),A,b,f,d,l,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,
-mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var Q=mxUtils.bind(this,function(){var a=this.window.getX(),
-b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",Q);this.destroy=function(){mxEvent.removeListener(window,"resize",Q);this.window.destroy()}},ConfirmDialog=function(a,b,f,d,l,m,q,u,z,C,c){var e=document.createElement("div");e.style.textAlign="center";c=null!=c?c:44;var k=document.createElement("div");k.style.padding="6px";k.style.overflow="auto";k.style.maxHeight=c+"px";k.style.lineHeight="1.2em";mxClient.IS_QUIRKS&&(k.style.height="60px");mxUtils.write(k,b);
+mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var P=mxUtils.bind(this,function(){var a=this.window.getX(),
+b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",P);this.destroy=function(){mxEvent.removeListener(window,"resize",P);this.window.destroy()}},ConfirmDialog=function(a,b,f,d,l,m,q,u,z,C,c){var e=document.createElement("div");e.style.textAlign="center";c=null!=c?c:44;var k=document.createElement("div");k.style.padding="6px";k.style.overflow="auto";k.style.maxHeight=c+"px";k.style.lineHeight="1.2em";mxClient.IS_QUIRKS&&(k.style.height="60px");mxUtils.write(k,b);
e.appendChild(k);null!=C&&(k=document.createElement("div"),k.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",C),k.appendChild(b),e.appendChild(k));C=document.createElement("div");C.style.textAlign="center";C.style.whiteSpace="nowrap";var x=document.createElement("input");x.setAttribute("type","checkbox");m=mxUtils.button(m||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(x.checked)});m.className="geBtn";null!=u&&(m.innerHTML=u+"<br>"+m.innerHTML,m.style.paddingBottom=
"8px",m.style.paddingTop="8px",m.style.height="auto",m.style.width="40%");a.editor.cancelFirst&&C.appendChild(m);var n=mxUtils.button(l||mxResources.get("ok"),function(){a.hideDialog();null!=f&&f(x.checked)});C.appendChild(n);null!=q?(n.innerHTML=q+"<br>"+n.innerHTML+"<br>",n.style.paddingBottom="8px",n.style.paddingTop="8px",n.style.height="auto",n.className="geBtn",n.style.width="40%"):n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||C.appendChild(m);e.appendChild(C);z?(C.style.marginTop=
"10px",k=document.createElement("p"),k.style.marginTop="20px",k.appendChild(x),l=document.createElement("span"),mxUtils.write(l," "+mxResources.get("rememberThisSetting")),k.appendChild(l),e.appendChild(k),mxEvent.addListener(l,"click",function(a){x.checked=!x.checked;mxEvent.consume(a)})):C.style.marginTop="12px";this.init=function(){n.focus()};this.container=e};function DiagramPage(a,b){this.node=a;null!=b?this.node.setAttribute("id",b):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
@@ -3417,8 +3423,9 @@ EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);v
this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!d){var q=new mxPopupMenu(this.createPageMenu(a));q.div.className+=" geMenubarMenu";q.smartSeparators=!0;q.showDisabled=!0;q.autoExpand=!0;q.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(q,arguments);this.resetCurrentMenu();q.destroy()});var u=mxEvent.getClientX(m),z=mxEvent.getClientY(m);q.popup(u,z,null,m);this.setCurrentMenu(q,b)}mxEvent.consume(m)}}))};
EditorUi.prototype.getLinkForPage=function(a){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var b=this.getCurrentFile();if(null!=b&&b.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var f=this.getSearch("create title mode url drive splash state".split(" ")),f=f+((0==f.length?"?":"&")+"page-id="+a.getId());return window.location.protocol+"//"+window.location.host+"/"+f+"#"+b.getHash()}}return null};
EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(f,d){f.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);f.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);f.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);var l=this.getLinkForPage(a);null!=l&&(f.addSeparator(d),f.addItem(mxResources.get("link"),null,
-mxUtils.bind(this,function(){var a=new EmbedDialog(this,l);this.showDialog(a.container,440,240,!0,!0);a.init()}),d));f.addSeparator(d);f.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),d)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();
-(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,f,d){d.ui=a.ui;return f};a.afterDecode=function(a,f,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,f,d){d.ui=a.ui;return f};a.afterDecode=function(a,f,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
+mxUtils.bind(this,function(){var a=new EmbedDialog(this,l);this.showDialog(a.container,440,240,!0,!0);a.init()}),d));f.addSeparator(d);f.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(f.addSeparator(d),f.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,
+null,null,!0,!0))}),d))})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,f,d){d.ui=a.ui;return f};a.afterDecode=function(a,f,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
+(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,f,d){d.ui=a.ui;return f};a.afterDecode=function(a,f,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,l){l.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(l.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&l.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b,
a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,l));return l};a.beforeDecode=function(a,b,l){l.ui=a.ui;l.relatedPage=l.ui.getPageById(b.getAttribute("relatedPage"));if(null==l.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));l.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(l.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(l.relatedPage.root=a.decodeCell(d,!1),l=d.nextSibling,d.parentNode.removeChild(d),d=l;null!=d;){l=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var f=d.getAttribute("id");null==a.lookup(f)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=l}}return b};a.afterDecode=function(a,b,l){l.index=l.previousIndex;return l};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]=
@@ -3438,15 +3445,15 @@ n.menus.createPopupMenu=function(a,c,d){v.apply(this,arguments);if(1==g.getSelec
1==g.getSelectionCount()){var a=g.getSelectionCell(),a=g.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(g.model.getTerminal(a[c],!1));g.setSelectionCells(b)}}},null,null,"Alt+Shift+X");n.actions.addAction("selectSiblings",function(){if(g.isEnabled()&&1==g.getSelectionCount()){var a=g.getSelectionCell(),a=g.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=g.getOutgoingEdges(g.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(g.model.getTerminal(a[c],
!1));g.setSelectionCells(b)}}},null,null,"Alt+Shift+S");n.actions.addAction("selectParent",function(){if(g.isEnabled()&&1==g.getSelectionCount()){var a=g.getSelectionCell(),a=g.getIncomingEdges(a);null!=a&&0<a.length&&g.setSelectionCell(g.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");n.actions.addAction("selectDescendants",function(){if(g.isEnabled()&&1==g.getSelectionCount()){var a=g.getSelectionCell(),b=[];g.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});g.setSelectionCells(b)}},
null,null,"Alt+Shift+D");var t=g.removeCells;g.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var d=[],e=0;e<a.length;e++){var k=a[e];A.isEdge(k)&&f(k)&&(d.push(k),k=A.getTerminal(k,!1));b(k)?(g.traverse(k,!0,function(a,b){null!=b&&d.push(b);d.push(a);return!0}),k=g.getIncomingEdges(a[e]),a=a.concat(k)):d.push(a[e])}a=d;return t.apply(this,arguments)};n.hoverIcons.getStateAt=function(a,c,
-d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var E=g.duplicateCells;g.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=g.view.getState(d[e]);if(null!=f&&b(f.cell))for(var k=g.getIncomingEdges(f.cell),f=0;f<k.length;f++)mxUtils.remove(k[f],a)}this.model.beginUpdate();try{var l=E.call(this,a,c);if(l.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var m=g.getIncomingEdges(l[e]),k=g.getIncomingEdges(a[e]);
+d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var D=g.duplicateCells;g.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=g.view.getState(d[e]);if(null!=f&&b(f.cell))for(var k=g.getIncomingEdges(f.cell),f=0;f<k.length;f++)mxUtils.remove(k[f],a)}this.model.beginUpdate();try{var l=D.call(this,a,c);if(l.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var m=g.getIncomingEdges(l[e]),k=g.getIncomingEdges(a[e]);
if(0==m.length&&0<k.length){var p=this.cloneCell(k[0]);this.addEdge(p,g.getDefaultParent(),this.model.getTerminal(k[0],!0),l[e])}}}finally{this.model.endUpdate()}return l};var y=g.moveCells;g.moveCells=function(a,c,d,e,f,k,l){var m=null;this.model.beginUpdate();try{var p=f,n=this.view.getState(f),q=null!=n?n.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(q,"treeFolding","0")){for(var u=0;u<a.length;u++)if(b(a[u])||g.model.isEdge(a[u])&&null==g.model.getTerminal(a[u],!0)){f=g.model.getParent(a[u]);
break}if(null!=p&&f!=p&&null!=this.view.getState(a[0])){var t=g.getIncomingEdges(a[0]);if(0<t.length){var v=g.view.getState(g.model.getTerminal(t[0],!0));if(null!=v){var x=g.view.getState(p);null!=x&&(c=(x.getCenterX()-v.getCenterX())/g.view.scale,d=(x.getCenterY()-v.getCenterY())/g.view.scale)}}}}m=y.apply(this,arguments);if(null!=m&&null!=a&&m.length==a.length)for(u=0;u<m.length;u++)if(this.model.isEdge(m[u]))b(p)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[u],!0))&&this.model.setTerminal(m[u],
-p,!0);else if(b(a[u])&&(t=g.getIncomingEdges(a[u]),0<t.length))if(!e)b(p)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],p,!0);else if(0==g.getIncomingEdges(m[u]).length){n=p;if(null==n||n==g.model.getParent(a[u]))n=g.model.getTerminal(t[0],!0);e=this.cloneCell(t[0]);this.addEdge(e,g.getDefaultParent(),n,m[u])}}finally{this.model.endUpdate()}return m};if(null!=n.sidebar){var D=n.sidebar.dropAndConnect;n.sidebar.dropAndConnect=function(a,c,d,e){var f=g.model,k=null;
-f.beginUpdate();try{if(k=D.apply(this,arguments),b(a))for(var l=0;l<k.length;l++)if(f.isEdge(k[l])&&null==f.getTerminal(k[l],!0)){f.setTerminal(k[l],a,!0);var m=g.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return k}}var p={88:n.actions.get("selectChildren"),84:n.actions.get("selectSubtree"),80:n.actions.get("selectParent"),83:n.actions.get("selectSiblings")},B=n.onKeyDown;n.onKeyDown=function(a){try{if(g.isEnabled()&&!g.isEditing()&&
+p,!0);else if(b(a[u])&&(t=g.getIncomingEdges(a[u]),0<t.length))if(!e)b(p)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],p,!0);else if(0==g.getIncomingEdges(m[u]).length){n=p;if(null==n||n==g.model.getParent(a[u]))n=g.model.getTerminal(t[0],!0);e=this.cloneCell(t[0]);this.addEdge(e,g.getDefaultParent(),n,m[u])}}finally{this.model.endUpdate()}return m};if(null!=n.sidebar){var E=n.sidebar.dropAndConnect;n.sidebar.dropAndConnect=function(a,c,d,e){var f=g.model,k=null;
+f.beginUpdate();try{if(k=E.apply(this,arguments),b(a))for(var l=0;l<k.length;l++)if(f.isEdge(k[l])&&null==f.getTerminal(k[l],!0)){f.setTerminal(k[l],a,!0);var m=g.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return k}}var p={88:n.actions.get("selectChildren"),84:n.actions.get("selectSubtree"),80:n.actions.get("selectParent"),83:n.actions.get("selectSiblings")},B=n.onKeyDown;n.onKeyDown=function(a){try{if(g.isEnabled()&&!g.isEditing()&&
b(g.getSelectionCell())&&1==g.getSelectionCount()){var d=null;0<g.getIncomingEdges(g.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(g.getSelectionCell()):e(g.getSelectionCell()):13==a.which&&(d=C(g.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&g.model.isEdge(d[0])?g.setSelectionCell(g.model.getTerminal(d[0],!1)):g.setSelectionCell(d[d.length-1]),null!=n.hoverIcons&&n.hoverIcons.update(g.view.getState(g.getSelectionCell())),g.startEditingAtCell(g.getSelectionCell()),
mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var f=p[a.keyCode];null!=f&&(f.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(x(g.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(x(g.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(x(g.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(x(g.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(aa){console.log("error",
-aa)}mxEvent.isConsumed(a)||B.apply(this,arguments)};var K=g.connectVertex;g.connectVertex=function(a,d,f,k,l,m){var p=g.getIncomingEdges(a);return b(a)&&0<p.length?(f=z(a),k=f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST,l=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,f==d?e(a):k==l?c(a):C(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):K.call(this,a,d,f,k,l,m)};g.getSubtree=function(a){var c=[a];!d(a)&&!b(a)||u(a)||g.traverse(a,!0,function(a,b){null!=
-b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var Q=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){Q.apply(this,arguments);(d(this.state.cell)||b(this.state.cell))&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",
+aa)}mxEvent.isConsumed(a)||B.apply(this,arguments)};var L=g.connectVertex;g.connectVertex=function(a,d,f,k,l,m){var p=g.getIncomingEdges(a);return b(a)&&0<p.length?(f=z(a),k=f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST,l=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,f==d?e(a):k==l?c(a):C(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):L.call(this,a,d,f,k,l,m)};g.getSubtree=function(a){var c=[a];!d(a)&&!b(a)||u(a)||g.traverse(a,!0,function(a,b){null!=
+b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var P=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){P.apply(this,arguments);(d(this.state.cell)||b(this.state.cell))&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",
this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;n.hoverIcons.reset();mxEvent.consume(a)})))};var I=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=
function(){I.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var S=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){S.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var F=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
function(a,b){F.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=d.apply(this,arguments),b=this.graph;return a.concat([this.addEntry("tree container",function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=
@@ -3471,7 +3478,7 @@ g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("di
"click",a.actions.get("newLibrary").funct);d=document.createElement("div");d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=
c("newLibrary",mxResources.get("newLibrary")),d.style.boxSizing="border-box",d.style.paddingRight="6px",d.style.paddingLeft="6px",d.style.height="32px",d.style.left="0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.boxSizing="border-box",d.style.paddingRight="6px",d.style.paddingLeft="6px",d.style.height="32px",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,
0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()}if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var f=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
-try{var d=document.createElement("style");d.type="text/css";d.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * { font-size:13px; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select:none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity:0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding:2px;display:inline-block; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geToolbarContainer { background:#fff !important; }div.geSidebarContainer { background-color: #ffffff; }div.geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color: #A0A0A0 !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"+
+try{var d=document.createElement("style");d.type="text/css";d.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select:none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity:0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding:2px;display:inline-block; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geToolbarContainer { background:#fff !important; }div.geSidebarContainer { background-color: #ffffff; }div.geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color: #A0A0A0 !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"+
(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"");document.getElementsByTagName("head")[0].appendChild(d)}catch(g){}var l=function(a,b,c,d,e,f,k){var g=document.createElement("div");g.className="geSidebarContainer";g.style.position="absolute";g.style.width="100%";g.style.height="100%";g.style.border="1px solid whiteSmoke";g.style.overflowX="hidden";g.style.overflowY="auto";k(g);this.window=new mxWindow(b,g,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);
this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&
(this.window.div.onselectstart=mxUtils.bind(this,function(b){null==b&&(b=window.event);return null!=b&&a.isSelectionAllowed(b)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;
@@ -3486,26 +3493,26 @@ b.className="geMenuItem gePrimaryBtn";b.style.marginLeft="8px";b.style.padding="
a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.className=
"geMenuItem";b.style.marginLeft="6px";b.style.padding="6px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};Sidebar.prototype.getTooltipOffset=function(){var a=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);a.y+=40;return a};var c=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,d){var e=this.editorUi.editor.graph;a.smartSeparators=
!0;c.apply(this,arguments);mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),function(a){b(parseFloat(a))},mxResources.get("spacing"));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()});1==e.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-","editStyle","editGeometry","-"],null,d),e.isCellFoldable(e.getSelectionCell())&&this.addMenuItems(a,e.isCellCollapsed(b)?["expand"]:["collapse"],null,d),this.addMenuItems(a,["collapsible","-",
-"lockUnlock","enterGroup"],null,d),a.addSeparator(),this.addSubmenu("layout",a)):e.isSelectionEmpty()&&e.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,d),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,d)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b?!1:
-!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var e=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),
-this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=
-null);e.apply(this,arguments)};var k=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){k.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("editDiagram").label=mxResources.get("formatXml")+
-"...";c.actions.get("createShape").label=mxResources.get("shape")+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));
-c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=
-new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(c.menus.addMenuItems(a,["new","open","-"],b),EditorUi.isElectronApp&&c.menus.addMenuItems(a,["synchronize","-"],b),c.menus.addMenuItems(a,["save","saveAs","-"],b)):"1"==urlParams.embed?(c.menus.addMenuItems(a,
-["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),isLocalStorage&&this.addSubmenu("openRecent",a,b),a.addSeparator(b),null!=d&&d.constructor==DriveFile&&c.menus.addMenuItems(a,["share"],b),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==d||d.constructor==LocalFile||c.menus.addMenuItems(a,["synchronize"],b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",
-a,b);c.menus.addMenuItems(a,["-","outline","layers"],b);c.commentsSupported()&&c.menus.addMenuItems(a,["comments"],b);c.menus.addMenuItems(a,["-","find","tags"],b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,
-["save","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));c.menus.addMenuItems(a,["-","autosave"],b);null!=d&&d.isRevisionHistorySupported()&&c.menus.addMenuItems(a,["-","revisionHistory"],b)})));var e=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){e.funct(a,b);mxClient.IS_CHROMEAPP||
-EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var f=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=f&&c.menus.addSubmenu("language",a,b);c.menus.addSubmenu("units",a,b);a.addSeparator(b);c.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-",
-"search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(a,"plugins",b);a.addSeparator(b);c.menus.addMenuItem(a,"drawConfig",b);a.addSeparator(b)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxUtils.bind(this,function(){var a=this.get("insert"),b=a.funct;a.funct=function(a,d){b.apply(this,arguments);a.addSeparator(d);
-mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],d):c.menus.addSubmenu("importFrom",a,d)}})();var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):
-l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var n=EditorUi.prototype.init;EditorUi.prototype.init=
-function(){function a(a,b,c){var d=l.menus.get(a),e=u.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),q);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",
-e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition="right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function c(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display="inline-block";g.style.boxSizing="border-box";g.style.height=
-"30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";null!=l.statusContainer?p.insertBefore(g,l.statusContainer):p.appendChild(g);null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));
-mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight="4px");null!=d&&g.setAttribute("title",d);null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),a());return g}function d(a,b){var c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign=
-"top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position="relative";c.style.top="0px";for(var d=0;d<a.length;d++)null!=a[d]&&(a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer?p.insertBefore(c,l.statusContainer):p.appendChild(c);return c}function e(){for(var b=p.firstChild;null!=b;){var e=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);
-b=e}q=p.firstChild;f=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(b=1E3>f)||a("diagram");d([b?a("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,c(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),b?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
+"lockUnlock","enterGroup"],null,d),a.addSeparator(),this.addSubmenu("layout",a)):e.isSelectionEmpty()&&e.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,d),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",a),this.addMenuItems(a,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,d)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?
+this.formatWindow.window.setVisible(b?!1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var e=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&
+(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),
+this.menus.findWindow=null);e.apply(this,arguments)};var k=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){k.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("editDiagram").label=
+mxResources.get("formatXml")+"...";c.actions.get("createShape").label=mxResources.get("shape")+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,
+620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+
+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(c.menus.addMenuItems(a,["new","open","-"],b),EditorUi.isElectronApp&&c.menus.addMenuItems(a,["synchronize","-"],b),c.menus.addMenuItems(a,["save","saveAs","-"],b)):
+"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),isLocalStorage&&this.addSubmenu("openRecent",a,b),a.addSeparator(b),null!=d&&d.constructor==DriveFile&&c.menus.addMenuItems(a,["share"],b),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==d||d.constructor==LocalFile||c.menus.addMenuItems(a,["synchronize"],b),a.addSeparator(b),
+c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);c.menus.addMenuItems(a,["-","outline","layers"],b);c.commentsSupported()&&c.menus.addMenuItems(a,["comments"],b);c.menus.addMenuItems(a,["-","find","tags"],b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,
+["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["save","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));c.menus.addMenuItems(a,["-","autosave"],b);null!=d&&d.isRevisionHistorySupported()&&
+c.menus.addMenuItems(a,["-","revisionHistory"],b)})));var e=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){e.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var f=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=f&&c.menus.addSubmenu("language",a,b);c.menus.addSubmenu("units",
+a,b);a.addSeparator(b);c.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(a,"plugins",b);a.addSeparator(b);c.menus.addMenuItem(a,"drawConfig",b);a.addSeparator(b)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),
+b)})));mxUtils.bind(this,function(){var a=this.get("insert"),b=a.funct;a.funct=function(a,d){b.apply(this,arguments);a.addSeparator(d);c.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,
+b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],
+b)})))};var n=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c){var d=l.menus.get(a),e=u.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),q);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,
+e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition="right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function c(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display=
+"inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";null!=l.statusContainer?p.insertBefore(g,l.statusContainer):p.appendChild(g);null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",
+mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight="4px");null!=d&&g.setAttribute("title",d);null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),a());return g}function d(a,b){var c=document.createElement("div");c.className=
+"geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position="relative";c.style.top="0px";for(var d=0;d<a.length;d++)null!=a[d]&&(a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer?p.insertBefore(c,l.statusContainer):p.appendChild(c);return c}function e(){for(var b=p.firstChild;null!=b;){var e=b.nextSibling;"geMenuItem"!=
+b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=e}q=p.firstChild;f=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(b=1E3>f)||a("diagram");d([b?a("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,c(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),b?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),c(mxResources.get("format"),l.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+l.actions.get("formatPanel").shortcut+")",l.actions.get("image"),b?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
null)],b?60:null);e=a("insert",!0,b?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null);d([e,c(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),b?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":
null)],b?60:null);if(411<=f&&(e=l.actions.get("undo"),b=l.actions.get("redo"),e=c("",e.funct,null,mxResources.get("undo")+" ("+e.shortcut+")",e,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),b=c("",
@@ -3513,8 +3520,8 @@ b.funct,null,mxResources.get("redo")+" ("+b.shortcut+")",b,"data:image/svg+xml;b
d([c("",function(){m.popupMenuHandler.hideMenu();var a=m.view.scale,b=m.view.translate.x,c=m.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-m.view.scale)&&b==m.view.translate.x&&c==m.view.translate.y&&l.actions.get(m.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",g,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
640<=f?c("",b.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",b,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="):
null,640<=f?c("",e.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",e,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="):
-null],60)}b=l.menus.get("language");null!=b&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=f?(null==P&&(e=u.addMenu("",b.funct),e.setAttribute("title",mxResources.get("language")),e.className="geToolbarButton",e.style.backgroundImage="url("+Editor.globeImage+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.position="absolute",e.style.height="24px",e.style.width="24px",e.style.zIndex="1",e.style.right="8px",e.style.cursor=
-"pointer",e.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(e),P=e),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=P&&(P.parentNode.removeChild(P),P=null))}n.apply(this,arguments);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(k);null==urlParams.clibs&&
+null],60)}b=l.menus.get("language");null!=b&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=f?(null==O&&(e=u.addMenu("",b.funct),e.setAttribute("title",mxResources.get("language")),e.className="geToolbarButton",e.style.backgroundImage="url("+Editor.globeImage+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.position="absolute",e.style.height="24px",e.style.width="24px",e.style.zIndex="1",e.style.right="8px",e.style.cursor=
+"pointer",e.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(e),O=e),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=O&&(O.parentNode.removeChild(O),O=null))}n.apply(this,arguments);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(k);null==urlParams.clibs&&
null==urlParams.libs||b(this);var l=this,m=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var q=null,u=new Menubar(l,p);l.statusContainer=l.createStatusContainer();l.statusContainer.style.position="relative";
l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));var x=l.descriptorChanged;l.descriptorChanged=function(){x.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":
"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);p.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else p.removeAttribute("title")};l.setStatusText(l.editor.getStatus());p.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(l.buttonContainer);l.menubarContainer=l.buttonContainer;
@@ -3522,7 +3529,7 @@ l.tabContainer=document.createElement("div");l.tabContainer.style.cssText="posit
if(null!=C){this.tabContainer.style.right="70px";var F=u.addMenu("100%",C.funct);F.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");F.style.whiteSpace="nowrap";F.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";F.style.backgroundPosition="right 6px center";F.style.backgroundRepeat="no-repeat";F.style.backgroundColor="#ffffff";F.style.paddingRight="10px";F.style.display="block";F.style.position="absolute";F.style.textDecoration="none";F.style.textDecoration="none";
F.style.right="0px";F.style.bottom="0px";F.style.overflow="hidden";F.style.visibility="hidden";F.style.textAlign="center";F.style.color="#000";F.style.fontSize="12px";F.style.color="#707070";F.style.width="59px";F.style.cursor="pointer";F.style.borderTop="1px solid lightgray";F.style.borderLeft="1px solid lightgray";F.style.height=parseInt(l.tabContainerHeight)-1+"px";F.style.lineHeight=parseInt(l.tabContainerHeight)+1+"px";z.appendChild(F);C=mxUtils.bind(this,function(){F.innerHTML=Math.round(100*
l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,C);l.editor.addListener("resetGraphView",C);l.editor.addListener("pageSelected",C);var G=l.setGraphEnabled;l.setGraphEnabled=function(){G.apply(this,arguments);null!=this.tabContainer&&(F.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?this.tabContainerHeight+"px":"0px")}}z.appendChild(l.tabContainer);z.appendChild(p);z.appendChild(l.diagramContainer);
-k.appendChild(z);l.updateTabContainer();var P=null;e();mxEvent.addListener(window,"resize",function(){e();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit()})}}};
+k.appendChild(z);l.updateTabContainer();var O=null;e();mxEvent.addListener(window,"resize",function(){e();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit()})}}};
(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,f,d,l,m,q){this.file=a;this.id=b;this.content=f;this.modifiedDate=d;this.createdDate=l;this.isResolved=m;this.user=q;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,f,d,l){b()};DrawioComment.prototype.editComment=function(a,b,f){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,f,d,l){this.id=a;this.email=b;this.displayName=f;this.pictureUrl=d;this.locale=l};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncsv=CSV\ndark=Dark\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallDrawio=Install draw.io\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrwaDiag=draw.io diagram\nunknownErr=Unkown Error\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished.\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully.\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed.\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement;
Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,b,f){this.init(a,b,f)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.allowZoomIn=!1;
GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;
@@ -3562,9 +3569,9 @@ mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.grap
e=null;else{e=this.graph.createLayersDialog();mxEvent.addListener(e,"mouseleave",function(){e.parentNode.removeChild(e);e=null});a=t.getBoundingClientRect();e.style.width="140px";e.style.padding="2px 0px 2px 0px";e.style.border="1px solid #d0d0d0";e.style.backgroundColor="#eee";e.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";e.style.fontSize="11px";e.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(e,80);var b=mxUtils.getDocumentScrollOrigin(document);e.style.left=b.x+a.left+
"px";e.style.top=b.y+a.bottom+"px";document.body.appendChild(e)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){t.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});t.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==n?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(n=this.graphConfig["toolbar-buttons"][n],
null!=n&&a(null==n.enabled||n.enabled?n.handler:function(){},n.image,n.title,n.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*c);null!=this.graphConfig.title&&(C=b.ownerDocument.createElement("div"),C.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",C.setAttribute("title",this.graphConfig.title),mxUtils.write(C,this.graphConfig.title),mxUtils.setOpacity(C,
-70),f.appendChild(C));this.minToolbarWidth=34*c;var E=b.style.border,C=mxUtils.bind(this,function(){f.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";f.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-
-c.top,bottom:a.bottom-c.top,right:a.right-c.left};f.style.left=a.left+"px";"bottom"==this.graphConfig["toolbar-position"]?f.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(f.style.marginTop=-this.toolbarHeight+"px",f.style.top=a.top+1+"px"):f.style.top=a.top+"px";"1px solid transparent"==E&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(f);var d=mxUtils.bind(this,function(){null!=f.parentNode&&f.parentNode.removeChild(f);null!=e&&(e.parentNode.removeChild(e),
-e=null);b.style.border=E});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==f||a==e)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})}else f.style.top=-this.toolbarHeight+"px",b.appendChild(f)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",C):C()};
+70),f.appendChild(C));this.minToolbarWidth=34*c;var D=b.style.border,C=mxUtils.bind(this,function(){f.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";f.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-
+c.top,bottom:a.bottom-c.top,right:a.right-c.left};f.style.left=a.left+"px";"bottom"==this.graphConfig["toolbar-position"]?f.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(f.style.marginTop=-this.toolbarHeight+"px",f.style.top=a.top+1+"px"):f.style.top=a.top+"px";"1px solid transparent"==D&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(f);var d=mxUtils.bind(this,function(){null!=f.parentNode&&f.parentNode.removeChild(f);null!=e&&(e.parentNode.removeChild(e),
+e=null);b.style.border=D});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==f||a==e)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})}else f.style.top=-this.toolbarHeight+"px",b.appendChild(f)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",C):C()};
GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(f,d){if(null==d){var l=mxEvent.getSource(f);"a"==l.nodeName.toLowerCase()&&(d=l.getAttribute("href"))}null!=b?null==d||a.isCustomLink(d)?mxEvent.consume(f):a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&(mxEvent.isTouchEvent(f)||!mxEvent.isPopupTrigger(f))&&
a.customLinkClicked(d)&&mxEvent.consume(f)}),mxUtils.bind(this,function(a){null!=b||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))};
GraphViewer.prototype.showLightbox=function(a,b,f){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;f={client:1,lightbox:1,target:null!=f?f:"blank"};a&&(f.edit=this.graphConfig.edit||"_blank");if(null!=b?b:1)f.close=1;this.layersEnabled&&(f.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(f.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&&
diff --git a/src/main/webapp/plugins/number.js b/src/main/webapp/plugins/number.js
index 09b4041e..7bf527e5 100644
--- a/src/main/webapp/plugins/number.js
+++ b/src/main/webapp/plugins/number.js
@@ -28,6 +28,8 @@ Draw.loadPlugin(function(ui) {
this.numberCounter++;
this.redrawNumberShape(state);
}
+
+ return state;
};
graph.view.redrawNumberShape = function(state)
@@ -64,8 +66,7 @@ Draw.loadPlugin(function(ui) {
state.secondLabel.scale = scale;
state.secondLabel.bounds = bounds;
state.secondLabel.redraw();
- console.log('redraw', state, this.numberCounter, value);
- }
+ }
}
};
diff --git a/src/main/webapp/resources/dia_am.txt b/src/main/webapp/resources/dia_am.txt
index f4026b84..0d355b07 100644
--- a/src/main/webapp/resources/dia_am.txt
+++ b/src/main/webapp/resources/dia_am.txt
@@ -400,6 +400,7 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
+installDrawio=Install draw.io
invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidInput=Invalid input
@@ -634,6 +635,7 @@ saveDiagramFirst=Please save the diagram first
saveDiagramsTo=Save diagrams to
saveLibrary403=Insufficient permissions to edit this library
saveLibrary500=There was an error while saving the library
+saveLibraryReadOnly=Could not save library while read-only mode is active
saving=Saving
scratchpad=Scratchpad
scrollbars=Scrollbars
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index 4cafff31..a5cd906c 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -400,6 +400,7 @@ insertRowBefore=‫إضافة سطر قبل‬
insertRowAfter=‫إضافة سطر بعد‬
insertText=‫إضافة نص‬
inserting=‫إضافة‬
+installDrawio=Install draw.io
invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidInput=Invalid input
@@ -634,6 +635,7 @@ saveDiagramFirst=Please save the diagram first
saveDiagramsTo=‫حفظ المخططات إلى ‬
saveLibrary403=Insufficient permissions to edit this library
saveLibrary500=There was an error while saving the library
+saveLibraryReadOnly=Could not save library while read-only mode is active
saving=‫جاري الحفظ‬
scratchpad=Scratchpad
scrollbars=‫أشرطة التمرير‬
diff --git a/src/main/webapp/resources/dia_ca.txt b/src/main/webapp/resources/dia_ca.txt
index 922e24ac..bcaa41ea 100644
--- a/src/main/webapp/resources/dia_ca.txt
+++ b/src/main/webapp/resources/dia_ca.txt
@@ -1,6 +1,6 @@
# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*
# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE
-aboutDrawio=Sobre draw.io
+aboutDrawio=Quant al draw.io
accessDenied=Accés denegat
action=Acció
actualSize=Mida real
@@ -220,7 +220,7 @@ editText=Edita el text
editTooltip=Edita els consells d'eines
glass=Vidre
googleImages=Google Imatges
-imageSearch=Buscador d'imatges
+imageSearch=Cerca d'imatges
eip=EIP
embed=Incrusta
embedImages=Incrusta imatges
@@ -263,7 +263,7 @@ extras=Extres
facebook=Facebook
failedToSaveTryReconnect=Error en desar, intentant reconnectar
featureRequest=Sol·licitud de funcions
-feedback=Opinió
+feedback=Comentaris
feedbackSent=S'ha enviat la seva opinió correctament.
floorplans=Plànols
file=Fitxer
@@ -496,7 +496,7 @@ noPreview=No hi ha vista prèvia
noResponse=El servidor no respon
noResultsFor=No s'ha trobat cap resultat per {1}
noRevisions=Sense revisions
-noSearchResults=La cerca no té resultats
+noSearchResults=La s'ha trobat cap resultat
noPageContentOrNotSaved=No s'han trobat enllaços a la pàgina o encara no s'ha desat
normal=Normal
north=Nord
@@ -575,7 +575,7 @@ project=Projecta
priority=Prioritat
properties=Propietats
publish=Publica
-quickStart=Inici ràpid vídeo
+quickStart=Vídeo d'inici ràpid
rack=Rack
radialTree=Arbre radial
readOnly=Només lectura
@@ -636,11 +636,11 @@ saveDiagramsTo=Desa els diagrames a
saveLibrary403=Permisos insuficients per editar aquesta biblioteca
saveLibrary500=Hi ha hagut un error desant la biblioteca
saveLibraryReadOnly=Could not save library while read-only mode is active
-saving=Desant
+saving=S'està desant
scratchpad=Scratchpad
scrollbars=Barres de desplaçament
-search=Cercar
-searchShapes=Cercar formes
+search=Cerca
+searchShapes=Cerca formes
selectAll=Selecciona-ho tot
selectionOnly=Selecciona només
selectCard=Selecciona una targeta
diff --git a/src/main/webapp/resources/dia_et.txt b/src/main/webapp/resources/dia_et.txt
index 57a3d4ea..a4b0a020 100644
--- a/src/main/webapp/resources/dia_et.txt
+++ b/src/main/webapp/resources/dia_et.txt
@@ -5,7 +5,7 @@ accessDenied=Ligipääs keelatud
action=Tegevus
actualSize=Tegelik suurus
add=Lisa
-addAccount=Add account
+addAccount=Lisa konto
addedFile=Lisatud {1}
addImages=Lisa pilte
addImageUrl=Lisa pildi URL
@@ -53,7 +53,7 @@ attachments=Manused
aws=AWS
aws3d=AWS 3D
azure=Azure
-back=Back
+back=Tagasi
background=Taust
backgroundColor=Taustavärv
backgroundImage=Taustapilt
@@ -86,9 +86,9 @@ cannotOpenFile=Faili ei saa avada
change=Muuda
changeOrientation=Muuda suunda
changeUser=Muuda kasutajat
-changeStorage=Change storage
+changeStorage=Muuda salvestuspaik
changesNotSaved=Muudatused on salvestamata
-classDiagram=Class Diagram
+classDiagram=Klassidiagramm
userJoined={1} liitus
userLeft={1} lahkus
chatWindowTitle=Chat
@@ -97,11 +97,11 @@ chromeApp=Chrome App
collaborativeEditingNotice=Oluline teadaanne grupitöö muutmise jaoks
compressed=Pakitud
commitMessage=Kinnita sõnum
-configLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!
-configLinkConfirm=Click OK to configure and restart draw.io.
+configLinkWarn=See link seadistab draw.io. Vali OK vaid juhul kui usaldad isikut, kes sulle selle saatis !!
+configLinkConfirm=Vali OK et draw.io seadistada ja uuesti laadida.
csv=CSV
dark=Tume
-didYouMeanToExportToPdf=Did you mean to export to PDF?
+didYouMeanToExportToPdf=Kas soovisid PDFi eksportida?
draftFound=Mustand {1} jaoks on leitud. Lae see töötluskeskkonda või tühista jätkamiseks.
dragAndDropNotSupported=Piltidele puudub pukseerimise tugi. Kas sooviksid selle asemel importida?
dropboxCharsNotAllowed=Järgnevad tähemärgid pole lubatud: \ / : ? * " |
@@ -114,7 +114,7 @@ clearDefaultStyle=Tühjenda vaikestiil
clearWaypoints=Tühjenda teepunktid
clipart=Clipart
close=Sulge
-closingFile=Closing file
+closingFile=Sulgeb faili
collaborator=Osaleja
collaborators=Osalejad
collapse=Vähenda
@@ -136,7 +136,7 @@ containsValidationErrors=Sisaldab valideerimisvigu
copiedToClipboard=Kopeeritud lõikelauale
copy=Kopeeri
copyConnect=Kopeeri ühendamisel
-copyCreated=A copy of the file was created.
+copyCreated=Failist loodi koopia.
copyOf=Koopia {1}
copyOfDrawing=Joonise koopia
copySize=Kopeeri suurus
@@ -271,10 +271,10 @@ fileChangedOverwriteDialog=Faili muudeti. Kirjutab muudatused üle?
fileChangedSyncDialog=Faili on muudetud. Kas soovid need muudatused ühildada?
fileChangedSync=Faili on muudetud. Kliki siin et muudatused ühildada.
overwrite=Kirjuta üle
-synchronize=Synchronize
+synchronize=Sünkroniseeri
filename=Faili nimi
fileExists=Fail juba eksisteerib
-fileMovedToTrash=File was moved to trash
+fileMovedToTrash=Fail saadeti prügikasti
fileNearlyFullSeeFaq=Fail peaaegu täis, palun vaata KKK-d
fileNotFound=Faili ei leitud
repositoryNotFound=Hoidlat ei leitud
@@ -328,7 +328,7 @@ formatVssx=VSSX
formatXmlPlain=XML (tavaline)
formatXml=XML
forum=Diskussiooni-abifoorumid
-freehand=Freehand
+freehand=Vabakäega
fromTemplate=Mallist
fromTemplateUrl=Malli URList
fromText=Tekstist
@@ -400,7 +400,7 @@ insertRowBefore=Sisesta rida ülespoole
insertRowAfter=Sisesta rida allapoole
insertText=Sisesta tekst
inserting=Sisestamine
-installDrawio=Install draw.io
+installDrawio=Paigalda draw.io
invalidFilename=Diagrammi nimed ei tohi sisaldada järgnevaid tähemärke: \ / | : ; { } < > & + ? = "
invalidLicenseSeeThisPage=Sinu litsents on kehtetu, palun vaata seda <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">lehte</a>.
invalidInput=Viga sisestamisel
@@ -582,7 +582,7 @@ readOnly=Ainult lugemiseks
reconnecting=Taasühendamine
recentlyUpdated=Hiljuti uuendatud
recentlyViewed=Hiljuti vaadatud
-rectangle=Rectangle
+rectangle=Ristkülik
redirectToNewApp=See fail on loodud või muudetud programmi uuemas versioonis. Sind suunatakse nüüd ümber.
realtimeTimeout=Tundub, et oled teinud mõned muudatused offline'is. Vabandame, aga neid muudatusi ei saa salvestada.
redo=Tee uuesti
@@ -631,7 +631,7 @@ saveAndExit=Salvesta ja välju
saveAs=Salvesta kui
saveAsXmlFile=Salvesta XML failina?
saved=Salvestatud
-saveDiagramFirst=Please save the diagram first
+saveDiagramFirst=Palun salvesta enne diagramm
saveDiagramsTo=Salvesta diagrammid...
saveLibrary403=Puuduvad õigused selle raamatukogu muutmiseks
saveLibrary500=Viga raamatukogu salvestamisel
@@ -786,7 +786,7 @@ myDiagrams=Minu diagrammid
allDiagrams=Kõik diagrammid
recentlyUsed=Viimati kasutatud
listView=Nimekiri
-gridView=Grid view
+gridView=Ruudustiku vaade
resultsFor=Tulemused {1} jaoks
oneDriveCharsNotAllowed=Ebasobivad sümbolid: ~ " # % * : < > ? / \ { | }
oneDriveInvalidDeviceName=Antud seadme nimi on vigane.
@@ -825,7 +825,7 @@ selectChildren=Select Children
selectSiblings=Select Siblings
selectParent=Select Parent
selectDescendants=Select Descendants
-lastSaved=Last saved {1} ago
+lastSaved=Viimati salvestati {1} tagasi
resolve=Resolve
reopen=Re-open
showResolved=Show Resolved
@@ -841,9 +841,9 @@ libraries=Libraries
confAnchor=Confluence lehe ankur
confTimeout=Ühendus aegus
confSrvTakeTooLong=Serveri {1} vastamien võtab liiga kaua aega.
-confCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page
+confCannotInsertNew=Ei saa sisestada draw.io diagrammi uuele Confluence lehele
confSaveTry=Palun salvesta leht ja proovi uuesti.
-confCannotGetID=Unable to determine page ID
+confCannotGetID=Ei õnnestu määrata lehe ID
confContactAdmin=Palun võta ühendust enda Confluence administraatoriga.
readErr=Viga lugemisel
editingErr=Viga muutmisel.
@@ -956,14 +956,14 @@ pickODFile=Vali OneDrive fail
pickGDriveFile=Vali Google Drive fail
pickDeviceFile=Vali fail seadmelt
vsdNoConfig="vsdurl" is not configured
-ruler=Ruler
-units=Units
+ruler=Joonlaud
+units=Ühikud
points=Points
inches=Inches
millimeters=Millimeters
confEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.
confDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session's modifications.
-macroNotFound=Macro Not Found
+macroNotFound=Makrot ei leitud
confAInvalidPageIdsFormat=Incorrect Page IDs file format
confACollectingCurPages=Collecting current pages
confABuildingPagesMap=Building pages mapping
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 893c780d..ae49252e 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -757,7 +757,7 @@ width=Ширина
wiki=Wiki
wordWrap=Перенос по словам
writingDirection=Направление текста
-yes=да
+yes=Да
yourEmailAddress=Ваш e-mail адрес
zoom=Масштаб
zoomIn=Увеличить
@@ -780,7 +780,7 @@ webLink=Сетевая ссылка
wireframes=Макеты интерфейсов (UI)
property=Параметр
value=Значение
-showMore=Раскрыть
+showMore=Больше вариантов
showLess=Скрыть
myDiagrams=Мои диаграммы
allDiagrams=Все диаграммы
diff --git a/src/main/webapp/resources/dia_zh.txt b/src/main/webapp/resources/dia_zh.txt
index cfdf6785..26495e81 100644
--- a/src/main/webapp/resources/dia_zh.txt
+++ b/src/main/webapp/resources/dia_zh.txt
@@ -1,18 +1,18 @@
# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*
# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE
-aboutDrawio=关于draw.io
-accessDenied=访问被拒
-action=Action
+aboutDrawio=关于 draw.io
+accessDenied=没有权限访问
+action=操作
actualSize=实际尺寸
add=添加
-addAccount=Add account
+addAccount=添加账户
addedFile=已添加 {1}
addImages=添加图片
-addImageUrl=添加图片链接
+addImageUrl=添加图片地址
addLayer=添加图层
addProperty=添加属性
address=地址
-addToExistingDrawing=添加至当前的图纸
+addToExistingDrawing=添加至当前的图表
addWaypoint=添加航点
adjustTo=调至
advanced=高级
@@ -26,26 +26,26 @@ allTags=所有标签
anchor=锚
android=Android
angle=角度
-arc=Arc
-areYouSure=您确定吗?
+arc=弧形
+areYouSure=是否确定?
ensureDataSaved=关闭前请确保您的数据已保存。
allChangesSaved=所有更改均已保存
-allChangesSavedInDrive=所有更改均保存至Google Drive中
+allChangesSavedInDrive=所有更改均保存至 Google Drive 中
allowPopups=允许弹出式窗口用以阻止此对话框
-allowRelativeUrl=Allow relative URL
+allowRelativeUrl=允许相对地址
alreadyConnected=节点已连接
apply=应用
archiMate21=ArchiMate 2.1
arrange=调整图形
arrow=箭头
arrows=箭头
-asNew=作为新图纸
+asNew=作为新图表
atlas=Atlas
author=作者
authorizationRequired=需要授权
-authorizeThisAppIn=在{1}里授权此应用软件:
+authorizeThisAppIn=在 {1} 里授权此应用:
authorize=授权
-authorizing=授权中
+authorizing=正在授权
automatic=自动
autosave=自动保存
autosize=自动调整
@@ -53,22 +53,22 @@ attachments=附件
aws=AWS
aws3d=AWS 3D
azure=Azure
-back=Back
+back=后退
background=背景
backgroundColor=背景色
-backgroundImage=背景图
+backgroundImage=背景图片
basic=基本
-blankDrawing=空白图纸
+blankDrawing=空白绘图
blankDiagram=空白图表
block=区块
-blockquote=块引用
+blockquote=区块引言
blog=博客
bold=粗体
bootstrap=Bootstrap
-border=Border
+border=边框
borderColor=边框颜色
borderWidth=边框宽度
-bottom=底
+bottom=下
bottomAlign=向下对齐
bottomLeft=左下
bottomRight=右下
@@ -79,55 +79,55 @@ business=商务
busy=处理中
cabinets=机箱
cancel=取消
-center=居中
+center=水平居中
cannotLoad=载入失败。请稍后重试。
cannotLogin=登录失败。请稍后重试。
cannotOpenFile=无法打开文件
change=更改
changeOrientation=改变方向
changeUser=更改用户
-changeStorage=Change storage
+changeStorage=修改存储方式
changesNotSaved=更改尚未保存
-classDiagram=Class Diagram
-userJoined={1}已加入
-userLeft={1}已离开
+classDiagram=类图
+userJoined={1} 已加入
+userLeft={1} 已离开
chatWindowTitle=聊天
chooseAnOption=请选择一项
-chromeApp=Chrome应用软件
+chromeApp=Chrome 应用
collaborativeEditingNotice=Important Notice for Collaborative Editing
compressed=已压缩
commitMessage=提交信息
configLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!
-configLinkConfirm=Click OK to configure and restart draw.io.
+configLinkConfirm=点击确定配置并重启 draw.io
csv=CSV
dark=Dark
-didYouMeanToExportToPdf=Did you mean to export to PDF?
-draftFound={1}的草图已找到。载入其进行编辑或丢弃以继续。
-dragAndDropNotSupported=暂不支持图片拖放功能。要选择导入选项吗?
+didYouMeanToExportToPdf=是否要导出到 PDF?
+draftFound={1} 的草稿已经找到。将其加载到编辑器或将其丢弃以继续。
+dragAndDropNotSupported=暂不支持图片拖放功能。是否要使用导入?
dropboxCharsNotAllowed=系统不允许使用下列字符:\ / : ? * " |
check=核查
-checksum=Checksum
+checksum=校验码
circle=圆形
-cisco=思科
+cisco=Cisco
classic=经典
clearDefaultStyle=清除默认风格
clearWaypoints=清除航点
clipart=剪贴画
close=关闭
-closingFile=Closing file
+closingFile=正在关闭文件
collaborator=合作者
collaborators=合作者
-collapse=收起
-collapseExpand=收起/展开
-collapse-expand=点击实现收起/展开\nShift-点击以移动周边图形 \nAlt-点击以保护组别尺寸
-collapsible=可收起
+collapse=折叠
+collapseExpand=折叠 / 展开
+collapse-expand=点击折叠 / 展开\nShift-点击以移动周边图形 \nAlt-点击以保护组别尺寸
+collapsible=可折叠
comic=手绘
comment=评论
-commentsNotes=评论/备注
-compress=Compress
+commentsNotes=评论 / 备注
+compress=压缩
connect=连接
-connecting=连接中
-connectWithDrive=连接Google Drive
+connecting=正在连接
+connectWithDrive=连接 Google Drive
connection=连接
connectionArrows=连接箭头
connectionPoints=连接点
@@ -136,57 +136,57 @@ containsValidationErrors=包含验证错误
copiedToClipboard=已复制到剪贴板
copy=复制
copyConnect=连接时复制
-copyCreated=A copy of the file was created.
-copyOf={1}的副本
-copyOfDrawing=图纸副本
-copySize=Copy Size
-copyStyle=复制风格
+copyCreated=已经创建文件的副本。
+copyOf={1} 的副本
+copyOfDrawing=图表副本
+copySize=复制大小
+copyStyle=复制样式
create=创建
createNewDiagram=创建新图表
-createRevision=创建修订版
+createRevision=创建修订版本
createShape=创建图形
-crop=单页导出
+crop=导出单页
curved=曲线
custom=自定义
current=当前
-currentPage=Current page
+currentPage=当前页
cut=剪切
dashed=虚线
decideLater=稍后再决定
default=默认值
delete=删除
deleteColumn=删除列
-deleteLibrary401=没有足够的许可权删除此图库
+deleteLibrary401=没有权限删除此图库
deleteLibrary404=未找到所选图库
deleteLibrary500=删除图库时出错
deleteLibraryConfirm=您即将永久删除此图库。您确定要这样操作吗?
deleteRow=删除行
-description=说明
-device=电脑或手机设备
+description=描述
+device=设备
diagram=图表
diagramContent=图表内容
-diagramLocked=图表已加锁以避免进一步的数据丢失。
-diagramLockedBySince=The diagram is locked by {1} since {2} ago
+diagramLocked=图表已经锁定以避免进一步的数据丢失。
+diagramLockedBySince=图表已经在 {2} 之前被 {1} 锁定
diagramName=图表名称
diagramIsPublic=图表为公开状态
diagramIsNotPublic=图表为未公开状态
-diamond=菱形
-diamondThin=菱形(细)
+diamond=方块
+diamondThin=方块(细)
didYouKnow=您知道吗......
direction=方向
discard=丢弃
discardChangesAndReconnect=取消更改并重新连接
-googleDriveMissingClickHere=找不到Google Drive?请点击这里!
+googleDriveMissingClickHere=找不到 Google Drive?请点击这里!
discardChanges=取消更改
disconnected=未连接
distribute=等距分布
done=完成
-dotted=点线风格
+dotted=点线
doubleClickOrientation=双击以改变方向
doubleClickTooltip=双击以插入文字
doubleClickChangeProperty=双击以更改属性名
download=下载
-downloadDesktop=Get draw.io Desktop
+downloadDesktop= 获取 draw.io 桌面版
downloadAs=下载为
clickHereToSave=点击此处保存。
dpi=DPI
@@ -194,15 +194,15 @@ draftDiscarded=草稿已丢弃
draftSaved=草稿已保存
dragElementsHere=把元素拖至此处
dragImagesHere=把图像或网络链接拖至此处
-dragUrlsHere=把URL地址拖至此处
+dragUrlsHere=将 URL 地址拖至此处
draw.io=draw.io
-drawing=图纸{1}
-drawingEmpty=图纸空白
-drawingTooLarge=图纸过大
-drawioForWork=Draw.io支持GSuite
+drawing=绘图 {1}
+drawingEmpty=绘图空白
+drawingTooLarge=绘图过大
+drawioForWork=Draw.io for GSuite
dropbox=Dropbox
duplicate=复制
-duplicateIt=复制{1}
+duplicateIt=复制 {1}
divider=分隔线
dx=Dx
dy=Dy
@@ -211,54 +211,54 @@ edit=编辑
editData=编辑数据
editDiagram=编辑图表
editGeometry=编辑几何图形
-editImage=编辑图像
-editImageUrl=编辑图片URL地址
+editImage=编辑图片
+editImageUrl=编辑图片 URL 地址
editLink=编辑链接
editShape=编辑图形
editStyle=编辑样式
editText=编辑文字
editTooltip=编辑提示
-glass=玻璃效果
-googleImages=Google图片
+glass=玻璃
+googleImages=Google 图片
imageSearch=图片搜索
eip=EIP
embed=嵌入
embedImages=嵌入图片
mainEmbedNotice=将此粘贴至页面上
electrical=电路
-ellipse=Ellipse
+ellipse=椭圆形
embedNotice=将此一次性粘贴至本页页尾
enterGroup=进入组进行编辑
enterName=输入名称
enterPropertyName=输入属性名
enterValue=输入值
entityRelation=实体关系
-entityRelationshipDiagram=Entity Relationship Diagram
+entityRelationshipDiagram=E-R图
error=出错
errorDeletingFile=删除文件出错
errorLoadingFile=加载文件出错
-errorRenamingFile=文件更名出错
-errorRenamingFileNotFound=文件更名出错。找不到文件。
-errorRenamingFileForbidden=文件更名出错。没有足够的访问权限。
+errorRenamingFile=文件修改名称出错
+errorRenamingFileNotFound=文件修改名称出错。找不到文件。
+errorRenamingFileForbidden=文件修改名称出错。没有足够的访问权限。
errorSavingDraft=保存草稿出错
errorSavingFile=保存文件出错
-errorSavingFileUnknown=Google服务器授权出错。请刷新页面,然后重试。
+errorSavingFileUnknown=Google 服务器授权出错。请刷新页面,然后重试。
errorSavingFileForbidden=保存文件时出错。没有足够的访问权限。
-errorSavingFileNameConflict=无法保存此图表。当前页面已经包含名为'{1}'的文件。
+errorSavingFileNameConflict=无法保存此图表。当前页面已经包含名为 '{1}' 的文件。
errorSavingFileNotFound=保存文件时出错,文件未找到。
-errorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.
-errorSavingFileSessionTimeout=您的会话已经结束。请<a target='_blank'href='{1}'>{2}</a>,然后返回此标签以尝试再次保存。
+errorSavingFileReadOnlyMode=只读模式开启时无法保存图表。
+errorSavingFileSessionTimeout=您的会话已经结束。请 <a target='_blank'href='{1}'>{2}</a>,然后返回此标签以尝试再次保存。
errorSendingFeedback=发送反馈出错。
errorUpdatingPreview=更新预览出错。
exit=退出
exitGroup=退出编辑组
expand=展开
export=导出
-exporting=导出中
+exporting=正在导出
exportAs=导出为
exportOptionsDisabled=已禁止导出
exportOptionsDisabledDetails=所有者已禁止评论者及浏览者下载、打印或复制该文件。
-externalChanges=External Changes
+externalChanges=外部修改
extras=其它
facebook=Facebook
failedToSaveTryReconnect=保存失败,正在尝试重新连接
@@ -267,15 +267,15 @@ feedback=反馈
feedbackSent=反馈发送成功
floorplans=平面图
file=文件
-fileChangedOverwriteDialog=文件已更改。是否覆盖更改?
-fileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?
-fileChangedSync=The file has been modified. Click here to synchronize.
+fileChangedOverwriteDialog=文件已经被修改。是否保存文件并覆盖这些更改?
+fileChangedSyncDialog=文件已经被修改。是否要同步这些修改?
+fileChangedSync=文件已经被修改。点击这里进行同步。
overwrite=覆盖
-synchronize=Synchronize
+synchronize=同步
filename=文件名
fileExists=文件已存在
-fileMovedToTrash=File was moved to trash
-fileNearlyFullSeeFaq=文件即将达到上限,请参阅常见问题一栏
+fileMovedToTrash=文件已经移到垃圾箱
+fileNearlyFullSeeFaq=文件即将达到上限,请参阅常见问题
fileNotFound=未找到文件
repositoryNotFound=未找到资源库
fileNotFoundOrDenied=文件未找到。其不存在或您没有查阅权限。
@@ -285,7 +285,7 @@ fileOpenLocation=你想如何打开这些文件?
filetypeHtml=.html causes file to save as HTML with redirect to cloud URL
filetypePng=.png causes file to save as PNG with embedded data
filetypeSvg=.svg causes file to save as SVG with embedded data
-fileWillBeSavedInAppFolder={1}将保存至应用软件文件夹
+fileWillBeSavedInAppFolder={1} 将保存至应用软件文件夹
fill=填充
fillColor=填充色
filterCards=Filter Cards
@@ -300,7 +300,7 @@ fitToSheetsAcross=横向页面
fitToBy=按
fitToSheetsDown=纵向页面
fitTwoPages=双页
-fitWindow=适应视窗大小
+fitWindow=适应窗口大小
flip=翻转
flipH=水平翻转
flipV=垂直翻转
@@ -313,8 +313,8 @@ fontSize=字体大小
forbidden=您没有该文件的访问权限
format=格式
formatPanel=格式面板
-formatted=已格式化
-formattedText=已格式化文本
+formatted=格式化
+formattedText=格式化文本
formatPng=PNG
formatGif=GIF
formatJpg=JPEG
@@ -325,14 +325,14 @@ formatHtmlEmbedded=HTML
formatSvgEmbedded=SVG(含XML)
formatVsdx=VSDX
formatVssx=VSSX
-formatXmlPlain=XML(普通)
+formatXmlPlain=XML(文本文件)
formatXml=XML
-forum=讨论组/帮助论坛
-freehand=Freehand
+forum=讨论组 / 帮助论坛
+freehand=自由绘图
fromTemplate=从模板
-fromTemplateUrl=从模板URL地址
+fromTemplateUrl=从模板 URL 地址
fromText=从文本
-fromUrl=从URL地址
+fromUrl=从 URL 地址
fromThisPage=从当前页
fullscreen=全屏
gap=Gap
@@ -357,28 +357,28 @@ gridColor=网格线颜色
gridSize=网格大小
group=组合
guides=参考线
-hateApp=我讨厌draw.io
+hateApp=我讨厌 draw.io
heading=标题
height=高
help=帮助
helpTranslate=帮助我们翻译此应用
hide=隐藏
-hideIt=隐藏{1}
+hideIt=隐藏 {1}
hidden=已隐藏
home=首页
horizontal=水平
-horizontalFlow=水平流动
-horizontalTree=水平树状
+horizontalFlow=水平流
+horizontalTree=水平树
howTranslate=按您的母语水平评判,该翻译如何?
html=HTML
-htmlText=HTML文本
+htmlText=HTML 文本
id=ID
iframe=IFrame
ignore=忽略
image=图片
-imageUrl=图片URL地址
+imageUrl=图片 URL 地址
images=图片
-imagePreviewError=无法预览图片。请检查URL地址。
+imagePreviewError=无法预览图片。请检查 URL 地址。
imageTooBig=图片太大
imgur=Imgur
import=导入
@@ -400,13 +400,13 @@ insertRowBefore=上方插入行
insertRowAfter=下方插入行
insertText=插入文本
inserting=正在插入
-installDrawio=Install draw.io
+installDrawio=安装 draw.io
invalidFilename=图表名称不能包含以下特殊字符: \ / | : ; { } < > & + ? = "
invalidLicenseSeeThisPage=您的许可无效,请参阅此<a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">页面</a>。
-invalidInput=Invalid input
+invalidInput=无效输入
invalidName=无效名称
invalidOrMissingFile=无效或丢失的文件
-invalidPublicUrl=无效的公开URL地址
+invalidPublicUrl=无效的公开 URL 地址
isometric=等尺寸
ios=iOS
italic=斜体
@@ -440,18 +440,18 @@ leftAlign=左对齐
leftToRight=右对齐
libraryTooltip=将图形拖放至此或单击+以插入。双击进行编辑。
lightbox=光箱特效
-line=线型
+line=线条
lineend=线末端
-lineheight=线高
+lineheight=行高
linestart=线始端
linewidth=线宽
-link=链接
-links=链接
+link=连接
+links=连接
loading=加载中
-lockUnlock=加锁/解锁
-loggedOut=登出
-logIn=登入
-loveIt=我爱{1}
+lockUnlock=锁定 / 解锁
+loggedOut=注销
+logIn=登录
+loveIt=我爱 {1}
lucidchart=Lucidchart
maps=Maps
mathematicalTypesetting=数学排版
@@ -462,7 +462,7 @@ microsoftExcel=Microsoft Excel
microsoftPowerPoint=Microsoft PowerPoint
microsoftWord=Microsoft Word
middle=垂直居中
-minimal=Minimal
+minimal=最小化
misc=杂项
mockups=实体模型
modificationDate=修改日期
@@ -473,12 +473,12 @@ moreShapes=更多图形
move=移动
moveToFolder=移动至文件夹
moving=移动中
-moveSelectionTo=将所选移至{1}
+moveSelectionTo=将所选移至 {1}
name=名称
navigation=导航
-network=Network
+network=网络
networking=网络
-new=新增
+new=新建
newLibrary=新增图库
nextPage=下一页
no=没有
@@ -494,7 +494,7 @@ noOtherViewers=无其他查阅者
noPlugins=无插件
noPreview=无预览
noResponse=服务器无响应
-noResultsFor=未找到'{1}'的相关结果
+noResultsFor=未找到 '{1}' 的相关结果
noRevisions=无修订
noSearchResults=查询无结果
noPageContentOrNotSaved=此页面上找不到锚点,或尚未保存
@@ -506,7 +506,7 @@ notAvailable=不可用
notAUtf8File=非 UTF-8 格式文件
notConnected=未连接
note=备注
-notUsingService=未使用{1}?
+notUsingService=未使用 {1}?
numberedList=编号列表
offline=离线
ok=确定
@@ -555,11 +555,11 @@ permissionAnyone=任何人均可编辑
permissionAuthor=只有本人可编辑
pickFolder=选择文件夹
pickLibraryDialogTitle=选择图库
-publicDiagramUrl=图表的公共URL地址
+publicDiagramUrl=图表的公共 URL 地址
placeholders=占位符
plantUml=PlantUML
plugins=插件
-pluginUrl=插件URL地址
+pluginUrl=插件 URL 地址
pluginWarning=本页面已要求载入以下插件:\n \n {1}\n \n 是否现在载入这些插件?\n \n 备注:确保在完全理解与此相关的安全问题的情况下再允许这些插件运行。\n
plusTooltip=单击进行连接与复制(ctrl+单击进行复制,shift+单击进行连接)。拖拽进行连接(xtrl+拖拽进行复制)。
portrait=竖向
@@ -582,26 +582,26 @@ readOnly=只读
reconnecting=重新连接
recentlyUpdated=最近更新
recentlyViewed=最近阅览
-rectangle=Rectangle
+rectangle=矩形
redirectToNewApp=该文件是在此应用软件的新版本中所创建或修改的。正在重新定向。
realtimeTimeout=似乎您在离线状态下做过更改。对不起,这些更改不予保存。
redo=重做
refresh=刷新
regularExpression=正则表达式
-relative=Relative
-relativeUrlNotAllowed=Relative URL not allowed
+relative=相对
+relativeUrlNotAllowed=不允许使用相对 URL 地址
rememberMe=记住我
rememberThisSetting=记住此设置
removeFormat=清除格式
-removeFromGroup=移出组
-removeIt=删除{1}
+removeFromGroup=移出组合
+removeIt=删除 {1}
removeWaypoint=删除航点
rename=重命名
renamed=已重命名
-renameIt=重命名{1}
+renameIt=重命名 {1}
renaming=正在重命名
replace=替换
-replaceIt={1}已经存在了。要替换它吗?
+replaceIt={1} 已经存在了。确定要替换它吗?
replaceExistingDrawing=替换当前图形
required=必填
reset=重置
@@ -611,14 +611,14 @@ resizeLargeImages=Do you want to resize large images to make the application run
retina=Retina
responsive=响应式
restore=恢复
-restoring=恢复中
-retryingIn={1}秒后重试
+restoring=正在恢复
+retryingIn={1} 秒后重试
retryingLoad=载入失败,正在重试...
retryingLogin=登录超时,正在重试...
reverse=翻转
revision=修订
revisionHistory=修订历史
-rhombus=Rhombus
+rhombus=菱形
right=右
rightAlign=右对齐
rightToLeft=由右至左
@@ -627,16 +627,16 @@ rotateTooltip=点选拖拽旋转,或点击选择90度
rotation=旋转
rounded=圆角
save=保存
-saveAndExit=储存并退出
+saveAndExit=保存并退出
saveAs=另存为
saveAsXmlFile=另存为XML文件?
saved=已保存
-saveDiagramFirst=Please save the diagram first
-saveDiagramsTo=把图表存至
+saveDiagramFirst=请先保存图表
+saveDiagramsTo=保存图表到
saveLibrary403=没有足够的权限编辑此图库
saveLibrary500=保存图库时出错
-saveLibraryReadOnly=Could not save library while read-only mode is active
-saving=保存中
+saveLibraryReadOnly=只读模式开启时无法保存图库
+saving=正在保存
scratchpad=便笺本
scrollbars=滚动条
search=搜索
@@ -649,13 +649,13 @@ selectFile=选择文件
selectFolder=选择文件夹
selectFont=选择字体
selectNone=全不选
-selectTemplate=Select Template
+selectTemplate=选择模板
selectVertices=选择顶点
sendMessage=发送
-sendYourFeedbackToDrawIo=将您的反馈发送至draw.io
+sendYourFeedbackToDrawIo=将您的反馈发送至 draw.io
serviceUnavailableOrBlocked=服务无法使用或已被屏蔽
sessionExpired=会话已过期,请刷新浏览器窗口。
-sessionTimeoutOnSave=会话已超时,您的Google Drive的连接已断开。按OK键登录并保存。
+sessionTimeoutOnSave=会话已超时,您的 Google Drive 连接已断开。按确定键登录并保存。
setAsDefaultStyle=设置为默认样式
shadow=阴影
shape=形状
@@ -667,7 +667,7 @@ show=显示
showStartScreen=显示开始画面
sidebarTooltip=单击以展开。将图形拖拽至图表中。Shift+单击以改变所选内容。Alt+单击以插入及连接。
signs=标识
-signOut=登出
+signOut=注销
simple=简单
simpleArrow=简单箭头
simpleViewer=Simple Viewer
@@ -680,22 +680,22 @@ space=空间
spacing=间距
specialLink=特殊链接
standard=标准
-startDrawing=Start drawing
-stopDrawing=Stop drawing
+startDrawing=开始绘图
+stopDrawing=结束绘图
starting=开启中
straight=直线
-strikethrough=Strikethrough
+strikethrough=删除线
strokeColor=线条颜色
style=样式
subscript=下标
summary=概要
superscript=上标
support=支持
-swimlaneDiagram=Swimlane Diagram
+swimlaneDiagram=泳道图
sysml=SysML
tags=标签
table=表格
-tables=Tables
+tables=表格
takeOver=Take Over
targetSpacing=目标间距
template=模板
@@ -709,9 +709,9 @@ title=标题
to=至
toBack=移至最后
toFront=移至最前
-toolbar=Toolbar
+toolbar=工具栏
tooltips=提示
-top=顶
+top=上
topAlign=向上对齐
topLeft=左上
topRight=右上
@@ -725,12 +725,12 @@ type=类型
twitter=Twitter
uml=UML
underline=下划线
-undo=取消操作
-ungroup=取消群组
+undo=撤销
+ungroup=取消组合
unsavedChanges=未保存的更改
unsavedChangesClickHereToSave=修改未保存。点击此处保存。
untitled=未命名
-untitledDiagram=未命名表单
+untitledDiagram=未命名图表
untitledLayer=未命名图层
untitledLibrary=未命名图库
unknownError=未知错误
@@ -739,13 +739,13 @@ updatingDocument=文件更新中。请稍候...
updatingPreview=预览更新中。请稍候...
updatingSelection=选择更新中。请稍候...
upload=上传
-url=URL地址
+url=URL
useOffline=Use Offline
useRootFolder=Use root folder?
userManual=用户手册
vertical=垂直
verticalFlow=垂直流
-verticalTree=垂直树状
+verticalTree=垂直树
view=查看
viewerSettings=Viewer Settings
viewUrl=用于查看的链接:{1}
@@ -775,26 +775,26 @@ nothingIsSelected=未选择
other=其他
softwaredesign=软件设计图
venndiagrams=文氏图
-webEmailOrOther=网站、电邮或其他网络地址
+webEmailOrOther=网站、电子邮件或其他网络地址
webLink=Web链接
wireframes=线框图
-property=Property
-value=Value
-showMore=Show More
-showLess=Show Less
-myDiagrams=My Diagrams
-allDiagrams=All Diagrams
-recentlyUsed=Recently used
-listView=List view
-gridView=Grid view
+property=属性
+value= 值
+showMore=显示更多
+showLess=显示更少
+myDiagrams=我的图表
+allDiagrams=全部图表
+recentlyUsed=最近使用
+listView=列表视图
+gridView=网格视图
resultsFor=Results for '{1}'
-oneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / \ { | }
+oneDriveCharsNotAllowed=不允许下列字符: ~ " # % * : < > ? / \ { | }
oneDriveInvalidDeviceName=The specified device name is invalid
officeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.
officeSelectSingleDiag=Please select a single draw.io diagram only without other contents.
officeSelectDiag=Please select a draw.io diagram.
officeCannotFindDiagram=Cannot find a draw.io diagram in the selection
-noDiagrams=No diagrams found
+noDiagrams=没有找到图表
authFailed=Authentication failed
officeFailedAuthMsg=Unable to successfully authenticate user or authorize application.
convertingDiagramFailed=Converting diagram failed
@@ -878,7 +878,7 @@ gliffyImport=Gliffy Import
gliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.
gliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.
startImport=Start Import
-drawConfig=draw.io Configuration
+drawConfig=draw.io 配置
customLib=Custom Libraries
customTemp=Custom Templates
pageIdsExp=Page IDs Export
@@ -956,11 +956,11 @@ pickODFile=Pick OneDrive File
pickGDriveFile=Pick Google Drive File
pickDeviceFile=Pick Device File
vsdNoConfig="vsdurl" is not configured
-ruler=Ruler
-units=Units
+ruler=标尺
+units=单位
points=Points
-inches=Inches
-millimeters=Millimeters
+inches=英寸
+millimeters=毫米
confEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.
confDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session's modifications.
macroNotFound=Macro Not Found
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index c1ebe44e..fd89eb16 100644
--- a/src/main/webapp/service-worker.js
+++ b/src/main/webapp/service-worker.js
@@ -6,7 +6,7 @@ if (workbox)
workbox.precaching.precacheAndRoute([
{
"url": "js/app.min.js",
- "revision": "d996eeb6bf5eb7800a4f34849879ccfe"
+ "revision": "16711c059dd55b147d3591acdcb4f85d"
},
{
"url": "index.html",
@@ -22,11 +22,11 @@ if (workbox)
},
{
"url": "js/stencils.min.js",
- "revision": "14ffe15bc8092749f917b927e4a1601a"
+ "revision": "68dc6ad0515af0278434da80458059bf"
},
{
"url": "js/extensions.min.js",
- "revision": "ee6f86acaeb0ebd635102442adc45380"
+ "revision": "25b5872708446c8f83ec4d7a8de3c915"
},
{
"url": "js/diagramly/ElectronApp.js",
@@ -34,7 +34,7 @@ if (workbox)
},
{
"url": "styles/grapheditor.css",
- "revision": "36c4e00a4c9d48b8344fc6d8592672de"
+ "revision": "2f1b366eeffa3dae8b004b5e632a22e8"
},
{
"url": "styles/atlas.css",
diff --git a/src/main/webapp/stencils/cisco/misc.xml b/src/main/webapp/stencils/cisco/misc.xml
index 5434d3a3..edccce96 100644
--- a/src/main/webapp/stencils/cisco/misc.xml
+++ b/src/main/webapp/stencils/cisco/misc.xml
@@ -3673,7 +3673,6 @@
<close/>
</path>
<fill/>
-<restore/>
<rect/>
<stroke/>
<strokecolor color="#ffffff"/>
@@ -3695,7 +3694,6 @@
<close/>
</path>
<stroke/>
-<save/>
<path>
<move x="11.33" y="52.33"/>
<curve x1="11.66" y1="52.33" x2="11.66" y2="52" x3="11.66" y3="52"/>
diff --git a/src/main/webapp/stencils/electrical/transistors.xml b/src/main/webapp/stencils/electrical/transistors.xml
index 0ff4f1da..d3aa395b 100644
--- a/src/main/webapp/stencils/electrical/transistors.xml
+++ b/src/main/webapp/stencils/electrical/transistors.xml
@@ -162,7 +162,6 @@
<constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
<path>
<move x="0" y="55"/>
<line x="41" y="55"/>
@@ -402,7 +401,6 @@
<constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
<path>
<move x="0" y="55"/>
<line x="41" y="55"/>
diff --git a/src/main/webapp/styles/grapheditor.css b/src/main/webapp/styles/grapheditor.css
index 43f990fa..f7402228 100644
--- a/src/main/webapp/styles/grapheditor.css
+++ b/src/main/webapp/styles/grapheditor.css
@@ -10,6 +10,12 @@
.geEditor input, select, textarea, button {
font-size: inherit;
}
+.geEditor input {
+ border-width: 2px;
+}
+.geEditor select {
+ border-width: 1px;
+}
.geEditor div.mxTooltip {
background: whiteSmoke;
border-color: lightGray;